The shell is the command interpretor in an operating system such as Unix or GNU/Linux, it is a program that executes other programs. It provides a computer user an interface to the Unix/GNU Linux system so that the user can run different commands or utilities/tools with some input data.
When the shell has finished executing a program, it sends an output to the user on the screen, which is the standard output device. For this reason, it is referred to as the “command interpretor”.
The shell is much more than just a command interpretor, it is also a programming language of its own with complete programming language constructs such as conditional execution, loops, variables, functions and many more.
That is why the Unix/GNU Linux shell is more powerful compared to the Windows shell.
In this article, we shall take a look at some of the top most used open source shells on Unix/GNU Linux.
1. Bash Shell
Bash stands for Bourne Again Shell and it is the default shell on many Linux distributions today. It is also a sh-compatible shell and offers practical improvements over sh for programming and interactive use which includes:
- Command line editing
- Job Control
- Unlimited size command history
- Shell Functions and Aliases
- Unlimited size Indexed arrays
- Integer arithmetic in any base from two to sixty-four
2. Tcsh/Csh Shell
Tcsh is enhanced C shell, it can be used as a interactive login shell and shell script command processor.
Tcsh has the following features:
- C like syntax
- Command-line editor
- Programmable word and filename completion
- Spelling correction
- Job control
3. Ksh Shell
Ksh stands for Korn shell and was designed and developed by David G. Korn. It is a complete, powerful, high-level programming language and also an interactive command language just like many other Unix/GNU Linux shells.
4. Zsh Shell
Zsh is designed to be interactive and it incorporates many features of other Unix/GNU Linux shells such as bash, tcsh and ksh.
It is also a powerful scripting language just like the other shells available. Though it has some unique features that include:
- Filename generation
- Startup files
- Login/Logout watching
- Closing comments
- Concept index
- Variable index
- Functions index
- Key index and many more that you can find out in man pages
Fish in full stands for “friendly interactive shell” and was authored in 2005. It was intended to be fully interactive and user friendly, just like the other shells, it has some pretty good features that include:
- Man page completions
- Web based configuration
- Fully scriptable with clean scripts
- Support for term256 terminal technology
You can read more about fish shell at Fish – A Smart Interactive Shell for Linux
These are not all the shells available in Unix/GNU Linux but they are the top most used apart from those that are already installed on different Linux distributions. Hope you find this article useful and more any additional information, do not hesitate to post a comment.