A shell can be defined as "a command language interpreter that executes commands" or simply "a program that provides an interface to the underlying kernel and hardware". The Bourne Again Shell (BASH), is the latest and advanced command line interface containing a wide range of useful built-in commands, the ability to invoke other programs, and the ability to control programs that have been launched from it.
The Bourne Again shell (BASH) was created for use in the GNU project. The GNU project was started by Free Software Foundation (FSF) under the guidance of Richard Stallman for the purpose of creating a "FREE" Unix like operating system.
Each program which is executed in a BASH shell is a job. Whenever a job is started, it takes over the terminal. The terminal may be either the straight-text (tty) interface or the terminal window created by the X Window System on which BASH runs. (The terminal interfaces in X Window System are called a pseudo-terminal(pty))
If you want the program to be executed separate and give up terminal control and allow BASH to present a user prompt, you can invoke the program with an ampersand (&).
[root@RHEL06 ~]# gedit &
The "#" sign at the end of the BASH prompt denotes that the user is the Linux super user (root) user and a "$" sign denots a normal Linux user.
In the Linux BASH prompt, the first part is the user id, second part is the machine name and the last part is the working directory. The "~" character represents the users home directory.
• GNU/Linux Kernel and Shell