Comparison of shells
Initially, the UNIX OS used a shell program called Bourne Shell. Then eventually, many more shell programs were developed for different flavors of UNIX. The following is brief information about different shells:
- Sh—Bourne Shell
- Csh—C Shell
- Ksh—Korn Shell
- Tcsh—enhanced C Shell
- Bash—GNU Bourne Again Shell
- Zsh—extension to Bash, Ksh, and Tcsh
- Pdksh—extension to KSH
A brief comparison of various shells is presented in the following table:
Feature |
Bourne |
C |
TC |
Korn |
Bash |
---|---|---|---|---|---|
Aliases |
no |
yes |
yes |
yes |
yes |
Command-line editing |
no |
no |
yes |
yes |
yes |
Advanced pattern matching |
no |
no |
no |
yes |
yes |
Filename completion |
no |
yes |
yes |
yes |
yes |
Directory stacks (pushd and popd) |
no |
yes |
yes |
no |
yes |
History |
no |
yes |
yes |
yes |
yes |
Functions |
yes |
no |
no |
yes |
yes |
Key binding |
no |
no |
yes |
no |
yes |
Job control |
no |
yes |
yes |
yes |
yes |
Spelling correction |
no |
no |
yes |
no |
yes |
Prompt formatting |
no |
no |
yes |
no |
yes |
What we see here is that, generally, the syntax of all these shells is 95% similar. In this book, we are going to follow Bash shell programming.