5.1. IntroductionA shell is a program that is an interface between a user and the raw operating system. It makes basic facilities such as multitasking and piping easy to use, as well as adding useful file-specific features such as wildcards and I/O redirection. There are three shells in common use today, listed here in approximate order of popularity:
All of these shells come with Linux, but they may not all be installed on your system depending on your selection of optional packages. The names vary a bit between UNIX and Linux systems. The major difference is that /bin/sh is the Bourne shell on a UNIX system but on a Linux system it is a symbolic link to /bin/bash. The shells and their common naming are shown in Figure 5-1.
The shell that you use is a matter of personal taste based on its power, compatibility, and availability. The Korn shell was designed to be upward compatible with the original UNIX Bourne shell, and incorporates the best features of the Bourne and C shells plus some more of its own. Bash also takes a "best of all worlds" approach, including features from all the other major shells. Bash is the default shell on Linux systems, but we will examine all three shells in the subsequent chapters. |