How to make ZSH as the default shell on Ubuntu


Let's see how we can make the Zsh shell the default interactive shell for Ubuntu Linux Operating System,

Ignore step 1 and 2 if you already have Zsh installed,

  • Step 1: Open Terminal and first to apt update (need to add sudo if not root user)

    # apt update
    Get:1 http://ports.ubuntu.com/ubuntu-ports focal InRelease [265 kB]
    Get:2 http://ports.ubuntu.com/ubuntu-ports focal-updates InRelease [114 kB]
    Get:3 http://ports.ubuntu.com/ubuntu-ports focal-backports InRelease [108 kB]
    Get:4 http://ports.ubuntu.com/ubuntu-ports focal-security InRelease [114 kB]
    ...                 
    Get:17 http://ports.ubuntu.com/ubuntu-ports focal-security/main arm64 Packages [879 kB]                            
    Get:18 http://ports.ubuntu.com/ubuntu-ports focal-security/multiverse arm64 Packages [3242 B]                      
    Fetched 17.1 MB in 11s (1593 kB/s)                                                                                 
    Reading package lists... Done
    Building dependency tree       
    Reading state information... Done
    1 package can be upgraded. Run 'apt list --upgradable' to see it.
  • Step2 : Now lets install zsh using command - apt install zsh

    # apt install zsh
    Reading package lists... Done
    Building dependency tree       
    Reading state information... Done
    The following additional packages will be installed:
      libcap2 libgdbm6 zsh-common
    Suggested packages:
      gdbm-l10n zsh-doc
    The following NEW packages will be installed:
      libcap2 libgdbm6 zsh zsh-common
    0 upgraded, 4 newly installed, 0 to remove and 1 not upgraded.
    Need to get 4438 kB of archives.
    After this operation, 17.9 MB of additional disk space will be used.
    Do you want to continue? [Y/n] y
    ..
    Get:3 http://ports.ubuntu.com/ubuntu-ports focal/main arm64 zsh-common all 5.8-3ubuntu1 [3744 kB]
    Get:4 http://ports.ubuntu.com/ubuntu-ports focal/main arm64 zsh arm64 5.8-3ubuntu1 [653 kB]
    Fetched 4438 kB in 4s (1266 kB/s)
    ...
    Selecting previously unselected package zsh-common.
    Preparing to unpack .../zsh-common_5.8-3ubuntu1_all.deb ...
    Unpacking zsh-common (5.8-3ubuntu1) ...
    Selecting previously unselected package zsh.
    Preparing to unpack .../zsh_5.8-3ubuntu1_arm64.deb ...
    Unpacking zsh (5.8-3ubuntu1) ...
    Setting up zsh-common (5.8-3ubuntu1) ...
    Setting up libcap2:arm64 (1:2.32-1) ...
    Setting up zsh (5.8-3ubuntu1) ...
  • Step 3: Now use the command and you will be prompted to add the path of the shell you want to use as your Login Shell, type the path of Zsh.

    # chsh
    Changing the login shell for root
    Enter the new value, or press ENTER for the default
    	Login Shell [/bin/bash]: /usr/bin/zsh
  • Step 4: Close the terminal and launch again to take effect

You would see now the default shell is zsh.

Making ZSH shell the Default Shell on Ubuntu
-

Facing issues? Have Questions? Post them here! I am happy to answer!


Author Info:

Rakesh (He/Him) is a seasoned developer with over 10 years of experience in web and app development, and a deep knowledge of operating systems. Author of insightful How-To articles for Code2care.

Follow him on: X

You can also reach out to him via e-mail: rakesh@code2care.org

Copyright © Code2care 2023 | Privacy Policy | About Us | Contact Us | Sitemap