Some of the benefits of using ZSH over Bash include:

Enhanced command completion: ZSH offers better command completion than Bash, including the ability to use tab completion for options and arguments. More powerful globbing: ZSH has a more powerful globbing (wildcard matching) system than Bash, which allows you to use more complex patterns to match file names. Better syntax highlighting: ZSH includes built-in syntax highlighting for various programming languages, making it easier to read and write code. Improved history management: ZSH has a better history management system than Bash, allowing you to more easily search and navigate your command history more. Additional features: ZSH includes a number of additional features that are not available in Bash, such as the ability to customize the prompt and to use plug-ins and themes to further customize the shell environment.


Before we start, make sure you have the following prerequisites:

A Ubuntu or Debian system. A user account with sudo privileges.

Installing Zsh (Z Shell)

The ZSH (Z Shell) packages are available under default debian repositories. To install Zsh on Ubuntu or Debian, you can use the apt package manager. Open a terminal and enter the following command: This will install Zsh and all of its dependencies.

Changing the Default Shell

To use Zsh as your default shell, you need to change the SHELL variable in the /etc/passwd file. To do this, run the following command: This will change the SHELL variable for your current user to the path of the Zsh executable.

Configuring Zsh

When you start Zsh for the first time, it will create a default configuration file at ~/.zshrc. This file contains settings and options that control how Zsh behaves. You can edit this file to customize your Zsh environment. Some common options to consider include:

ZSH_THEME: sets the appearance of the prompt. You can find a list of available themes here. alias: defines short aliases for commonly used commands. For example, you can define alias ll='ls -l' to use ll as a shortcut for ls -l. export: sets environment variables that affect the behavior of Zsh and other programs.

To apply changes to your ~/.zshrc file, you need to either log out and log back in, or run the following command:

Installing Oh My Zsh

Oh My Zsh is a popular framework for managing and customizing Zsh. It offers a large number of plugins and themes, making it easy to customize and extend Zsh. To install Oh My Zsh, run the following command: This will download and run the Oh My Zsh installation script, which will set up Oh My Zsh and create a default configuration file at ~/.oh-my-zsh/. To enable Oh My Zsh plugins and themes, you need to edit the ~/.zshrc file and set the ZSH_THEME and plugin variables. For example:

This will set the agnoster theme and enable the git and docker plugins.


In this article, we learned how to install and configure Zsh Shell in Ubuntu and Debian systems. Which have multiple extra features than the Bash shell.