.profile lub .bash_profile

14

Jestem zdezorientowany, gdzie ustawić zmienne środowiskowe?

W .profile czy w .bash_profile?

Używam zarówno Mac OSX, jak i Ubuntu.

Mylić co do tego, którego tu używam.

użytkownik27449
źródło

Odpowiedzi:

21

przeczytaj 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.

ładują się ~/.profiletakże inne powłoki (zsh, tcsh) .. więc włożę coś do środowiska ~/.profile.

Aktualizacja związana z Mac OSX (dzięki @Matt B) :

w przypadku programów GUI przeczytaj http://developer.apple.com/library/mac/#qa/qa2001/qa1067.html i ~/.MacOSX/environment.plistostrożnie edytuj .

akira
źródło
1
Ponadto ~ / .profile jest odczytywany przed uruchomieniem menedżera okien, więc zmienne środowiskowe, które mają być widoczne przez menedżera okien lub uruchamiane przez niego aplikacje, należy umieścić w ~ / .profile.
garyjohn
@garyjohn: Czy tak jest w przypadku Ubuntu lub Mac OS?
zneak
@zneak: Jestem dość pewny co do Ubuntu, a mniej o Mac OS X, ale w tej chwili nie mam dostępu do żadnego z nich, aby je zweryfikować.
garyjohn
1
@zneak: Uwaga @ garyjohn nie dotyczy Mac OS X. Aby zmienić zmienne środowiskowe dla programów GUI, musisz wprowadzić swoje ustawienia ~/.MacOSX/environment.plist. Zobacz więcej informacji tutaj: astro.washington.edu/users/rowen/AquaEnvVar.html .
Matt B.
4

Jeśli używasz bash, w ~/.bash_profile. Jeśli używasz innych powłok, w~/.profile

Steven
źródło