The shell of an operating system is a program that presents an interface to various operating system functions and services. The shell is so called because it is an outer layer of interface between the user and the innards of the operating system (the kernel).
Shells generally fall into one of two categories: command line and graphical. Command line shells provide a command line interface (CLI) to the operating system, while graphical shells provide a graphical user interface (GUI).
The relative merits of CLI- and GUI-based shells are often debated. CLI proponents claim that certain operations can be performed much faster under CLI shells than under GUI shells (such as moving files, for example). However, GUI proponents advocate the comparative usability and simplicity of GUI shells. The best choice is often determined by the way in which a computer will be used. On a server mainly used for data transfers and processing with expert administration, a CLI is likely to be the best choice. On the other hand, a GUI would probably be more appropriate for a computer to be used for secretarial work.
List of shells
Graphical (GUI) shells
Text (CLI) shells
- Almquist shell (ash)
- Bourne shell (sh) Written by Steve Bourne, while at Bell Labs. First distributed with Version 7 UNIX, circa 1978.
- Bourne-Again shell (bash)
- C shell (csh) Written by Bill Joy, while at the University of California, Berkeley. First distributed with BSD, circa 1979.
- scsh (Scheme Shell)
- TENEX C shell (tcsh)
- Korn shell (ksh) Written by Dave Korn , while at Bell Labs.
- rc shell (rc)
- Z shell (zsh)
- command.com (shell for DOS)
- cmd.exe (shell for OS/2 in text mode and for Windows NT)
- 4DOS, 4OS2, 4NT (shells for DOS, OS/2, and Windows NT written and sold by JP Software)
See also