.profile or .bash_profile

Solution 1:

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.

Solution 2:

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