A shell, also known as a command interpreter, is a specialized program for accepting typed user commands, translating those into programs to run, running those programs, and displaying (or doing something) with the results. A "common" example of a shell is the DOS shell, called COMMAND.COM, which was the complete user interface before Windows.
Different shells exist, offering different feature sets. Two main families of shell exist: the Bourne shell and its variants (sh, bash, ksh) and the C shell and its variants (csh, tcsh). Though many shells have features common to others, the way they make use of those features is unique, so that (for example) Bourne shell conventions don't usually apply to C shells.
- bash - The Bourne-Again SHell - feature-rich default Linux shell.
- csh - A shell with C-like syntax, with file name completion and command line editing - usually tcsh on modern Linux.
- fish - 'friendly' interactive shell
- ksh - Korn SHell - part of the sh rather than csh family.
- sh - the original shell, often a symlink to bash on modern Linux and the most portable.
- tcsh - An extended version of csh, with all its features and some additional ones.
- zsh - One of the newest and most feature-rich shells.