Jaka jest różnica między ~/.profilei ~/.bash_profile?
Jaka jest różnica między ~/.profilei ~/.bash_profile?
Odpowiedzi:
.profileBył 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_profiledrugiej strony czytają tylko bash. Jest przeznaczony dla poleceń niezgodnych ze standardową powłoką Bourne'a.
.profile. Np. bashI kshale nie cshlub tcsh. I zshzapewnia zarówno shi cshkompatybilność więc będzie czytać zarówno .profilea .login, jak również zshkonkretne pliki dot.
Oryginał shpochodzi .profileze startu.
bashspróbuje .bash_profilenajpierw uzyskać źródło , ale jeśli to nie istnieje, będzie źródło .profile1 .
Zauważ, że jeśli bashjest uruchamiany jako sh(np. /bin/shJest linkiem do /bin/bash) lub jest uruchamiany z --posixflagą, próbuje emulować shi tylko czyta .profile.
Przypisy:
.bash_profile, .bash_login,.profileZobacz 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_profilei ~/.profile:
Gdy logujesz się na maszynę UNIX, przekierowuje ona do twojego katalogu domowego, zgodnie z powłoką wybraną przez administratora w ostatnim polu, /etc/passwdtakim 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 logini logout. Kiedy logujesz się na bash, ~/.profilejest uruchamiany, a kiedy ty logout, ~/.bash_logoutjest uruchamiany.
~/.bash_historyplik zachowuje polecenie wejściowe.
~/.login Po zalogowaniu~/.logout Po wylogowaniu~/.tcshrctak samo jak ~./bashrcw bashMożesz ustawić zmienną $histfilejako nazwę pliku historii, a zmienną $historyjako 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 $ZDOTDIRnieuzbrojony, 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.
~/.profileJest 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_profilei ~/.bash_profiledziała ~/.bashrc. Rzeczywiście ~/.bashrcnie 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 dashdotyczy tylko Debiana i dystrybucji opartych na Debianie, takich jak Ubuntu.]
~/.bash_profilepracuj pod bash, ale ~/.profilepracuj 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 .bashrcjest wykonywany na każdej instancji powłoki. .bash_profileJest jednak używany tylko po zalogowaniu. Zatem przyczyna dwóch oddzielnych plików.
.profiledotyczy 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_profilejest specjalnie dla powłok logowania lub powłok wykonanych podczas logowania.