Considering the Operating System as the software layer that is responsible of communicating with hardware devices we need a way to interact with the computers. Before the Graphic Cards were cheaply available to show Graphical User Interface the only way to interact with Operating Systems were using a command line interface. In Linux it is called the shell. (Windows CLI is called DOS)
It is through the shell that the user interacts with the computer. Shell based interface made the life of the computer users easy by refiling them from remembering the intricate hardware details. Some of the common shells in Linux operating systems are discussed below:
|Unix Vs. Linux|
There are significant difference but simply put : Unix was developed in 1960s by AT&T Bell Labs hence it is proprietary. Linux on the other hand is the Open Source counterpart of Unix.
The first command processor developed at AT&T and named after its developer Stephen R. Bourne. This shell is officially distributed with Unix systems. The Bourne shell is the fastest Unix command processor available which is available on all Unix systems. It is the most widely used shell at present for Unix systems. The executable filename is sh, and it is installed as bin/sh.
Developed by William Joy and others at the University of California at Berkeley. It gets its name from its programming language, which resembles the C programming language in syntax. It is not compatible with the Bourne shell. The C shell was developed to provide a programming interface similar to the C programming language. The name executable file is csh.
The Korn shell was developed by David Korn and its a product of AT&T. It combines the best features of both the C shell and Bourne Shell. The executable filename is ksh.
Mainly used in servers to provide it’s users with restricted access. It is typically assigned to guest users. When using the Restricted shell, users are unable to perform installations restricted to work only in their limited environments setup by the server administrators.
Bash is an acronym for “Bourne Again Shell”. It is an enhancement of the Bourne shell and is the default shell for the Linux system. The Bash shell (/bin/bash) is capable of storing the history of the commands that you have executed in previous sessions. Bash is a product of the free software Foundation’s GNU project.
Tcsh stands for Tom’s C shell., also known as the TC shell and is an enhancement of the shell. You can execute the Tcsh shell by typing either csh or tcsh at the command prompt. The C and the TC shell are not compatible with the Bourne shell.
The A Shell (ash) was developed by Kenneth Almquist of the University of Berkely. It is a lightweight bourne shell clone. It is usually suitable for computers that have very limited memory.
The z shell (zsh) has the best features of the Tcsh shell. It can emulate all the features of the Korn shell and has the largest number of utilities, with extensive documentation this is one of the easiest CLI’s to use.
Mcilroy, M. (n.d.). AResearch UNIX Reader: Annotated Excerpts from the Programmer’sManual, 1971-1986. [online] Available at: https://www.cs.dartmouth.edu/~doug/reader.pdf [Accessed 6 Jan. 2020].