## Working with Terminal

I’ve just switched from Bash to ZSH because of oh-my-ZSH. I think this is just the right time to explain the words Shell, command line, Terminal, Bash and ZSH.

Terminal is an terminal emulator, sometimes also called a “terminal window”. I work in a window environment (MATE) and I want to use command line tools within that environment. So I need a “terminal window”:

Terminal Window with ZSH and Bash

ZSH and Bash are both Unix shells. A shell is a command line interpreter that provides a text-based user interface.

Command line describes the textual way you interact with the computer. When you’re in a graphical user interface situation you interact by manipulating windows with your keyboard/mouse. When you’re in a text-based user interface situation, you interact by entering commands in a line (hence command line).

## Oh-my-ZSH Installation

Oh-my-ZSH is a plugin for ZSH. I think this plugin is very good and makes a big difference to Bash. So when you look at the screenshots below, keep in mind that this is not a “plain vanilla” zsh.

• Install “Oh-my-ZSH
• Install “powerline fonts” and change your Terminal font to one of them
• Change your Terminal theme to “agnoster” by setting ZSH_THEME="agnoster" in ~/.zshrc
• Set your terminal theme to “Solarized Dark” (description)
• Make ZSH your default Shell in MATE Terminal (description) and eventually sudo chsh -s /usr/bin/zsh username

## ZSH and Bash

Here are some differences. On the left side is zsh, on the right is bash:

I like the time command of bash more, but that’s it. All other interactions are either almost the same or better in zsh. I especially like that zsh doesn’t print everything again when you autocomplete with tab. And it also autocompletes when you make an capitalization error.

I also begin to like the Git-specific prompt indicators: