In the past few years, Linux proponents, myself included, have taken a defensive posture regarding Linux and the use of the command line. One reason those unfamiliar with it often cite for being "afraid" of it is the apparent need to type commands, and they just don't have the time to learn it or don't think they can. This is a legitimate concern. Back in the day when just using a computer actually required some level of skill with such things, the often arcane command line utilities required to get anything done could be daunting. Even today, it's hard to remember all those options and sometimes just the name of the command/application itself. For example I use an app called 'iptraf' a lot, but I regularly forget what it's called. Furthermore, the plethora of options for a simple command like 'ls' can lead one to believe it requires a degree in computer engineering just to use it.
For example, there's this mess:
Will I ever use that? No.
With the proliferation of GUI wrappers to many of the most popular and useful command line applications, why bother? You can get a directory listing with the file browser and have the advantage of being able to use mv, cp, chmod, chown, etc. all with a point and click. Many of the options are inherent in the the way the GUI functions. Others are available via convenient check boxes, sliders, and buttons.
But not everything, and for a number of reasons, I still find the command line (CLI) a valuable tool. Over the next few weeks, whether you want me to or not, I'm going to put together some very simple examples of why I still use the CLI and explain why it is both more efficient and in fact easier to use than the GUI counterpart.
I am going to do this for a couple of reasons, so by way of introduction I want to explain what those are in addition to explaining what I actually intended and perhaps more importantly what I do not intend.
I've been spending a lot of time lately in the #ubuntu IRC chat room. Before long I became frustrated at the complicated mess many so-called Ubuntu gurus were putting newbies through just to perform simple tasks. GUI based applications to perform these takes vary. The path to opening those applications varies with different distributions. Very often a simple command in the terminal can accomplish exactly what the user needs without having to endure all the side discussion that inevitably follows about the "best" app to use, most of which are simply GUI front-ends for a single command line app. Offering a newbie the command line way of doing something often kills several birds with a single stone and helps them become acclimated to the idea that the CLI is actually your friend.
Secondly, I sometimes forget than even Linux gurus don't know everything and sometimes have never learned these simple ways of doing things. I certainly don't know everything and regularly read blogs and browse man pages just to see what I might be missing. The other day, in fact, I introduced a long-time Linux user to a very simple command that he'd been doing via a GUI and that took him ages of tedious work to accomplish. The command line variant took a couple seconds. Turns out he knew how to do this but had lost sight of it because he'd become accustomed to using the GUI app. Even experts can learn or, in some cases, need reminders.
What I intend to do is semi-regularly offer some simple command line methods of doing things we commonly do. I'll even offer up a few simple BASH scripts that combine commands that would be difficult to remember but placed within a script would be easy to use just by remembering the name of the script.
On the other hand, this will not in any way be intended as an exhaustive primer on using any individual command nor an exploration of the numerous ways things can be done. I do not intend to show that the command line is "better" than the GUI, just different, and for some purposes, more convenient. In fact, several of the examples I would like to offer will use the GUI and CLI in combination, sticking with my developed philosophy that it's generally not an either/or situation when it comes to technology.
If you have no interest, feel free to ignore me. :)