A UNIX Shell is in simplest terms, a command line interpreter, that takes the users input and gives it to the Kernel. If you are familiar with DOS, you will remember the ‘command.com’ that file takes the users information and passes it to the operating system in a way it can be understood by the system. With DOS you only had one type of shell, but with UNIX you have a variety, each with their own abilities, pluses and minuses.
Keep in mind as you read about these shells, that though they may have major differences when they were created, that they have been updated and many features that were once only available in a single shell, may be available in other shells. This is more of a history lesson.
sh
The Bourne shell, named after its creator Steve Bourne is the oldest shell for most major distributions of UNIX and LINUX. Most shells today are in some fashion derived from the Bourne shell.
csh
The C Shell. The C shell is a great shell that has many advantages over the original Bourne shell, it was the first to introduce a history (the ability to scroll up, to view past commands). Also the C Shell as the name implies also integrates a great portion of the C programming language. If you are able to program in C, you can pretty much do it all in a shell script or from the command line, if you so desired.
ksh
The Korn Shell. Named after its creator David Korn. This shell is able to do most of the things both the Bourne, and C Shell can do, and improves on them. For instance, the history feature is available, plus you are able to call up the history, edit the command, and then re-run it.
bash
The Bourne-Again Shell. This is probably the most widely used shell to date, and is the default shell for most newer Linux distributions. Again it integrates most of the above features and improves upon them. It was developed by the Free Software Foundation.
There are many other shells out there, but chances are if you are using a UNIX style operating system, you are using one of the above mentioned shells. My personal favourite is the bash shell, which also happens to be the first one I was exposed towards, so I may be biased. However typically when shell scripting, I use the korn shell because of its programming friendly structure.
Comments (0)
Post a Comment