Configuring the ZSH Shell on Pop!_OS

A while back I switched to Linux and fell in love with the ZSH shell over the default Bash shell. Paired with Oh My ZSH the ZSH shell absolutely rocks. These are the steps for installing and configuring the ZSH shell. I'm using Pop!_OS but these steps should work on any Ubuntu or Debian based distribution.

Installing ZSH

First up, you'll probably need to install the ZSH shell and start it up. Most of the Linux distributions I've used don't have it installed by default.

sudo apt update && sudo apt install zsh
zsh

At this point you should be prompted to configure the ZSH shell as a new user. You should see something like this:

This is the Z Shell configuration function for new users,
zsh-newuser-install.
You are seeing this message because you have no zsh startup files
(the files .zshenv, .zprofile, .zshrc, .zlogin in the directory
~).  This function can help you with a few settings that should
make your use of the shell easier.

You can:

(q)  Quit and do nothing.  The function will be run again next time.

(0)  Exit, creating the file ~/.zshrc containing just a comment.
     That will prevent this function being run again.

(1)  Continue to the main menu.

(2)  Populate your ~/.zshrc with the configuration recommended
     by the system administrator and exit (you will need to edit
     the file by hand, if so desired).

--- Type one of the keys in parentheses ---

For simplicity, I always just use option 2 to use the recommended configuration.

Install Oh My ZSH

Now, you are ready to install Oh My ZSH and configure it in the ZSH shell. Make sure you are in the ZSH shell when you run this next command.

sh -c "$(curl -fsSL https://raw.github.com/ohmyzsh/ohmyzsh/master/tools/install.sh)"

The above command can be found on the Oh My ZSH site, but I included it here for simplicity. When the install script finishes running, it will ask if you want to change your default shell to ZSH. Just answer Y and relaunch your terminal and you are all set.

Oh My ZSH has a number available themes but I tend to stick with the default robbyrussell theme.