A shell is a program that interprets and runs the commands typed at the console by the user. The shell sends requests to the kernel, which executes them.
On most workstations, UNIX comes with three shells: the C Shell, the Bourne Shell and the Korn Shell. Each shell can be programmed. Programs containing shell commands, are called C shell scripts, Bourne shell scripts or Korn shell scripts. They each have their advantages. ``The general consensus of views from users familiar with both (C and Bourne) shells appears to be that the C shell is superior for interactive work, because of its process control features, while the Bourne shell has more powerful language constructs, and so is better for use in shell scripts" [p. 72]EF:UNIX. The Korn Shell is newer, and incorporates the features and functionality of both the C and Bourne shells, while retaining the speed of the Bourne shell (with which it is also upward compatible).
To confuse the issue, many systems at the NRC are using a fourth shell: the Tenex shell, most commonly known as the T shell. This is a public domain shell, which contains all features of the C shell, plus a series of extensions. The T shell was downloaded from the archive tesla.ee.cornell.edu.
This chapter will first describe the features common to the four shells, such as input/output redirection, and metacharacters (wildcards). Specifics about the four shells will be discussed in Part 2 of the manual.