When comparing zsh vs iTerm2, the Slant community recommends iTerm2 for most people. In the question“What are the best power user tools for macOS?” iTerm2 is ranked 1st while zsh is ranked 50th. The most important reason people chose iTerm2 is:
iTerm has autocomplete features built in. It remembers your past commands and when you are writing something on the terminal, simply pressing `Control-;` it will show you a drop down menu of suggestions from which to choose.
Ranked in these QuestionsQuestion Ranking
Pro Interactive autocompletion
When you start typing a command, you can press the tab key and it will complete the command you started typing. If there are multiple potential commands, you can choose which one to run by simply pressing tab again. Case-insensitive by default, too.
Pro Autocomplete for options
Zsh intelligently determines if you are trying to complete a file path or an option, and pressing tab after typing
- will reliably bring up a list of options.
Pro Powerful community-driven tools via oh-my-zsh
Oh-my-zsh is a community-driven framework, which helps users with their zsh configuration and plugins. 400 plugins, 200+ themes and auto-updates to always be up to date.
Pro Good bash compatibility
Things you've learned using bash will largely apply to zsh. Scripts written in bash will run with little to no modification.
Pro Shared histories
If you spend a lot of time in the terminal, most likely you will have several terminal windows open. Zsh has great support for command line histories. The history is unique and shared through all the different instances.
Pro Recursive globbing
ls **/*.log for example is supported by ZSH.
Pro Pipe output to a temporary file:
Some programs don't support loading from stdin, but ZSH can store outputs to a temporary file, example:
unzip =(curl http://example.com/someZipFile.zip)
Pro Smart escaping
Zsh can determine the context of the command you're typing in and determine if it should escape characters if you're typing in a URI.
Pro Great install procedure
Zsh will take you through a procedure which is roughly 30 minutes in length before during install. Through this procedure it asks you to set different options and customize the shell the way you want it to. Most of these settings are also found in other shells, but to customize them you have to go dig configuration files while zsh allows you to do it in the beginning.
Pro Faster spelling correction
Zsh' s correct (or correctall) is vastly superior to Bash's attempt at spelling correction.
Pro Autocomplete is built-in
iTerm has autocomplete features built in. It remembers your past commands and when you are writing something on the terminal, simply pressing
Control-; it will show you a drop down menu of suggestions from which to choose.
Pro Extremely customizable
Other than being able to customize the various shortcuts, iTerm2 also lets you customize the colorscheme, font, transparency, etc.
Pro Fine tuning for fonts
It's possible to choose a font and adjust vertical and horizontal spacing.
Pro Any key can be mapped to any function
Using the Preferences Menu you can set up hotkeys to map virtually any action you can think of to a single key or a combination of them. This is extremely helpful as it allows you to use shortcuts to edit commands you are typing in the terminal and while most terminal emulators have shortcuts for this sort of thing, few of them let you define your own.
Pro Complete out of the box
Unlike most terminal emulators, iTerm2 comes with a pretty complete set of features. It has built-in search, autocompletion, tabbed navigation, Growl support and even a built-in clipboard manager for various API keys and such.
Pro Can immediately open files inside a text editor
You can Ctrl+Click on a file path to open said file in a text editor.
Pro Supports mouse actions
Has support for mouse actions like clicking, dragging, selecting, etc.
Pro Active maintainers
Issues resolved fast by quality contributors.
Pro Works well with powerline fonts
Pro Split panes
Easy to split panes to either horizontal or vertical sections. Makes it easy to observe multiple console windows.
Pro Can be configured as a drop-down terminal
Can be configured to work as a drop down terminal like Quake.
Pro Supported by many applications as a terminal app selection
If an application has terminal integration, there is high probability it allows iTerm2 to be selected.
Pro Completely free and open source
iTerm2 is completely free and open source. It's released under the GPLv2 license.
Pro Works well with tmux
The great mouse and clipboard support that are built-in go really well with tmux.
Pro Cmd+D to split plane vertically
Very handy to use multi-tab.
Pro You only need to type in commands once
iTerm2 can store up to 4M of history of commands you already used. This, coupled with the built-in search features makes it possible to type a command only once and then search for it through the history for subsequent uses.
Pro Cmd+Shift+I to Input all
Wanna SSH your server from multiple tabs, here you go.
Pro Works perfect with Oh My Zsh
It's a perfect base to add Oh My Zsh on top of it and enjoy a lot of themes and a really pleasant look and feel.
Con Defaults are unfriendly for a long-time bash user
Expect to find a configuration you like (or use the configuration utility) to set reasonable preferences. Default zsh interaction is different enough to make you stutter through what used to be familiar workflows.
Con Requires a lot of configuration to be used fully
Zsh requires a lot of tinkering with configuration files and downloading plugins in order to be able to do tasks which other shells may be able to do out of the box.
Con Not fully compatible with bash
There is a small chance you may have a bash script that doesn't work in zsh, although this is very very rare and most developers will never run into any issues.
Con Not quite as fast as Alacritty or Kitty
Comparing these 3 terminals on the same machine/config, iTerm stands out as the slowest of the bunch. The difference may not be noticeable to all users.
Con Doesn't support Snow Leopard 10.6.8
Some people still use SL.