Unix shell is the name for a program with which users of UNIX interact. It takes command input as text and executes the specified commands, users can thereby direct the operation of the computer. It is the UNIX analogue of COMMAND.COM in the DOS world.
It is used both in a generic sense, meaning any program that users use to type commands into, and in a particular sense, meaning a particular program, one written by Steve Bourne. It has the generic sense because in UNIX any program can be the user's shell; if they want to use a different syntax for typing commands then they can do that by specifying a different program as their shell. Steve Bourne's shell was the shell used in early versions of UNIX and became a de facto standard. Steve Bourne's shell is also known as Bourne shell, sh, and /bin/sh (the traditional location of the program in the UNIX file hierarchy), and the terms are also used to refer to programs that are compatible or largely compatible with Bourne shell.
/bin/sh is just a standard location for the shell on UNIX. On some systems /bin/sh is a Bourne shell (or equivalent) but on others, Linux for example, it is likely to be a link to a more feature-rich shell such as bash.
Unix shell is unusual in being both the language used by users interactively and the language used to script the system, it is a scripting programming language.
- Almquist shell (ash)
- Bourne shell (sh)
- Bourne-Again shell (bash)
- C shell (csh)
- Extended C shell (tcsh)
- Korn shell (ksh)
- Public Domain Korn shell (pdksh)
- Secure Shell (ssh)
- Z shell (zsh)