22

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. ...


18

One way to show them the value of the command line would be to juxtapose doing a task with a GUI and with the command line. You could do something like the following: Create a directory with mixed content (eg. text files, audio files and images). Ask your students to perform these actions via a GUI, then via the command line: Move any text file that ...


14

You can't teach the value of the command line. You can, however, sell it. Students have at least one of two primary goals in any class: Get good grades (pass the class) Learn something they like These are not mutually exclusive, and may change as the class progresses in their relative positions. For the students who's motivating goal for the class is ...


11

The value of the command line can clearly be demonstrated by looking at a simple gui configuration task, which might take 5 or 10 screenshots, and still be ambiguous in comparison to 'open a shell and paste these 2 lines of text'. This doesn't encourage students to use the command line themselves, but starts to explain to them why it is valuable. You can ...


11

I learned the value of CLI on the job, where we would test our code, installers, etc. on multiple machines with multiple OSs. Many server Linuxes do not have GUI to begin with, but even if dealing with a Mac it is much easier to use responsive text terminal, rather then slow-as-molasses VNC. It also helps that while GUIs are pretty different between ...


11

Not a demonstration, but maybe a nice thought to tell your students. I read a nice analogy a few months ago, linked from a question somewhere on stackexchange: Using a computer only with a GUI is like communication without using one of humanity's biggest accomplishments: language. It does have it bonuses; you can communicate to other people simply by ...


9

My reasons for using a CLI might be different from yours. As an educator you'll be most convincing when you can point out the advantages of the CLI that are most meaningful to you. Off the top of my head, the reasons to use a CLI over a GUI are unambiguousness. There's no "click that option. No, THAT one." repeatability. scriptability. This is a ...


8

These are some experiences I've had, highlighting the power of the command line: Some programs print status messages as they run, if they were called from the command line, that otherwise would never be seen. This particular advantage of the CLI helped the developer of the logic analyzer I use to determine that the file it captured was corrupted. Sometimes ...


8

Here, take this pen. Now sell it to me. As with the above well-known interview question, the value of a given tool can be most appreciated when one has no other alternatives than to use it. Show your students that in productive systems and real-life environments such as server farms and data centers there is no such thing as a GUI (or very rarely). The ...


8

You could point out that a file has an owning user and an owning group. Since “owner” appears twice, specifying o for “owner” would be ambiguous. That's weak because the owning group doesn't really have any special privileges on the file, unlike the owning user: the owning user can change the file's permissions and other metadata, but the owning group only ...


7

The are a couple of things that make the command line superior to GUI interfaces: Command history The one killer feature (in my opinion). If you remember that you have performed a command before, and remember anything about that command you can quickly find it by typing ^R and do a backward incremental search through the command history. Or you can press ...


7

From an administrative perspective, a lot of Linux servers don't have a GUI in order to reduce the resource usage. Doing anything on them will require knowledge of the command line, or knowledge of an automation tool like Ansible so they can be configured correctly. The value of knowing CLI is being able to administer servers without a GUI, or be able to ...


6

Similar to @ncmathsadist, I use both command-line environments and IDEs, and I have only found them enhancing each other. We do most of our work in IDEs, but a few assignments are done in CLIs every year to ensure that students slowly gain some familiarity with those environments. Reasons for IDEs: Convenience Easy integration with GitHub Error ...


6

The most obvious reason why CLI is important is because it is a pre-requisite for future concepts taught in Universities and for work. CLI itself is a very powerful tool as it gives you access to the file system and perform a variety of useful tasks. From the top of my head, one key feature of CLI is that you can perform SSH in order to send, copy, and ...


4

In addition to the experiences I (Nate W above) had of requiring the CLI, there was one more important one that I forgot to mention, although it isn't as relevant today as it was in the past: using a serial interface to communicate with a computer when the monitor or video system was not working. This is similar to the last point on my list above. There was ...


4

Infrastructure as Code. If the configuration of your infrastructure (presumably via CLI) cannot be reduced to code and checked into source control, then you are setting yourself (and your employer) up for failure.


4

Simply put: the command line can do things which the GUI apply cannot. In Windows this is easily seen. CMD can perform operations that no other GUI based tool can. In Linux there aren't many graphical tools anyway, but the terminal is by far the simplest way to get things done. To show them the strength of the command line, explain that GUI tools don't ...


3

Not an (surprisingly very) annoying and trivial issue caused by bad historical choices for abbreviations. You say that u, g and o are bad historical choices for abbreviations, but that's just your take. u and g are linked to the uid and gid, the user and group id, which are used as identifiers throughout a unix system (Note that uid commonly refers to a ...


3

I have had students work in summer internships; feedback I get from companies tells me that familiarity with the command-line interface is extremely valuable. The command-line interface is very much a part of "real world" programming practice. We run a student computing server at NCSSM using Red Hat Enterprise Linux; all of our beginning students learn ...


3

There have been some great answers so far; here is an approach I haven't seen described yet. I show my students how they can use the CLI to access our workstations from remote locations. My students have accounts in our lab of Linux workstations, but suppose they want to work on their project from their dorm room or off-campus apartment or home, or when ...


2

Teach the command line as part of a brief history of computing. Let them know how good they have it, not having to punch cards and wait overnight, or use a command line on a clanking teletype over a remote 110 baud link.


2

With respect to APCS-A there won't be a difference. Personally, I'm not overly fond of IDEs or one trick pony environments so I've encouraged our students to use an editor. I'm an Emacs wonk but the kids also use Vim, Sublime, DrJava (which is a lightweight IDE) and more. In APCS-A they won't be getting to HUGE programs and to be honest, in my experience, ...


2

Java's core, from my experience, is writing large (or many, or both ;)) classes and files (whilst preserving SOLID principles) and then running a rather complex program, composed of those classes. Due to this, working only with a command-line environment is somewhat losing that part of java, and might damage the students' understanding of Java. This being ...


2

Have some reasons why they should use the command line. Here are some of mine. Why I like the command line Less typing How can this be I hear you ask. Well I login, reverse search (ctrl-r) or up arrow (⬆) for a command I typed last week and hit carriage return. The alternative is far more mouse clicks (and trying to remember). Show an example of you ...


1

For a book, I like The Linux Command Line. There is a YouTube series, The Missing Semester. You can pick and choose the lectures that you like. There are an abundance of cheatsheets online. Most importantly, you need to have the experience yourself. You've got to have the knowledge, and master it well enough to adapt it for your audience.


1

Are there specific examples you use that effectively illustrate the power of a CLI Even if you prefer the GUI, as an administrator you never know when you might need to know the CLI. Most importantly in emergencies. A few practical situations and benefits of having a CLI: In a mixed platform environment you can access all other servers from a single ...


Only top voted, non community-wiki answers of a minimum length are eligible