~/.bashrc
i /etc/bash.bashrc
są uruchamiane przy każdym uruchomieniu interaktywnej bash
powłoki.
W przeciwieństwie do tego, ~/.profile
i /etc/profile
są uruchamiane za każdym razem, każdy logowanie shell jest uruchamiany. Więc nie musi to być bash
powłoka, ale musi to być powłoka logowania (a wiele bash
instancji powłoki nie jest powłokami logowania ).
bash
Powłoka jest powłoką gdzie program powłoka zapewniająca Jest bash
raczej niż jakiś inny program, np dash
.
- Powłoka logowania to powłoka, która jest uruchamiana automatycznie w wyniku logowania, aby zapewnić interfejs użytkownika (graficzny lub wiersz poleceń) do logowania. Po wyjściu z powłoki logowania logowanie się kończy.
Dlatego umieszczenie polecenia, do którego dołączane są wpisy PATH
w bashrc
pliku:
Nie rób nic, gdy skorupa nie jest bash
, co często ma miejsce. Na przykład PATH
niezmodyfikowany byłby podczas graficznej sesji logowania. Pamiętaj, że PATH
nie jest używany tylko przez programy wiersza polecenia.
Dołączaj go w kółko w obecności zagnieżdżonych bash
muszli. Tak więc, jeśli uruchomisz powłokę w powłoce - co jest bardzo powszechne z różnych powodów - będziesz mieć na sobie wiele ~/bin
wpisów PATH
. Powoduje to, że PATH
zmienna środowiskowa jest trudna do odczytania, a czasem również zmniejsza wydajność.
To byłoby niepożądane. Dlatego błędem byłoby umieszczenie tego w bashrc
pliku; to naprawdę należy do ~/.profile
. ~/.profile
jest właściwym miejscem dla:
# set PATH so it includes user's private bin if it exists
if [ -d "$HOME/bin" ] ; then
PATH="$HOME/bin:$PATH"
fi
Powłoki bez logowania mają powłoki nadrzędne (lub coś, co zachowuje się jak powłoka logowania) jako ich rodzic i dziedziczą większość zmiennych środowiskowych, w tym PATH
z tej powłoki logowania. Dlatego wprowadzenie komend modyfikujących ścieżkę ~/.profile
wymaga wylogowania i ponownego zalogowania, aby były skuteczne, ale wpływa to również na środowisko powłok innych niż logowanie (a także środowisko programów, które nie są powłokami, ponieważ każdy program otrzymuje swoją własny zestaw zmiennych środowiskowych - zwany „środowiskiem” - odziedziczony po procesie nadrzędnym).
bin
katalog nie istniał po zalogowaniu i że utworzyłeś go podczas tej sesji logowania. Jeśli się wylogujesz i wrócisz, będzie w twoimPATH
. Ponieważ utworzenie prywatnegobin
katalogu jest czymś, co należy zrobić tylko raz, jest to jednorazowa niedogodność.Jest tak, ponieważ tradycyjnie zmienne środowiskowe są wprowadzane tylko w
/etc/profile
lub.profile
.bashrc
Plik jest na takie rzeczy jak aliasy, ustawienia polecenia, opcji powłoki i tak dalej (czyli rzeczy, które odnoszą się bezpośrednio do zbiornika).źródło