The Linux shell is the Command Line Interface (CLI) or Text User Interface (TUI) that administrators use to control a Linux operating system. Users and programs use the shell to send commands to the system. A shell might be opened inside a Graphical User Interface (GUI), or might be the sole method used to run the computer.
Although most Linux distributions now include a graphical interface, and many administration tools have been converted to a graphical format, many tasks are best performed from the command prompt. In addition, while graphical elements vary between distributions, shell commands are more likely to be consistent between distributions.
The following table describes many common shell types:
|bash||The Bourne-again shell (bash) is the standard shell
used in most Linux computers. It uses commands similar to a UNIX shell. Bash
includes features such as:
|sh||The Bourne shell is an earlier version of the Bash shell, and is similar in many ways. Sh is the original shell created by Steve Bourne.|
|ksh||The Korn shell was developed by David Korn. Ksh has scripting features not found in bash.|
|csh||The C-shell uses syntax similar to syntax used in the C programming language.|
|tcsh||The tcsh shell is an improved version of csh. It offers command line editing and completion features not available with csh.|
Despite their differences, all shells share some common characteristics:
- A Linux system can use multiple shells at the same time.
- A list of shells is stored in the /etc/shells file.
- All shells are interfaces with the kernel, separate and distinct from it.
- Shells are run both interactively by end users and automatically by the computer's processes.
- Shells can run within one another either interactively when a user starts a second shell from the first shell's command line, or automatically by scripts or programs.
- Shells use configuration files to establish their operating environments.