We know that computers only understand two thing 0 and 1(Binary Language). So if you want your computer to do anything, you have to say it in the form of 0 and 1 only. No English No Hindi nothing else.
So what can we do now. We can only speak English (Hindi for me). How can i ask my computer to do something on behalf of me. Here comes Shell in the picture. It accept the command from me (User) in form of English, Interpret it and if everything is fine then it ask Kernel to perform activity. So this is the flow.
Me (English Speaking) >> Shell (Interprets Input from me) >> Kernel (Perform Activity e.g. Print Doc etc)
Type of Shell
There are different type of Shell’s available, they all offer similar functionality but with different syntax.
All shells can be divided in two types
- SH – Bourne Shell
- BASH – Bourne Again Shell
- CSH – C Shell
- TCSH – TENEX/TOPS C shell
- ksh – Korn Shell
- POSIX Shell
Difference between Shells
This is just the summary of this articles. If you want to have more understanding about Shell, you can look at this page.
Original Shell : Bourne Shell : SH (/bin/sh)
Pros : Very Strong powerful syntactical language
Cons : Not available to Interactive User
Second Shell : C-Shell (/bin/csh)
Pros : Available to Interactive User
Cons : Not as powerful as Bourne Shell, Buggy code
Third Shell : TCSH – TENEX/TOPS C shell : Built over C Shell
Pros : Most bugs of C-Shell is removed.
Cons : Not used much as most vendors stay away with this Shell.
Fourth Shell : KSH – Korn Shell (/bin/ksh)
Pros : Best of both world (Bourne Shell and C Shell), Can be used for Interactive and Non Interactive User
Cons : Paid Shell
Fifth Shell : POSIX Shell
Pros : Standardization of Unix followed, Posix compatible
Cons : Later on mapped to other shells
Most Famous : BASH (Bourne again Shell) Shell
Pros : Based on Bourne Shell, POSIX compatible, Best of Both worlds(SH and CSH), FREE
So currently BASH shell is the mostly used shell in Unix system. Hope you get the difference between all Shell.