As a software engineer I use the command line every day. It's very important to me that the tool I stare at for hours looks nice and that I have a set up that saves me time and energy. I use the macOS default Terminal because that's what I used when I started learning to code and I'm loath to change (soz). The macOS Terminal is a ZSH terminal shell (aka Z shell) which runs on a Unix-like operating system (macOS, Linux, BSD, Windows/WSL2). This post will go through how I set mine up on my personal MacBook Air (2015) running Big Sur, your experience on a different operating system may differ but luckily Oh My Zsh is a very popular framework so there will probably be people on Stack Overflow/Reddit who have encountered the same issues!
Oh My Zsh is opensource framework for terminal configuration that has loads of themes and plugins.
You can download Oh My Zsh from their website via
wget by copying and pasting the command. Make sure you're in your system's root folder.
.zshrc file contains the script that is run when you start a new zsh shell (
rc stands for "run commands"). So if you make changes to this file you have to start a new shell to see them take effect.
You can customise your terminal by running
open ~/.zshrc to open the
.zshrc file in your system's root folder (the
~ tilde symbol means home directory).
Note: if you're on macOS Catalina or above you may get the error
zsh: permission denied: - you will need to configure permissions to open the file with
chmod +x ~/.zshrc.
Choose your theme from the Oh My Zsh Themes and change the
ZSH_THEME="" line in the
I use the agnoster theme so I have
ZSH_THEME="agnoster" in my
When you run a new shell you should see it has a new theme - yay! But wait...what are all those questions marks? You need to download the fonts to see the cool symbols!
Follow the instructions on the Powerline fonts README to download the fonts needed for your new theme.
Preferences > Profiles > Font to change the font for your Terminal to any of the fonts that have Powerline in the name. I use
Meslo LG L DZ Regular for Powerline. You can either change the Basic profile or make a new profile and make that your default profile.
Now the question marks should be replaced with cool symbols. The purple arrow indicates what directory you are in, and the green arrow indicates what branch you are on if you are in a git initiliased directory.
You can play around with the colours in the Terminal Profiles yourself but I would suggest going with a pre-made theme because they will have considered the constrast and readability of the colours in different scenarios. Here's a list of cool MacOS Terminal Themes.
I use the VS Code Dark Plus theme which looks like this:
You can download the
.terminal file and go to your Terminal
Preferences > Profiles and import it as a new profile. Then select
Default to make it your default theme.
Now it looks beautiful! 💄 💅
There's so many other things you can do with Oh My Zsh. Have a look at the plugins it comes bundled with. I use the aliases that come with the Git plugin every day. An alias is a shortcut for a command that you write instead of the command and it runs the command.
The Git aliases I use the most are:
|ggp||git push origin $(current_branch)|
|gcb||git checkout -b|
You can add your own custom aliases by adding them to your
The bottom of the file has the syntax for aliases in comments:
# Example aliases # alias zshconfig="mate ~/.zshrc"
I have the command for editing my
.zshrc file under the alias
edit. I prefer editing the file in VS Code* so I have this in my file:
alias edit="code ~/.zshrc"
*The instructions to set up launching files in VS Code from the command line can be found here for macOS.
Customising the Terminal is a great place to start personalising your tooling, apparently you can do even cooler things with iTerm2 and you can customise that in much the same way as I've outlined in this tutorial.