The shell is a program that allows you to interact with your computer.
It's called a shell because it provides an environment for you to work in -
sort of a little electronic home for you as you compute. (Think hermit crab.)
The simplest function of the shell is to launch other programs. You type the
name of the program you want to run, followed by the arguments you want, and
the shell asks the system to run the program for you.
Of course, graphical windowing systems also fill this need. Technically, Windows
95 provides a graphical shell, and the X Window system is another kind of graphical
shell. But ``shell'' is commonly used to mean ``command-line shell.''
Needless to say, the hackers who work on shells aren't satisfied with simply
launching commands. Your shell has a bewildering number of convenient
and powerful features
if you would like to take advantage of them.
There are countless different shells available; most are based on either the
Bourne shell or the C shell, two of the oldest shells. The
original Bourne shell's program name is sh, while csh is the
C shell. Bourne shell variants include the Bourne Again Shell from the GNU project
(bash, the Debian default), the Korn shell (ksh), and the
Z shell (zsh). There is also ash, a traditional implementation
of the Bourne shell. The most common C shell variant is tcsh (the t
pays tribute to the TENEX and TOPS-20 operating systems, which inspired some
of tcsh's improvements over csh).
bash is probably the best choice for new users. It is the default and
has all the features you're likely to need. But all the shells have loyal followings;
if you want to experiment, install some different shell packages and change
your shell with the chsh command. Just type chsh, supply a password
when asked, and choose a shell. When you next log in, you'll be using the new