Take the 2-minute tour ×
Ask Different is a question and answer site for power users of Apple hardware and software. It's 100% free, no registration required.

How can I change Terminal.app'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
1  
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
add comment

3 Answers

up vote 12 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
2  
You can always control click instead of right click, which is the traditional way to access context menus. –  Antal S-Z Feb 9 '11 at 18:26
    
@Antal S-Z thanks for this to know –  shpokas Feb 9 '11 at 20:45
2  
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
show 1 more comment

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
add comment

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
add comment

Your Answer

 
discard

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.