If you are using the Linux command line that means you are using one of the Linux shells to type to those commands. Shells are very important in the Unix world.
What exactly is Shell?
You may consider Shell-like an Interpreter or transponder between the user and the kernel. It allows you to give commands to the kernel and receive the response back from it. Without a shell, you won’t be able to interact with the kernel, run your scripts or use the features offered by the operating system. A box would be useless without a Shell.
Shell is the core part of the Linux operating system.
Type of the shells.
- bash – (the popular guy)
Explanation of Shells
The Bourne Shell (SH)
SH is considered the first shell which was developed by Steve Bourne in AT&T Labs. It was a lightweight and fast shell which made It popular. Solaris made SH as the default shell on their systems
If you see a $ prompt on your screen it means you are using SH. Bourne shell is a good read on the Internet.
The Bash Shell
People know him by his name that’s Bash, It was designed to be compatible with SH. While the backward compatibility was useful it also had many new features which we still use today. Bash most popular used in shell scripting, It supports background tasks and many other improvements from SH.
The Birthday Bash of /bin/bash is in the year 1984🙂
It’s now the default shell in all Linux operating systems.
The Korn Shell
The Korn Shell resides in /bin/ksh. It was built to improve Bourne’s shell and offered new functionalities. It made it easier to run the scripts made for the Bourne shell.
The Z Shell (zsh)
The Z Shell or zsh is a sh shell extension with lots of improvements. If you want a shell that has all the features then zsh shell is what you should be using.
Here is the small comparison Image which I found on Stack Overflow.
How to see what shells are installed on your system?
[[email protected] bin]$ cat /etc/shells /bin/sh /bin/bash /usr/bin/sh /usr/bin/bash [[email protected] bin]$
How to Switch between shells?
To switch between shells, just type the full shell path. For an example, if you want to switch to SH the just type /b
[[email protected] ~]$ /usr/bin/sh sh-4.2$
How to check what shell you are currently in?
Just type in the command below
sh-4.2$ ps -p $$ PID TTY TIME CMD 1967 pts/0 00:00:00 sh sh-4.2$
I hope today you better understand the shells in Linux. Since this is our first page, you may read our about page