I can't speak to cloud9 but I've always taught on Linux and am a CLI wonk.
One thing I do is differentiate between user friendly and learner friendly. GUI interfaces are learner friendly - they're easy to learn but they're not user friendly because they're not that powerful. They're basically program loaders. You load your program, work in it, exit, next.
The Shell is a little less learner friendly (although the fish shell is amazing from the learning point of view) but it is amazingly user friendly because it allows the user to do all sorts of things.
I try to model this over the course of my classes and I try to provide examples.
For instance, if I wanted to resize a bunch of gifs in a directory, I might show the class something like:
ls *gif | while read i
do
f=`basename $i .gif`
convert $f smaller-$i$i -resize 200x200 smaller-$f.gif
done
If you make it useful to them, they'll appreciate it more and use it more.
I wrote a few blog posts over the years with examples including:
- pre-processing and cleaning up dirty downloaded data
- processing info from google forms (downloaded as csv)
- operating on many files across directories
The posts can be found here: https://cestlaz.github.io/categories/cli/