1.Shell is the gateway to interacting with the operating system.
2.It takes the input’s from the keyboard and send to the kernel program and then displays the output on the screen.
There are lots of shells available in UNIX flavors
Types of Shell
In addition to the graphical user interface like Gnome, KDE, The Linux operating system also offers several shells.These command line interfaces provide a powerful environment for software development and system maintenance. Though shells have many commands in common, each type has some unique features.
There are two major shells available in Linux
1)Bourne shell (sh)
Bourne-shell(sh)- The Bourne shell called “sh” is one of the original shells, Developed for Unix systems by Stephen Bourne at AT&T’s Bell Labs in 1977.It offers features such as input and output redirections, Shell scripting with string and integer variables and conditional testing and looping.
The sub-categories of Bourne shell:
a)Bourne again shell (Bash)
b)Korn shell (Ksh)
Bourne Again Shell (Bash)-The popularity of sh motivated the programmers to develop a shell that is compatible with it, but with several enhancements, Linux system still offers the sh shell, but bash –based on sh –become the new standard shell.One attractive feature of bash is its ability to run the sh shell scripts unchanged.Shell scripts are complex set of commands that automate programming and maintenance chores..being able to reuse these scripts saves programmers time Convenience not present with the original Bourne shell include command completion and command history.
Note: The most preferable shell in flavors of UNIX is BASH.Linux uses BASH as its default login shell.
Korn shell(Ksh)-Korn shell is more compatible with the sh and bash.Ksh improves on the Bourne shell by adding floating point arithmetic, job control, command aliasing and command completion.
Note: AT&T held proprietary rights to Ksh until 2000 when it becomes opensource.
C-Shell(Csh) and tcsh-Using C-syntax as a model Bill joy at Berkeley university developed the C-SHELL csh, in 1978
Ken Greer working at Carnegie-Mellon University took Csh concepts a step forward with the new shell,tcsh which Linux systems now offer. Tcsh fixed a problem in csh and added command completion, in which the shell makes educated “guesses” as you type, based on your system directory structure and files.
Note: Tcsh doesn’t run the Bash scripts as the two have substantial differences.
What is a TERMINAL?
Its a program called terminal emulator.This program is responsible for opens the window and lets you to interact with the shell.
There are a bunch of different terminal emulators you can use.Most Linux distributions supply several such as,gnome-terminal,xterm, Konsole,nxterm and eterm.
Starting a TERMINAL:
Your windows manager probably has a way to launch a terminal from the menu.If you are a KDE user, then your terminal program is “Konsole”, in gnome it’s called gnome-terminal, you can start up as many of these as you want and play with them, while there are a number of different terminal emulators, they all do the same thing.They give you access to shell session.
Terminal=tty=text input and output environment(tty is a particular type of device file which implements a no of additional commands beyond read and write.)
Note: Some ttys are provided by the kernel on behalf of a hardware device, for example with the input coming from the keyboard and the output going to text-mode screen or you can say like with the input and output transmitted over a serial line.You can open multiple terminals at a time and check the terminal number by using the command called tty , here I show you the example how it looks