What is the shell, anyway? Wikipedia has this to say: A Unix shell is a command-line interpreter or shell that provides a traditional user interface for the Unix operating system and for Unix-like systems.
Ok, so what’s that mean again? Well, like any operating system, the “shell” refers to the interface with which the user can interact with the system. On Windows, it’s known as “Explorer” and don’t we all love the chaos that ensues when it crashes, right? The beauty of the Unix shell is that it is a user program over top the OS, like any other program. This allows you spawn any number of instances of the shell, allows you to end/restart it and such with little impact on your running system. The beauty of this form is that it allows anyone to program their own shell – and many have. There have been numerous variants over the years, with different people choosing their preferred shell. It’s a little too soon to get into that, so lets just stick with generic stuff for now.
As a user, the Unix shell is your doorway into the system. You use it to help maintain it, obviously, but you also use it to navigate your way around the system, as well as to start other programs. The better word for the shell is that it is an interpreter. It is your interpreter. The essentials of the shell are pretty basic. It is a running process in the user space, and so it is not part of the kernel, but it is what allows you to work in the kernel, whether accessing the disk and creating/editing files, or other tasks that require interaction with the kernel. Whether you are accessing the system directly, via the local console/terminal, or remotely, once authenticated, the first order of business is to start your choice of shell.
The main thing to know about the shell is that it allows you to execute programs, and also pipe programs back to back, which gives you immense flexibility. You can execute a program then suspend it, or have it run in the background, and you can then keep working in the same shell and continue to do other things. It is able to multi-task, and has been since the late 60’s. Dos couldn’t do that… in the 90’s. Yet, it’s so simple. All it is, is a simple text terminal with nothing but a prompt – yet, as you’ll learn, it can do so much.
Now that we’ve gone through a quick primer, let’s go to Part II – Getting Help.