leia o link :
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.
outros shells carregam ~/.profile
(zsh, tcsh) .. então, eu colocaria o ambiente em ~/.profile
.
atualização relacionada ao mac osx (obrigado @Matt B) :
para programas gui leia o link e edite ~/.MacOSX/environment.plist
cuidadosamente.