Jaka jest różnica między profilami .profile i .bash_profile i kiedy skonfigurujesz który? (Mac) [duplikat]

23

Możliwa duplikat:
Różnica między .bashrc i .bash_profile

Jaka jest różnica między .profilei .bash_profile, a kiedy konfigurujesz, które?

Czyli jeśli skonfiguruję .bash_profile, czy nadal muszę konfigurować .profile?

Imran
źródło

Odpowiedzi:

12

Zakładając, że bashjest to twoja domyślna powłoka, różnice opisano w bashman page ( man bash):

   When bash is invoked as an interactive login shell, or as  a  non-interac-
   tive  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.

Więcej szczegółów znajduje się na stronie man, która obejmuje tryb kompatybilności z powłoką POSIX, czyli skąd .profilepochodzi. Przeczytaj całą sekcję strony podręcznika dla wszystkich szczegółów.


źródło
w Ubuntu 18.04 otwarcie nowego okna terminala nie wywołuje .profiletylko .bashrc:(
CpILL
5

Jeśli skonfigurujesz .bash_profile, nie będziesz musiał również konfigurować .profile.

Lubię przechowywać własne aliasy i polecenia .profile, aby w razie popsuć coś wiem, że zawsze mogę je usunąć .profilebez wpływu na cały system lub inne modyfikujące aplikacje .bash_profile(takie jak MacPorts).

Aby użyć .profile, może być konieczne włączenie linię source ~/.profilew swoim .bash_profiletak, że .profileplik jest czytany (patrz odpowiedź Ned Deily za).

speedofmac
źródło
3

.profile jest wykonywany przez bash, gdy uzyskasz normalny proces powłoki - np. otworzysz narzędzie terminalu. Plik .bash_profile jest wykonywany przez bash dla powłok logowania - tak jest na przykład wtedy, gdy telnet / ssh jest na twoim komputerze zdalnie. Na przykład, jeśli ssh zdalnie zalogujesz się na maszynie (powiedzmy, że otwierasz X Terminal), na początku zostanie uruchomiony .bash_profile. Jeśli w tym XTerminalu wpiszesz „xterm” i odrodzisz inny X Terminal, plik .profile zostanie wykonany dla drugiej instancji XTerminal. Pliki znajdują się w twoim katalogu domowym (~). Jeśli domyślnie się nie mylę, oba uruchamiają ~ / .bashrc, więc możesz je edytować, aby skonfigurować wspólne ustawienia / zmienne zarówno dla powłok logowania, jak i bez logowania (np. Ustawienie PATH, niektóre aliasy / skróty itp.).


źródło
w Ubuntu 18.04 otwarcie nowego okna terminala nie dzwoni .profile?
CpILL
1

dla szybkiej i prostej konfiguracji (gdzie nie chcesz skomplikowanych rzeczy) po prostu skonfiguruj wszystko w ~ / .profile. Tylko wtedy, gdy napotkasz jakieś problemy (ale prawdopodobnie nigdy się nie dowiesz), dowiedz się więcej o .bash_login lub .bash_profile;)

Jestem też na OS X i nigdy nie potrzebowałem .bash_profile lub .bash_login i używam tylko .profile, ale przebieg może się różnić ...

jm666
źródło