Jaka jest różnica między ~/.profile
i ~/.bash_profile
?
Jaka jest różnica między ~/.profile
i ~/.bash_profile
?
Odpowiedzi:
.profile
Był układ oryginalny profil dla powłoki Bourne (znane sh
). bash
, będąc powłoką kompatybilną z Bourne, przeczyta ją i użyje. Z .bash_profile
drugiej strony czytają tylko bash
. Jest przeznaczony dla poleceń niezgodnych ze standardową powłoką Bourne'a.
.profile
. Np. bash
I ksh
ale nie csh
lub tcsh
. I zsh
zapewnia zarówno sh
i csh
kompatybilność więc będzie czytać zarówno .profile
a .login
, jak również zsh
konkretne pliki dot.
Oryginał sh
pochodzi .profile
ze startu.
bash
spróbuje .bash_profile
najpierw uzyskać źródło , ale jeśli to nie istnieje, będzie źródło .profile
1 .
Zauważ, że jeśli bash
jest uruchamiany jako sh
(np. /bin/sh
Jest linkiem do /bin/bash
) lub jest uruchamiany z --posix
flagą, próbuje emulować sh
i tylko czyta .profile
.
Przypisy:
.bash_profile
, .bash_login
,.profile
Zobacz też:
Wiesz, że wiele powłok istnieje w świecie UNIX, ale większość z nich to:
/bin/sh
(wynalazca: Stephen Bourne)/bin/bash
(Wynalazca: Brian Fox, w ramach projektu GNU) (potężna powłoka)/bin/csh
(Inventor: Bill Joy, Inventor of TCP / IP Stack)/bin/ksh
(Wynalazca: David Korn pod Bell Labs)/bin/zsh
(Potężna powłoka)/bin/tcsh
(pochodzi z powłoki C)/bin/dash
(Pochodzi z powłoki Almquist (popiół w ramach projektu NetBSD)) (Dash urodzony z Lenny)Ale Twoje pytanie jest o ~/.bash_profile
i ~/.profile
:
Gdy logujesz się na maszynę UNIX, przekierowuje ona do twojego katalogu domowego, zgodnie z powłoką wybraną przez administratora w ostatnim polu, /etc/passwd
takim jak:
mohsen:x:1000:1000:Mohsen Pahlevanzadeh,,,:/home/mohsen:/bin/bash
Twoja powłoka działa, a domyślnie każda powłoka ma ustawiony plik dla login
i logout
. Kiedy logujesz się na bash, ~/.profile
jest uruchamiany, a kiedy ty logout
, ~/.bash_logout
jest uruchamiany.
~/.bash_history
plik zachowuje polecenie wejściowe.
~/.login
Po zalogowaniu~/.logout
Po wylogowaniu~/.tcshrc
tak samo jak ~./bashrc
w bashMożesz ustawić zmienną $histfile
jako nazwę pliku historii, a zmienną $history
jako liczbę poleceń do zachowania.
Rzeczywiście jest to potężna powłoka i jeśli masz wolny czas, koniecznie migruj do niej.
Z wyjątkiem innych powłok, powłoka Z ma wiele plików konfiguracyjnych i plików inicjujących, po prostu piszę:
$ZDOTDIR/.zshenv
$ZDOTDIR/.zprofile
$ZDOTDIR/.zshrc
$ZDOTDIR/.zlogin
$ZDOTDIR/.zlogout
/tmp/zsh*
/etc/zshenv
/etc/zprofile
/etc/zshrc
/etc/zlogin
Uwaga: jeśli $ZDOTDIR
nieuzbrojony, zestaw domowy.
Uwaga: skorupa TENEX C została rozwidlona z powłoki C. Obsługa powłoki C przez BSD. Jeśli znasz programowanie w języku C, powinieneś czuć się swobodnie, ponieważ jego składnia jest podobna.
~/.login
~/.cshrc
~/.logout
Uwaga: csh jest stary. Zamiast tego użyj tcsh.
~/.profile
Jest to bardzo potężna powłoka, stworzona w ramach projektu GNU i rozwidlona przez Bourne Shell.
~/.bash_login
~/.bash_logout
~/.bashrc
~/.bash_profile
~/.bash_history
Po zalogowaniu bash działa ~/.bash_profile
i ~/.bash_profile
działa ~/.bashrc
. Rzeczywiście ~/.bashrc
nie jest to plik inicjujący bash, ponieważ bash go nie uruchamia.
Nie żyje. Nawet gdy używasz man sh
, widzisz instrukcję obsługi dash
. [Nota redaktora: fragment dash
dotyczy tylko Debiana i dystrybucji opartych na Debianie, takich jak Ubuntu.]
~/.bash_profile
pracuj pod bash, ale ~/.profile
pracuj pod skorupą Bourne'a i Korna.
Powłoka logowania to po prostu powłoka, którą można zalogować za pomocą ssh lub konsoli. Powłoka niezalogowana to powłoka, której ktoś też nie może się zalogować. Powłoka niezalogowana jest często używana przez programy / usługi systemowe.
Co do twojego trzeciego punktu. To prawda, że .bashrc
jest wykonywany na każdej instancji powłoki. .bash_profile
Jest jednak używany tylko po zalogowaniu. Zatem przyczyna dwóch oddzielnych plików.
.profile
dotyczy rzeczy, które nie są ściśle związane z Bash, takich jak zmienne środowiskowe $ PATH, powinny być również dostępne w każdej chwili. .bash_profile
jest specjalnie dla powłok logowania lub powłok wykonanych podczas logowania.