I installed zsh on my Mac. and now i want to make it the default shell instead of Bash. But I seem to be running into the following error:
$ echo $SHELL
/bin/bash
$ chsh -s /usr/bin/zsh
Changing shell for harshamv.
Password for harshamv:
chsh: /usr/bin/zsh: non-standard shell
The correct answer should've addressed your problem:
chsh: /usr/bin/zsh: non-standard shell
The reason this is the case is because chsh
will only accept shells that are defined in the file /etc/shells, as you can see by reading the manual for chsh
:
chsh will accept the full pathname of any executable file on the system. However, it will issue a warning if the shell is not listed in the /etc/shells file.
To solve this problem and make zsh the default shell, you should thus:
$ sudo echo "$(which zsh)" >> /etc/shells
$ chsh -s $(which zsh)
Obviously, I assume that zsh
is in your path here. This solution will also work if you, for example, choose to install the latest zsh
with brew install zsh
.
EDIT (thanks for ThisIsFlorianK for the comment)