A shell is a special program which gives you the familar text mode prompt.You can use it to start other programs and it understands some special commands of its own.Sometimes these special commands are combined into a file which can be run all at once,in sequence.
A shell performs 2 basic functions - It acts as a command interpreter and as a programming language.
As a command interpreter it is somewhat similar to DOS.
As a programming interface it allows you to process commands stored in shell scripts. This is somewhat similar to batch files in DOS.
There are several different shells that you can use,Most popular with programmers is called the "C Shell".Linux has its own version called "tcsh", the most common shells are Bourne, C, Korn and Bash.
[1] Bourne shell - The Bourne shell is activated by typing sh and is represented by a $ prompt. This was one of the first shells and still one of the most popular.
[2]C shell - This shell resembles the C programming language and is represented by a % prompt. The command to use this shell is csh. The C shell was buggy, but had important features so people had to switch back and forth between this one and Bourne. This shell has more advanced shell-programming features and a diffrent
yntax for some operations.
[3] Korn shell - Korn shell is written in short as(ksh),has simple graphical capabilities.This is a combination of the C and Bourne shells and is represented with a $ prompt. David Korn from AT&T came along and took features of the C shell and added them to the Bourne shell to try to fix it.
[4] Bash -Bash stands for "Bourne Again Shell". This one came about as the Korn shell was not free and demand for a free shell began to grow. Obviously Linux using this one.Bash has more advanced features than the origianal bourne shell and it is more user friendly.
Shell is started when :You log on to a text console a shell is started automatically.Or by runing terminal window (Such as Xterm,Or Kterm in KDE).
Sometimes we want to perform complex task in Linux or Unix.then to perform it we need to write a script .A script is file that contains shell commands which can interact with the user,repeat commands and make decisions.To script for the shell is another study concept called as "Shell Programming".Though i m not efficient in Shell programming i will try to cover the basic if you want to know more about it.Reply or PM me if you want me to write another article.

