Whoever works with Linux will come across shell as the first program to work with. The Graphical user interface (GUI) usage has become very popular due to the ease of use. Those who want to take advantage of the power of Linux will use the shell program by default.
Shell is a program which provides the user direct interaction with the operating system. Let's understand the stages in the evolution of the Linux operating system. Linux was developed as a free and open source substitute for UNIX OS. The chronology can be as follows:
In this chapter, we will cover the following topics:
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:
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.