Have you ever noticed in the movies when the “super hacker,”—you know, the guy who
can break into the ultra-secure military computer in under thirty seconds — sits down at the computer,
he never touches a mouse? It’s because movie makers realize that we, as
human beings, instinctively know the only way to really get anything done on a computer
is by typing on a keyboard.
Most computer users today are only familiar with the graphical user interface (GUI) and
have been taught by vendors and pundits that the command line interface (CLI) is a
terrifying thing of the past. This is unfortunate, because a good command line interface is
a marvelously expressive way of communicating with a computer in much the same way
the written word is for human beings. It’s been said that “graphical user interfaces make
easy tasks easy, while command line interfaces make difficult tasks possible” and this is
still very true today.

Why I Don’t Call It “GNU/Linux”
In some quarters, it’s politically correct to call the Linux operating system the
“GNU/Linux operating system.” The problem with “Linux” is that there is no
completely correct way to name it because it was written by many different

people in a vast, distributed development effort. Technically speaking, Linux is
the name of the operating system’s kernel, nothing more. The kernel is very
important of course, since it makes the operating system go, but it’s not enough to
form a complete operating system.
Enter Richard Stallman, the genius-philosopher who founded the Free Software
movement, started the Free Software Foundation, formed the GNU Project, wrote
the first version of the GNU C Compiler (gcc), created the GNU General Public
License (the GPL), etc., etc., etc. He insists that you call it “GNU/Linux” to
properly reflect the contributions of the GNU Project. While the GNU Project
predates the Linux kernel, and the project’s contributions are extremely deserving
of recognition, placing them in the name is unfair to everyone else who made
significant contributions. Besides, I think “Linux/GNU” would be more
technically accurate since the kernel boots first and everything else runs on top of
In popular usage, “Linux” refers to the kernel and all the other free and open
source software found in the typical Linux distribution; that is, the entire Linux
ecosystem, not just the GNU components. The operating system marketplace
seems to prefer one-word names such as DOS, Windows, MacOS, Solaris, Irix,
AIX. I have chosen to use the popular format. If, however, you prefer to use
“GNU/Linux” instead, please perform a mental search and replace while reading
this book. I won’t mind.

Since Linux is modeled after the Unix family of operating systems, it shares the same
rich heritage of command line tools as Unix. Unix came into prominence during the
early 1980s (although it was first developed a decade earlier), before the widespread
adoption of the graphical user interface and, as a result, developed an extensive command
line interface instead. In fact, one of the strongest reasons early adopters of Linux chose it
over, say, Windows NT was the powerful command line interface which made the
“difficult tasks possible.”

That being said, there is no shortcut to Linux enlightenment. Learning the command line
is challenging and takes real effort. It’s not that it’s so hard, but rather it’s so vast. The
average Linux system has literally thousands of programs you can employ on the
command line. Consider yourself warned; learning the command line is not a casual
On the other hand, learning the Linux command line is extremely rewarding. If you think
you’re a “power user” now, just wait. You don’t know what real power is — yet. And,
unlike many other computer skills, knowledge of the command line is long lasting. The
skills learned today will still be useful ten years from now. The command line has
survived the test of time.

Leave a Reply

Your email address will not be published. Required fields are marked *