Shell is a program that interprets the command and acts as an interface between user and kernel. It provides the command line interface to user to access the OS services. Shell gathers input from user and executes programs based on that input. Shell is one of the most powerful tool of Unix. There are many types of shells and each shell having its own syntax, features and capabilities.
The prompt, $, it is command prompt for shell. When the this prompt appears, user can type the command. Sometimes this prompt is like #. This prompt (#) comes only for normal users. For Super user prompt always be ($).
Following are some of the shells:
· sh :
It is Bourne shell. It has many drawbacks like no command completion feature, no history, can't change on command line i.e. command line editing options are not available.
It is Bourne again shell. It is extended version of Bourne shell. Some of the drawbacks of Bourne shell have been removed in this shell. It includes features like command line editing, history of commands and so on.
This shell is written by David Korn and available for all Unix like systems. It is also a extension of Bourne shell and some of the features adapted from C shell.
Zsh is really powerful shell that provides much of the functionality of KSH, CSH and BASH. This shell is dramatically powerful is in its ability to interactively evaluate and modify arguments. It can do command completion, filename completion etc.
It is extension of CSH that adds functionality like command completion, command line editor, enhanced history completion.
Above are some of the shell's which are commonly used in Linux/Unix.