Jakie są różnice funkcjonalne między .profile
, .bash_profile
i .bashrc
pliki?
.bash_profile
i .bashrc
są specyficzne dla bash
, podczas gdy .profile
są odczytywane przez wiele powłok przy braku własnych plików konfiguracyjnych specyficznych dla powłoki. ( .profile
był używany przez oryginalną powłokę Bourne'a) .bash_profile
lub .profile
jest czytany przez powłoki logowania wraz z .bashrc
; podpowłoki tylko do odczytu .bashrc
. (Między kontrolą zadań a nowoczesnymi systemami okienkowania .bashrc
samo w sobie się nie przyzwyczaja. Jeśli używasz screen
lub tmux
, ekrany / okna zwykle uruchamiają podpowłoki zamiast powłok logowania).
Pomysł polegał na tym, że jednorazowa konfiguracja została wykonana przez .profile
(lub jego wersję specyficzną dla powłoki), a elementy na powłoki .bashrc
. Na przykład, na ogół chcesz ładować zmienne środowiskowe tylko raz na sesję, zamiast ich uderzać za każdym razem, gdy uruchamiasz podpowłokę w trakcie sesji, podczas gdy zawsze chcesz mieć swoje aliasy (które nie są propagowane automatycznie, podobnie jak zmienne środowiskowe).
Inne znaczące pliki konfiguracyjne powłoki:
/etc/bash_profile
(awaryjne /etc/profile
) jest odczytywane przed użytkownikiem .profile
dla konfiguracji ogólnosystemowej, a także /etc/bashrc
w podpowłokach (w tym przypadku nie ma rezerwowych). Wiele systemów, w tym Ubuntu, również korzysta z /etc/profile.d
katalogu zawierającego skryptlety powłoki, które są .
( source
) od /etc/profile
; fragmenty tutaj są na powłokę, z *.sh
zastosowaniem do wszystkich powłok zgodnych z Bourne / POSIX i innymi rozszerzeniami mającymi zastosowanie do tej konkretnej powłoki.
.profil
.profile
dotyczy rzeczy, które nie są ściśle powiązane Bash
, takich jak zmienne środowiskowe PATH
i przyjaciele, i powinny być dostępne w każdej chwili.
Na przykład .profile
powinien zostać załadowany również podczas uruchamiania graficznej sesji pulpitu.
.bashrc
.bashrc
służy do konfigurowania interaktywnego użycia Bash, np. Bash aliases
ustawienia ulubionych editor
, ustawień Bash prompt
itp.
.bash_profile
.bash_profile służy do upewnienia się, że zarówno rzeczy w, jak .profile
i dla .bashrc
są załadowane login shells
.
Na przykład .bash_profile
może być coś prostego
. ~/.profile
. ~/.bashrc
Jeśli miałbyś pominąć .bashrc
, tylko .profile
ładowane byłyby.
Według strony podręcznika bash
.bash_profile
wykonywana jest dla powłok logowania, natomiast.bashrc
dla interaktywnych powłok bez logowania.Czym jest powłoka do logowania lub bez logowania?
Podczas logowania (wpisz nazwę użytkownika i hasło) przez konsolę, albo siedząc przy komputerze, albo zdalnie przez ssh:
.bash_profile
wykonywane jest skonfigurowanie powłoki przed pierwszym wierszem poleceń. Ale jeśli zalogowałeś się już na swoim komputerze i otworzyłeś nowe okno terminala (xterm) w Gnome lub KDE, to.bashrc
jest ono wykonywane przed wierszem poleceń okna..bashrc
jest również uruchamiany po uruchomieniu nowej instancji bash przez wpisanie/bin/bash
terminala.Wyjątkiem od wytycznych dotyczących okna terminala jest aplikacja Terminal.app w systemie Mac OS X, która domyślnie uruchamia powłokę logowania dla każdego nowego okna terminala, wywołując
.bash_profile
zamiast.bashrc
. Inne emulatory terminala GUI mogą robić to samo, ale większość tego nie robi.Więcej tutaj .
źródło