Take the 2-minute tour ×
Super User is a question and answer site for computer enthusiasts and power users. It's 100% free, no registration required.

I'm confused, where do I set environmental variables?

In .profile or in .bash_profile?

I am using both mac osx and ubuntu.

Confused as to which one I use here.

share|improve this question
add comment

2 Answers

up vote 12 down vote accepted

read http://www.gnu.org/software/bash/manual/bashref.html#Bash-Startup-Files:

 When Bash is invoked as an interactive login shell, or as a 
 non-interactive shell with the --login option, it first reads 
 and executes commands from the file /etc/profile, if that file
 exists. After reading that file, it looks for ~/.bash_profile, 
 ~/.bash_login, and ~/.profile, in that order, and reads and executes
 commands from the first one that exists and is readable. The 
 --noprofile option may be used when the shell is started to inhibit
 this behavior.

other shells load ~/.profile as well (zsh, tcsh) .. so, i would put environment stuff into ~/.profile.

mac osx related update (thanks @Matt B):

for gui programs read http://developer.apple.com/library/mac/#qa/qa2001/qa1067.html and edit ~/.MacOSX/environment.plist carefully.

share|improve this answer
1  
In addition, ~/.profile is read before your window manager starts, so environment variables that you want to be seen by your window manager or the applications it launches should be put in your ~/.profile. –  garyjohn Aug 2 '10 at 18:39
    
@garyjohn: Is that the case for Ubuntu or Mac OS? –  zneak Aug 2 '10 at 19:13
    
@zneak: I'm reasonably sure about Ubuntu, less so about Mac OS X, but I don't have access to either one to verify at the moment. –  garyjohn Aug 4 '10 at 8:03
1  
@zneak: @garyjohn's remark does not apply to Mac OS X. To change environment variables for GUI programs, you must place your settings into ~/.MacOSX/environment.plist. See more information here: astro.washington.edu/users/rowen/AquaEnvVar.html. –  Matt B. Sep 27 '10 at 1:14
add comment

If you use bash, in ~/.bash_profile. If you use other shells, in ~/.profile

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.