Apple - Change default shell from bash to zsh

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.


If you're joined to an Open Directory sever, or any other directory server, the default shell will have to be specified there.

In particular, if you're joined to a Microsoft Active Directory, you can use the Directory Utility to change the default shell, as described here.

You can always just add zsh to your bash profile so it gets called on logon as a workaround.


Just use command chsh -u username to edit your profile