Ask Different is a question and answer site for power users of Apple hardware and software. Join them; it only takes a minute:

Sign up
Here's how it works:
  1. Anybody can ask a question
  2. Anybody can answer
  3. The best answers are voted up and rise to the top

How can I change's default shell to BASH?

For some reason, my friend's Mac (10.6.6) defaults to using TCSH instead of BASH. The obvious remedy is to choose /bin/bash as the command to open shells with (as below), but then it fails to load .bashrc and .bash_profile (even if I give a --source or --rcfile parameter). /bin/bash

How can I switch it to use bash the right way?

share|improve this question
Re "For some reason…": The default shell used to be tcsh. Now it's bash, but existing user accounts are not changed when upgrading to a newer Mac OS X. Users with older accounts will need to switch shells themselves. – Chris Page Aug 14 '11 at 1:07
up vote 13 down vote accepted

Open System Preferences, select user and right click on its name. "Advanced options..." will appear. Change shell there. If you're die hard Apple user, you probably will have to enable right click first. Depending on your computer model, it can be done under Trackpad or Mouse Preferences.

share|improve this answer
This is most likely the best way to do it. Easy, permanent, and doesn't conflict with anything else. – Itai Ferber Feb 9 '11 at 2:54
Great. I didn't know about this. I'm coming from unix word where chsh is the way to go, but I would surely recommend using built-in Mac OS X tool instead. – Peter Štibraný Feb 9 '11 at 7:27
You can always control click instead of right click, which is the traditional way to access context menus. – Antal Spector-Zabusky Feb 9 '11 at 18:26
@Antal S-Z thanks for this to know – shpokas Feb 9 '11 at 20:45
I had to "Click the lock to make changes" in order to coerce the context menu to reveal itself. This was on Lion. – Patrick Linskey Dec 29 '11 at 19:24

By using chsh from Terminal. It changes default shell for user. Alternatively you may setup Terminal to use /bin/bash -l ... this will cause BASH to behave as login shell, i.e. it will read .bash_profile.

share|improve this answer
No go for chsh; it still gave me tcsh as the default shell. However, /bin/bash -l does work. I'd like to hear other opinions before I accept it as the right answer, thought. – Merchako Feb 8 '11 at 17:08

As of Mac OS X Lion 10.7, Terminal will create login shells even if you choose a custom shell in Startup preferences. So your initial problem should no longer be an issue on Lion. (Although I recommend setting the shell via System Preferences to ensure it's set for the user account and not just for the Terminal application.)

share|improve this answer

Your Answer


By posting your answer, you agree to the privacy policy and terms of service.

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