What Are the Different Linux Shells? | Linux

2023/12/15

Let’s explore some common Linux Shells and explain the differences between Shell, Bash, and Zsh.

Introduction:

In the world of Linux, the Shell serves as a command-line interface that allows users to interact with the operating system. Two commonly used Shells are Bash (Bourne Again Shell) and Zsh (Z shell), each offering unique features and user experiences.

  • So Bash and Zsh are both types of Shell.
  • Zsh is an emulator (terminal emulator), but its primary purpose is to execute Linux shell commands.
  • You can use different types of Linux terminal emulators:
    • Terminal
    • iTerm
    • Windows Terminal

Linux Shell:

Linux Shell is a command interpreter that interprets and executes commands entered by the user. It provides users with a text-based interface for interacting with the system, facilitating tasks such as file management, process control, and software installation.

Bash (Bourne Again SHell):

Bash is one of the most widely used Shells, maintaining compatibility with the sh shell. Bash’s compatibility with sh means that shell scripts written for sh can run in bash without modification. It is also the default Shell for many Linux distributions. As the successor to the original Bourne Shell (sh), it comes with enhanced features. Most beginners and experienced users choose Bash as their preferred Shell.

  • Bash extends some sh commands and parameters
  • Bash is not fully compatible with sh; some behaviors are inconsistent, but most cases have little impact
  • In special scenarios, bash can be used as a replacement for sh

    Bash configuration file: ~/.bash_profile

Zsh (Z Shell):

Zsh, also known as Z shell, is another popular Shell that offers additional features and customization options. It provides advanced tab completion, improved syntax highlighting, and theming capabilities. Zsh delivers an interactive and user-friendly experience, attracting users who prefer a more visually appealing and feature-rich Shell. Mac OS users often install oh-my-zsh , a very useful tool that is compatible with bash and comes with handy auto-completion features, making it extremely popular among engineers.

Zsh configuration file: ~/.zshrc

Differences:

Although Bash and Zsh share core functionality, Zsh distinguishes itself with features like advanced tab completion, spelling correction, and a plugin system. On the other hand, Bash is known for its widespread usage, stability, and scripting capabilities.

Here are some less common Shells

sh

The full name of sh is Bourne shell, developed by Steve Bourne at AT&T, and named after him. sh is the standard shell on Unix. Many versions of Unix come with sh pre-configured. sh was also the first popular shell.

csh

The shell that became popular after sh was csh, developed by Bill Joy at the University of California, Berkeley. This shell was designed to be similar to the C language, hence the name C shell, abbreviated as csh.

tcsh

An enhanced version of csh, with added command completion functionality and more powerful syntax support.

ash

ash is a lightweight shell that uses fewer resources and is suitable for running in low-memory environments, while being fully compatible with bash shell.