I have noticed two ways to the change default shell in Mac OS X.

  • Open up Terminal preference and set "Shells open with" to "Command". Then type the path to the shell program such as /usr/local/bin/zsh.
  • Another way is to turn on System Preferences and pick "Accounts". Unlock the preference so that you can make a change. Find your username under which you want to change the default shell. Then right click it to go to "Advanced Options...". Then I can find the setting for "Login shell".

What's the difference between the two ways I mentioned above? Which could be good for what purpose?


The terminal preference only affects the terminal the other way affects all processes that use a shell (e.g. if you ssh into the machine only the latter will have changed the shell)

Note that applications launched from the dock/finder etc are not affected by either.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.