The title of this post is in some ways rhetorical because to some people, this is their primary means of interaction with a computer. With the majority of people, though, I think a safe assumption is that the command line is something they have heard about, but don’t really understand where it is, or even, why they would want to use it.
To gain a better understanding of why the command line can be useful, it might be helpful to look at what software does, and how that is shown to you on the monitor. With modern software, programs use a graphical user interface with buttons and dialog boxes that allow you to enter, or choose, the appropriate parameters for a given task. Back in the days of DOS, AutoCAD and command line Arc-INFO, this was not the cause, mainly because the software didn’t have the graphical display capabilities of today. What this meant at the time, was that a person had to be able to view every parameter or command that was available, through the command line. Users also had to be able to enter commands and specify these parameters. This of course, created some standardization of format for command line entry. With the advent of the GUI, there is now a dialog box for each command. That dialog had to be designed to incorporate all of the possible parameters for each command. This need to expose all the parameters is, I think, where the strength of the command line rises. Many of these commands have so many possible parameters, and options, that it is not possible to fit them all into a single dialog. Thus what happens, is that people end up using default values where they may actually have had a different choice, they were just not aware. Had they been using a command line, all the options available to that parameter would have been exposed to them.
Another place where the command line shines has to do with clarity. In order to save space, the options in a dialog box frequently have brief or no descriptions of what is required. The descriptions in the command line window can be more complete because there is not the limitation of space. Even if you can’t see the descriptions all at once, you can still scroll the window back up to review as necessary.
The final place where the command line shines is speed. This relates to both speed of entry, and the speed of seeing results. All of the entry in the command line is done with the keyboard. Many command line implementations have many shortcuts built in to allow you to recall commands, and do quick entry using the arrow keys or certain keystrokes. This makes it very easy to enter a large amount of information very quickly. Also, in some cases, you can write out a series of things in a text editor and copy and paste to the command line. The speed advantage arises over the dialog because you never have to move your hands from the keyboard. When you are entering data through a dialog box, there is much more movement required. You have to move the mouse around to the correct entry point. Then, you may have to use the keyboard to type something in and repeat this cycle many times. Each time you switch entry methods, it takes time and breaks continuity.
The picture above is a very good example of the previous paragraph. It shows data entry into an SQLite database, using both the command line and a graphical user interface for this database type. On the left, you see that there are 3 lines showing new rows being added to the database, with values for each of the fields. On the right, you see the GUI, which contains a window in the back with the rows in the database. The front window is one of the fields with data being added to it. This window will have to be opened to enter data into each field for each row.
So, to recap. Using the command line can save time by giving more detail about possible commands, quicker access to multiple programs, and fast data entry. Many programs have the ability to be run from a command line interface. Finally, one last benefit of the command line: You may come to understand the program you are using more thoroughly because as you enter commands and their parameters, you have to make sure that you enter all the parameters necessary, and have data in the correct form for the command to execute successfully. This gives you the nuts and bolts of the software that the graphical user interface doesn’t always reveal.