MacOS – Change default shell from bash to zsh

command linedefaultsmacoszsh

I've tried to switch my default shell to zsh, using chsh:

chsh -s /bin/zsh

and:

chsh -s `which zsh` 

Both commands ended with:

Changing shell for adamatan.
Password for adamatan:
chsh: Operation is not supported by the directory node.  Operation is not supported by the directory node.
chsh: no changes made

How can I change my default shell in OSX Lion?

Best Answer

macOS Catalina and later (10.15+)

Apple replaced bash with zsh as the default shell. See article.

So no need to do anything.

You can verify the default shell by typing echo $0 in the terminal.

macOS Mojave and earlier (10.14-)

See Apple Support page, Use zsh as the default shell on your Mac

Surprisingly this doesn't work with the command line tools as one would expect. This needs to be done with the System Preferences app.

The following steps work with multiple versions of Mac OS X through at least 10.11 (El Capitan).

  1. Open up the "User's & Groups" panel in the "System Preferences" app.
  2. Make sure the panel is unlocked (bottom left)
  3. Control click on your username (top left) and select "Advanced Options..." This is only available if you are an Administrator.

enter image description here 4. Change the "Login shell" value to /bin/zsh.

enter image description here 5. Press the OK button to save your change.

You should be careful not to change any other fields, as per the warning at the top of this dialog. If you have any doubts, then press the "Cancel" button and try again.