Blog

From BASH to ZSH

Mon Oct 14 2019

Infra
Linux
UNIX
macOS
Train

Just upgraded macOS from Mojave to Catalina and when I popped my terminal app (iTerm2), the following text greeted me.

The default interactive shell is now zsh.
To update your account to use zsh, please run `chsh -s /bin/zsh`.
For more details, please visit https://support.apple.com/kb/HT208050.

Apple ditched BASH because they couldn't get its updates since 2007. From that version BASH had licensing requirements Apple couldn't fulfil, so they decided to move to ZSH.

Migration to the new shell

I had set up a couple of aliases, written a few shell scripts, modified a few routes within the BASH config file, so I was worried something will not work because of the changes. Luckily both BASH and ZSH is based on the Bourne shell, so all of my previous config could be saved without any compatibility issues. So basically I just changed the default shell and dumped all the config into the new file.

$ chsh -s /bin/zsh
$ cat ~/.bash_profile >> ~/.zshrc

”Oh my ZSH”

A community driven framework to manage configs? Count me in! The best part so far about the switch, is the tons of available maintained themes and plugins you can install with little effort.