Shell
A shell is a command-line interpreter that provides a user interface for accessing an operating system’s services. It allows users to execute system commands, run utilities and other programs, and manage files and processes on the local system. The shell interprets user commands and translates them into actions performed by the operating system.
Most shells are both a command language (in which commands are typed and executed interactively via the command line) and a scripting language (in which a sequence of commands are written in a file and executed all at once – behaving more like a program). Thus shell languages tend to be used as both an interactive command language – with commands typed directly on the command line – and also for simple scripting – in which procedures of commands are stored in executable files.
Bash is a good choice for writing simple system utilities with short execution times. It particularly excels at automating tasks that involve installing and configuring system software.
Command line interpreters tend to be used for system administration, rather than for software application development. Shells tend to be a good choice for writing simple, single-purpose system utilities with short execution times, and for automating tasks that largely involve installing and configuring system software.
Command line interpreters should not be confused with interactive shells or [REPLs] for higher-level programming languages, which have a similar user experience but different use cases.
A Unix shell is a shell designed for Unix-like operating systems. Well-known Unix shells include:
-
The Bourne Shell,
sh, one of the earliest shells. -
The Bourne Again Shell,
bash, a superset of Bourne Shell functionality. -
KornShell,
ksh, which is backwards compatible with Bourne Shell and includes many of the features of C Shell. -
Z Shell,
zsh, another popular shell based on Bourne.
See also POSIX.