A Guide to Setting Up Zsh: Improving Your Terminal Experience

James Jeremy Foong - Oct 28 - - Dev Community

Hello. This is a guide I've put together mainly as a reference for myself when setting up a new Ubuntu device. I often forget the exact steps, so having this written down helps me replicate my preferred terminal setup. I'm sharing it in case others find it useful too. This guide covers setting up Zsh with some add-ons that I find helpful.

What We're Setting Up

  1. Zsh: An improved version of the standard command-line interface.
  2. Oh My Zsh: A collection of helpful features for Zsh.
  3. Powerlevel10k: A theme that makes your command line look... nice.
  4. Autosuggestions: A feature that suggests commands as you type.

Step 1: Install Zsh

First, we need to install Zsh. The process is usually straightforward, but it might vary depending on your operating system.

For Mac users:

If you're using a recent version of macOS, Zsh is already installed. You can move on to Step 2.

For Ubuntu or other Debian-based Linux:

Open your terminal and type these commands:

sudo apt update
sudo apt install zsh
Enter fullscreen mode Exit fullscreen mode

You'll need to enter your password and confirm the installation.

For other operating systems:

You might need to look up specific instructions for your system. Try searching for "How to install Zsh on [Your Operating System]".

Step 2: Install Oh My Zsh

Now that we have Zsh, let's add Oh My Zsh. Copy and paste this command into your terminal:

sh -c "$(curl -fsSL https://raw.githubusercontent.com/ohmyzsh/ohmyzsh/master/tools/install.sh)"
Enter fullscreen mode Exit fullscreen mode

This command downloads and runs the Oh My Zsh installer. Just follow any prompts that appear.

Step 3: Install the Powerlevel10k Theme

Powerlevel10k will change how your terminal looks. Here's how to set it up:

  1. Use this command to download Powerlevel10k:
git clone --depth=1 https://github.com/romkatv/powerlevel10k.git ${ZSH_CUSTOM:-$HOME/.oh-my-zsh/custom}/themes/powerlevel10k
Enter fullscreen mode Exit fullscreen mode
  1. We need to edit a file called .zshrc. Open it with this command:
nano ~/.zshrc
Enter fullscreen mode Exit fullscreen mode
  1. Find the line that starts with ZSH_THEME. Change it to:
ZSH_THEME="powerlevel10k/powerlevel10k"
Enter fullscreen mode Exit fullscreen mode
  1. To save and exit, press Ctrl+X, then Y, then Enter.

Step 4: Add Autosuggestions

Autosuggestions can help you type commands faster. Here's how to add this feature:

  1. Run this command to download the autosuggestions plugin:
git clone https://github.com/zsh-users/zsh-autosuggestions ${ZSH_CUSTOM:-~/.oh-my-zsh/custom}/plugins/zsh-autosuggestions
Enter fullscreen mode Exit fullscreen mode
  1. We need to edit the .zshrc file again:
nano ~/.zshrc
Enter fullscreen mode Exit fullscreen mode
  1. Find the line that starts with plugins=. Add zsh-autosuggestions to the list. It should look something like this:
plugins=(git zsh-autosuggestions)
Enter fullscreen mode Exit fullscreen mode
  1. Save and exit (Ctrl+X, Y, Enter).

Step 5: Set Up Powerlevel10k

Now we'll customize how your terminal looks.

  1. Close your terminal completely and open a new one.

  2. You should see a setup wizard for Powerlevel10k. If you don't, type p10k configure and press Enter.

  3. Follow the prompts to choose how you want your terminal to look. You can always change this later by running p10k configure again.

Step 6: Using Your New Setup

That's it. You've set up a more advanced terminal. Here are some things to note:

  • To use autosuggestions, start typing a command you've used before. You should see a faded suggestion appear. Press the right arrow key to accept it.
  • You can explore more Oh My Zsh plugins on the official wiki.
  • If something doesn't seem right, try closing your terminal and opening a new one.

It's okay if you don't understand everything right away. You'll get more comfortable with it as you use it.

Example .zshrc File

After setting everything up, your .zshrc file will contain all the configurations we've discussed. I've put my personal .zshrc file on GitHub if you want to look at it:

[Link to your GitHub repository with the .zshrc file]

Here's a brief explanation of what you might see in this file:

  1. Oh My Zsh Path:
   export ZSH="$HOME/.oh-my-zsh"
Enter fullscreen mode Exit fullscreen mode
  1. Theme Setting:
   ZSH_THEME="powerlevel10k/powerlevel10k"
Enter fullscreen mode Exit fullscreen mode
  1. Plugins:
   plugins=(git zsh-autosuggestions)
Enter fullscreen mode Exit fullscreen mode
  1. Oh My Zsh Source:
   source $ZSH/oh-my-zsh.sh
Enter fullscreen mode Exit fullscreen mode
  1. Powerlevel10k Customizations: Lines starting with POWERLEVEL9K_ or POWERLEVEL10K_.

  2. Custom Aliases: Lines starting with alias.

You can look at my .zshrc file here for ideas, but remember that your file should be set up for your own needs and preferences.

If you make changes to your .zshrc file, you'll need to either restart your terminal or run source ~/.zshrc for the changes to take effect.

Conclusion

Now we've set up a more advanced terminal environment. With Zsh, Oh My Zsh, Powerlevel10k, and autosuggestions. Feel free to experiment with your configuration as you become more comfortable with it. I hope you find this setup helpful for your work.

. .