I recently switched to zsh on my Terminal.app on my OS X machine successfully. The version number of zsh is 4.3.11.
-
2FYI, zsh version 5.0.5 comes with Yosemite 10.10.2. – Basil Bourque Apr 27 '15 at 23:10
-
13Run `upgrade_oh_my_zsh` in the terminal – backslashN Jul 21 '20 at 06:25
-
24Run `omz update` if ur partying like it's 2020... – Ulf Gjerdingen Oct 01 '20 at 09:16
-
1`oh-my-zsh != zsh`... – ken Oct 14 '22 at 18:18
7 Answers

- 11,275
- 2
- 15
- 18
-
74While this is not the actual answer to the OP, this is the answer to the question I _meant_ to be searching for. Solved my problem. – dangoldnj Apr 05 '18 at 17:07
-
5`upgrade_oh_my_zsh` is deprecated, but it worked for me. and then I executed `omz update` which is the latest command to update. Hope this helps someone. – Srinivas Reddy Thatiparthy Nov 15 '21 at 06:40
If you have Homebrew installed, you can do this.
# check the zsh info
brew info zsh
# install zsh
brew install --without-etcdir zsh
# add shell path
sudo vim /etc/shells
# add the following line into the very end of the file(/etc/shells)
/usr/local/bin/zsh
# change default shell
chsh -s /usr/local/bin/zsh
-
Until recently, I'd Homebrew but I choose to uninstall it on purpose since it was messing with gem installations and it was really frustrating to find a workaround. Thanks anyway. – Can Jul 15 '13 at 12:55
-
1@CanSürmeli Homebrew shouldn't mess with gem installations—I use both it and Rubygems all the time. Homebrew's very useful and it's worth fixing whatever problems you're having with it. That said, I don't know that I want to use it to replace Apple's zsh... – Marnen Laibow-Koser Dec 03 '13 at 16:00
-
The directions here aren't replacing Apple's old zsh, but showing you how to make the new version available. The old one will still be available to use if necessary. – Jim Feb 01 '14 at 16:54
-
5
-
@MikeLi and @PhillipMöhler what is the purpose of skipping `/etc/zshrc`? It seems like a strange thing to skip to me. – iconoclast Jun 11 '18 at 15:33
-
Be aware that you may need to install some softwares again (e.g. rbenv) after doing this. – elquimista Oct 26 '18 at 08:24
-
I'd also love to know why this `brew install zsh` should be done `--without-etcdir` – Devin Rhode Nov 26 '18 at 04:43
-
3I'm guessing the --without-etcdir has something to do with manually installing this... (editing /etc/shells to add the path to the brew installed zsh) - anyway, this option is no longer available. – Devin Rhode Nov 26 '18 at 04:47
-
that option no longer seems to be necessary. My dotfiles repo's .zshrc file with zgen is working just fine following these commands. Although the option is no longer available, I think it's ok to attempt to use the option. It just ignores it. – Devin Rhode Nov 26 '18 at 04:54
-
7The option is no longer ignored, but throw an error and halt installation. The CLI flag semantics appear to have been reversed. Now you have the option to `--enable-etcdir` See: https://github.com/Homebrew/homebrew-core/blob/master/Formula/zsh.rb#L43 – Jamie Folsom Feb 06 '19 at 00:25
-
Did it exactly except I ran this instead: "brew install zsh" and nothing happens. "zsh --version" still gives 5.3 (default Mojave zsh version). Edit: nevermind a relaunch of the terminal window fixed it. If anyone wants to skip the trouble, just update to the latest Catalina, that comes with the latest 5.7.1 zsh. – CyberMew Nov 28 '19 at 06:21
-
I needed to use `brew reinstall zsh` instead as my mac has a zsh installed by default. Then I used zsh in the `/opt/homebrew/bin/zsh` instead of `/usr/local/bin/zsh`. And that worked as expected. – hakobpogh Aug 10 '21 at 08:03
If you're not using Homebrew, this is what I just did on MAC OS X Lion (10.7.5):
Get the latest version of the ZSH sourcecode
Untar the download into its own directory then install:
./configure && make && make test && sudo make install
This installs the the zsh binary at
/usr/local/bin/zsh
.You can now use the shell by loading up a new terminal and executing the binary directly, but you'll want to make it your default shell...
To make it your default shell you must first edit
/etc/shells
and add the new path. Then you can either runchsh -s /usr/local/bin/zsh
or go to System Preferences > Users & Groups > right click your user > Advanced Options... > and then change "Login shell".Load up a terminal and check you're now in the correct version with
echo $ZSH_VERSION
. (I wasn't at first, and it took me a while to figure out I'd configured iTerm to use a specific shell instead of the system default).

- 9,310
- 8
- 68
- 82
As far as I'm aware, you've got three options to install zsh on Mac OS X:
- Pre-built binary. The only one I know of is the one that ships with OS X; this is probably what you're running now.
- Use a package system (Ports, Homebrew).
- Install from source. Last time I did this it wasn't too difficult (
./configure
,make
,make install
).

- 68,704
- 18
- 117
- 136
A simple script or execute following commands in terminal
# 1. download (currently the latest version is 5.8) and extract
wget https://sourceforge.net/projects/zsh/files/latest/download -O ./zsh-latest.tar.xz
mkdir zsh-latest
tar -xf zsh-latest.tar.xz -C zsh-latest --strip-components=1
cd zsh-latest
# 2. config, build, install
./configure
make -j4
sudo make install
which zsh
PS: If you fail to build, it probably due to missing necessary libraries. Just install libraries as the error message suggests. E.g, I didn't have ncurses:
sudo apt install ncurses-devel # for Ubuntu
sudo yum install ncurses-devel # for CentOS/Redhat

- 115
- 6
omz update
gave me following error:
xcrun: error: invalid active developer path (/Library/Developer/CommandLineTools), missing xcrun at: /Library/Developer/CommandLineTools/usr/bin/xcrun
This is an issue with git
, where after upgrading to Mac OS Ventura (13.0.1). git
command gave me above error.
Solution:
- Download and install the 'Command Line Tools' package to fix 'git'
xcode-select --install
This will pop a dialogue box. Select "Install". More details here: https://apple.stackexchange.com/a/254381
omz update
worked successfully after this for me

- 1,241
- 14
- 25
I just switched the main shell to zsh. It suppresses the warnings and it isn't too complicated.

- 1,008
- 7
- 22