Understanding Linux Shell
A Shell refers to a Command-Line Interpreter by using which a user is connected to the operating system. It allows users to execute the commands for the operating system management.
Various Types of Shells Available in Linux
1.) Bourne shell
Bourne shell is one of the original shells which was developed by Stephen Bourne for Unix computers at AT&T’s Bell Labs in the year 1977. It is also called “sh,”. The name of Bourne shell program is “sh” and generally it is located at /bin/sh in the file system hierarchy.
A number of variables and settings are configured for your shell when you log into it. These are the files most commonly used by bash:
This file provides the default system-wide environment variables. Typically it sets up the LOGNAME, umask, and some mail directories etc. You can also use this file to change the default command search path for all users available on the system. If a system does not have a /etc/bashrc file aliases then sometimes they are included in the /etc/profile file too.
~/.bashrc file is called for non-interactive shells and generally is called from the ~/.bash_profile for interactive shells. By using this file you can set up aliases and any other different commands which are run during the startup.
This is called after the /etc/profile script. It provides the user with specific environment variables and is often used to add local search paths.
This is called by the system when the user logs out of the shell terminal.
2.) C SHELL
It is known as “csh.” was designed to allow users to write shell script programs by using a syntax which is very similar to that of the C programming language.
It is a command language interpreter usable both as an interactive login shell and a shell script command processor.
4.) K shell
It was created by David Korn and has features of both B and C shell along with some additional features. It improvises on the Bourne by adding job control, floating-point arithmetic, command completion and command aliasing. It also includes the ability for developers to create new shell commands as the need arises.It is known as “ksh.”