This is an old revision of the document!
“In the beginning there was the shell, and lo, it was good…”
An 80×24 matrix of blurry green characters with a keyboard, it was pure 1970's sexy. No mouse, no graphics, just pure, unadulterated power. Microsoft and Apple would have you believe that a command line is something to be feared and avoided. Feared, yes, and rightly so, for there is great power in the command line; more than you will find in any GUI interface any day of the week. And with great power comes great responsibility… But for those knowledgeable in the ways of command-line-foo there is no going back.
Today, we have computers that are so powerful that we often run dozens of programs simultaneously, while the operating system runs a hundred or more in the background, and then we complain about how slow the machine is! In fact, in many ways, today's world has left the humble shell behind. Preferring instead to focus on giving us simultaneous access to our dozens of programs through a sleek, modern, graphical user interface (GUI).
“But why,” I hear you say, “is any of this 1970's garbage relevant today, now that we have all of this flash-bang graphical GUI stuff?”
The answer is simple: Because…
So this is something of which you should at least know the basics, and that's what this tutorial is all about.
If you are using a computer without a graphical user interface, then congratulations, you're looking at a shell environment – that, or a text-based login prompt that will take you to a shell environment.
If you're in a graphical desktop, then search for an application named “terminal”. There are many ways to do this depending on your operating system:

When the terminal appears, you will be looking at a window running a shell inside of it.
NOTE: There are many different kinds of desktop environments available. Unity and Gnome
When the shell appears, it will print a prompt, letting you know some basic information and letting you know that it is ready for you to type in commands. Here's what a standard command line prompt looks like:
ecomiske@ilex:~$
What does that junk in the command line prompt mean?
| The Breakdown | |
|---|---|
ecomiske | Your user name (ecomiske is used here merely as an example) |
@ilex | The @ symbol followed by the hostname of the machine you are on: “ecommiske at ilex” |
:~ | The directory your command line shell is currently sitting in. In this case, ~ means your user home area |
$ | The typical last symbol at the end of a command line prompt. For all regular users this is $ |
Your command line prompt may look slightly different. The actual string of characters that makes up your command line is configurable via dot files in your home area, but that's beyond the scope of this tutorial.
Now is a good time to talk about the notation that will be used in the rest of this document. In many places, both here and elsewhere on the Internet:
$ ls -al
The $ symbol here denotes that the text to follow is the command to be typed. So in accordance with the above example, you are instructed to type on your command line: ls -al. (NOTE: The character $ or # itself is an indicator of the user privileges under which the command is to be used. A $ symbol indicates that the command is to be typed as a regular user, where as a # indicates that the command should be typed by the administrator. Since this is not a systems administration tutorial you won't be asked to do anything as an administrator. But it's worth mentioning how the $ and # characters are used so that you are aware of this when you read other documents online.)
<something-only-you-could-know>
For example: For Jane Comiske, <username> should be replaced with ecomiske, while for Dr. Lou Gross, <username> should be replaced with gross. And <password> would be replaced with, you guessed it, your password.
[option]
A choice of options is written as
[option1|option2|option3...]