Installing Oh-My-Zsh on Debian-Based Systems
Zsh (Z shell) defines itself as a “Shell with lots of features”. Indeed, it’s a tool to enhance shell’s capabilities. Indispensable for those working in Unix-based systems. To make Zsh simpler, there is Oh-My-Zsh, which is a framework for managing the Zsh configuration with the concept of themes. The goal of this post it to get you all set with Oh-My-Zsh on your Debian Linux system.
To start, let’s install Zsh:
$ sudo apt-get install zsh
$ zsh --version
You may see a version equal or greater than 5.1.1. The next step is the installation of Oh-My-Zsh:
$ sh -c "$(wget https://raw.github.com/robbyrussell/oh-my-zsh/master/tools/install.sh -O -)"
When the installation script finishes the command prompt is probably different from before. It means Oh-My-Zsh was successfully installed. If the prompt looks too minimalistic for you, don’t panic. Oh-My-Zsh accepts themes and this is just the default one: robbyrussell. To change it, go to the home folder, edit the hidden file .zshrc
, and change the variable ZSH_THEME
to bureau, which is my favorite theme:
$ cd ~
$ vim .zshrc
...
ZSH_THEME="bureau"
...
$ source .zshrc
For a complete list of themes, checkout the theme catalog. Make sure you have some time to spare because trying new themes is addictive.
Oh-My-Zsh won’t start by default. To activate it we have to type $ zsh
every time we open a new terminal. If you are convinced that Oh-My-Zsh is your thing, you can make sure it is always available. On the terminal window, select Edit > Profile Preferences in the menu. In the new window, go to the tab Title and Command, select the field Run a custom command instead of my shell and type zsh
in the Custom command field. Restart the terminal to see it in action.
What I love about Oh-My-Zsh is its integration with Git, the smart auto-complete, and all the information it shows in a single prompt. The theme bureau shows:
-
my location, so I don’t have to type
pwd
all the time -
the time, which is useful to know how long the last operation took by comparing the time of the subsequent prompt
-
the current branch and its state with a rich set of colorful symbols, when I’m in a Git repository.
Please, comment below your questions, thoughts and which theme suits you best.