Author: Sumit Dhiman
October 5th, 2021
A Shell provides you with an interface to the Unix system. It gathers input from you and executes programs based on that input. When a program finishes executing, it displays that program's output.
Shell is an environment in which we can run our commands, programs, and shell scripts. Shells come in a variety of flavours, much as operating systems come in a variety of flavours.
Shells are like brands. Everyone has a favourite and religiously defends that choice and ever so often, tells you why you should switch. The different Types of Shells in Linux can offer various capabilities, like syntax highlighting, auto-completion, auto-suggestion, tab-completion, spell correction etc.
I will be explaining 3 best of them.
Bash stands for Bourne Again Shell and it is the default shell on many Linux distributions today. It is also a sh-compatible shell and offers practical improvements over sh for programming and interactive use which includes:
1. Its fast and stable.
2. comes pre-installed and default shell of many distros.
3. compatible with shell scripts.
4. can be easily automated using shell scripts.
1. Not that much customizable.
2. No syntax highlighting
ZSH, also called the Z shell, is an extended version of the Bourne Shell (sh), with plenty of new features, and support for plugins and themes. Since it’s based on the same shell as Bash, ZSH has many of the same features, and switching over is a breeze. One of the coolest things about is color customization. You can change the theme and color of your shell just by using a framework called, OH MY ZSH.
NOTE: It has all the feaures of BASH.
1. Themes and plugins support.
2. Automatic CD command: Just type the directory name.
3. Recursive path expansion: For example “/u/lo/b” expands to “/usr/local/bin”.
4. Spelling correction and approximate completion: If you make a minor mistake typing a directory name, ZSH will fix it for you.
1. Sometimes themes decrease the performance.
Fish, which stands for "Freindly Interactive Shell," is a clever and user-friendly command line shell for Linux, macOS, and the rest of the family. Fish comes pre-configured with features like syntax highlighting, autosuggestion as you type, and more user-friendly tab completion. You may just install it and customise it with a framework called OH MY FISH.
NOTE: You don't have to edit config file for changing theme. You can change themes and other stuff like abbreviation, prompt, color scheme using command:
1. Autosuggestion: This feature gives you the capability of quick access to the commands as you type.
2. Web interface: Feature of Fish is that you can configure it as a web interface running on your local server.
3. Syntax Highlighting.
4. Spelling Correction.
5. Every feature that zsh and bash have.
Obvious error messeges: When you screw up, Fish shows the errors and your faults plus the way that you can handle it!