Linux Shell

Author: Sumit Dhiman

October 5th, 2021

image here

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.

So Why Do We Need To Change Our Shell?

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.

There are many different shells for linux, like

  • The C Shell
  • The Bash
  • The Z Shell
  • The Korn Shell
  • The Bourne Shell
  • The Fish, etc.

I will be explaining 3 best of them.

The Bourne-Again Shell:

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:

  • Command line editing
  • Job control
  • Unlimited size command history
  • Shell Functions and aliases
  • Unlimited Size Indexed arrays.

Bash Shell

Advantages of Bash:

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.

Disadvantages of Bash:

1. Not that much customizable.

2. No syntax highlighting

The Z-Shell:

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.

Zsh Shell

Advantages of ZSH:

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”. Path expansion

4. Spelling correction and approximate completion: If you make a minor mistake typing a directory name, ZSH will fix it for you.

Disadvantages of ZSH:

1. Sometimes themes decrease the performance.

The Fish :

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:



Advantages of fish:

1. Autosuggestion: This feature gives you the capability of quick access to the commands as you type.

Auto sugessttion fish

2. Web interface: Feature of Fish is that you can configure it as a web interface running on your local server.

web interface

3. Syntax Highlighting.

4. Spelling Correction.

5. Every feature that zsh and bash have.

Disadvantages of Fish:

Obvious error messeges: When you screw up, Fish shows the errors and your faults plus the way that you can handle it!

Wanna talk to ISTE? Or be a part of it? You can contact any of our members personally or 📧 us at!