How do I set my shell in Mac OS X?

Use the chsh utility like so:

chsh -s bash

Apple has changed chsh a bit on Mac OS X compared to the chsh you'd see in Linux for example. You can read up on theirs in the chsh Mac OS X Man Page.


Note that you will only be allowed to change to a shell listed in /etc/shells. This is normally fine, but it means that if you want to install Bash 4 (from Homebrew, MacPorts, or compiling your own), you need to add a line to /etc/shells. (I ran into this a few weeks ago, and figured it might help others to know...)

Edit: Tim Smith points out that you can get around the /etc/shells limitation if you run chsh as root via sudo. E.g. sudo chsh -s /usr/local/bin/my_shell $USER will work, even if my_shell is not listed in /etc/shells. I prefer to edit /etc/shells, but in the end, it's one use of sudo either way since you can't edit /etc/shells as a regular user. So perhaps six of one, half dozen of the other.


To do this using the Mac OS X GUI:

  1. Open “System Preferences.”
  2. Open the “Accounts”/“Users & Groups” preference pane and unlock the preference pane if applicable.
  3. On the user you wish to change the shell, control+click or right click on the user and choose “Advanced Options…”
  4. Where it says “Login Shell:” change this to the shell you wish to use.

Of note, this location is where you can change your home directory, UUID, User ID, Group ID, and short name if you're uncomfortable with the Terminal. There is a similar question located here as well.