.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.
Jeśli się mylę, popraw mnie ... .profile jest używany przez dowolną powłokę zgodną z Bourne, podczas gdy .bash_profile jest używany tylko przez bash .. mam rację?
lakesh
2
@lakesh: Tak, każda powłoka zapewniająca kompatybilność bourne będzie czytać .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.
bahamat
czy jest jakiś samouczek do przeczytania na temat tego bash i ksh? nigdy o nich nie słyszałem ...
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:
Faktycznie, pierwszy z .bash_profile, .bash_login,.profile
Niesamowite .. Dzięki ... szczególnie za referencje ...
lakesh
10
Wiesz, że wiele powłok istnieje w świecie UNIX, ale większość z nich to:
Powłoka Bourne'a : /bin/sh(wynalazca: Stephen Bourne)
BASH (Bourne Again Shell): /bin/bash(Wynalazca: Brian Fox, w ramach projektu GNU) (potężna powłoka)
Powłoka C : /bin/csh(Inventor: Bill Joy, Inventor of TCP / IP Stack)
Powłoka Korna : /bin/ksh(Wynalazca: David Korn pod Bell Labs)
Powłoka Z : /bin/zsh(Potężna powłoka)
Powłoka TENEX C : /bin/tcsh(pochodzi z powłoki C)
Debian Almquist shell : /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:
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.
Plik inicjujący w każdej powłoce
Powłoka TENEX C.
~/.login Po zalogowaniu
~/.logout Po wylogowaniu
~/.tcshrctak samo jak ~./bashrcw bash
Możesz ustawić zmienną $histfilejako nazwę pliku historii, a zmienną $historyjako liczbę poleceń do zachowania.
Skorupa Z.
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ę:
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.
Korn Shell
~/.profile
plik rc: zdefiniowany przez użytkownika
plik wylogowania: nie dotyczy
Bourne Again SHell (BASH)
Jest to bardzo potężna powłoka, stworzona w ramach projektu GNU i rozwidlona przez Bourne Shell.
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.
Skorupa Bourne'a
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.]
Twoja odpowiedź
~/.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.
Plik .profile jest przeznaczony do rzeczy, które nie są ściśle związane z Bash, takich jak zmienne środowiskowe PATH. Powinien być także dostępny w każdej chwili. .bash_profile jest specjalnie przeznaczony dla powłok logowania lub powłok wykonywanych podczas logowania.
anzenketh,
dodaj to stwierdzenie do swojej odpowiedzi ... bo takie jest moje pytanie ...
Odpowiedzi:
.profile
Był układ oryginalny profil dla powłoki Bourne (znanesh
).bash
, będąc powłoką kompatybilną z Bourne, przeczyta ją i użyje. Z.bash_profile
drugiej strony czytają tylkobash
. Jest przeznaczony dla poleceń niezgodnych ze standardową powłoką Bourne'a.źródło
.profile
. Np.bash
Iksh
ale niecsh
lubtcsh
. Izsh
zapewnia zarównosh
icsh
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 jakosh
(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ż:
źródło
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:Twoja powłoka działa, a domyślnie każda powłoka ma ustawiony plik dla
login
ilogout
. Kiedy logujesz się na bash,~/.profile
jest uruchamiany, a kiedy tylogout
,~/.bash_logout
jest uruchamiany.~/.bash_history
plik zachowuje polecenie wejściowe.Plik inicjujący w każdej powłoce
Powłoka TENEX C.
~/.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.Skorupa Z.
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ę:
Uwaga: jeśli
$ZDOTDIR
nieuzbrojony, zestaw domowy.Powłoka C.
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.
Uwaga: csh jest stary. Zamiast tego użyj tcsh.
Korn Shell
~/.profile
Bourne Again SHell (BASH)
Jest to bardzo potężna powłoka, stworzona w ramach projektu GNU i rozwidlona przez Bourne Shell.
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.Skorupa Bourne'a
Nie żyje. Nawet gdy używasz
man sh
, widzisz instrukcję obsługidash
. [Nota redaktora: fragmentdash
dotyczy tylko Debiana i dystrybucji opartych na Debianie, takich jak Ubuntu.]Twoja odpowiedź
~/.bash_profile
pracuj pod bash, ale~/.profile
pracuj pod skorupą Bourne'a i Korna.źródło
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.źródło