.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