.bashrci NIE.bash_profile są skryptami. Są to pliki konfiguracyjne, które są pobierane za każdym razem, gdy są wykonywane na jeden z dwóch sposobów:bash
Sekcja WYWOŁANIE strony podręcznika bash jest nowością.
Logowanie powłoka jest jeden, którego pierwszy znak argumentu jest zerowy -, lub jeden uruchomiony z --loginopcją.
Interaktywna powłoka jest jeden uruchomiony bez argumentów nieopcyjnych i bez -copcji, których standardowe wejście i błędów są podłączone do zacisków (jak określono isatty(3)), albo jeden uruchomiony z -i opcją. PS1 jest ustawiony i $-obejmuje i, jeżeli bashjest interaktywny, dzięki czemu skrypt lub plik startowy, aby przetestować ten stan.
Poniższe akapity opisują sposób bashwykonywania plików startowych. Jeśli któryś z plików istnieje, ale nie można go odczytać, bash zgłasza błąd. Tyldy są rozwijane w nazwach plików, jak opisano poniżej w
Rozbudowa tyld w sekcji ROZSZERZENIE .
Kiedy bash jest wywoływany jako interaktywna powłoka logowania lub jako nieinteraktywna powłoka z --loginopcją, najpierw czyta i wykonuje polecenia z pliku /etc/profile, jeśli plik istnieje. Po przeczytaniu tego pliku, szuka ~/.bash_profile,
~/.bash_logini ~/.profile, w tej kolejności, a odczytuje i wykonuje polecenia z pierwszego, który istnieje i jest czytelny.
--noprofileOpcja może być stosowany, gdy powłoka jest uruchamiany w celu zahamowania tego zachowania.
Po wyjściu z powłoki logowania bash czyta i wykonuje polecenia z pliku ~/.bash_logout, jeśli istnieje.
Po uruchomieniu interaktywnej powłoki, która nie jest powłoką logowania, bash czyta i wykonuje polecenia z ~/.bashrc, jeśli plik istnieje. Można temu zapobiec, używając tej --norcopcji. Ta --rcfile file
opcja wymusi na bashu czytanie i wykonywanie poleceń z pliku zamiast ~/.bashrc.
Możesz kontrolować, kiedy zostaną załadowane za pomocą przełączników wiersza poleceń, --norcoraz --noprofile. Możesz również zastąpić lokalizację, z której zostaną załadowane za pomocą --rcfileprzełącznika.
Jak wspomnieli inni, możesz naśladować sposób ładowania tych plików za pomocą source <file>polecenia lub . <file>polecenia.
Najlepiej pomyśleć o tej funkcjonalności w następujący sposób:
- bash zaczyna się w czystym środowisku
- bash następnie otwiera jeden z tych plików (w zależności od tego, jak został wywołany jako interaktywny lub login, a następnie ...
- ... linia po linii wykonuje każde z poleceń w pliku ...
- po zakończeniu daje kontrolę w formie monitu, czekając na dane wejściowe
Metody wywoływania
Wydaje się, że ten temat pojawia się co jakiś czas, więc oto krótki ściągawka różnych sposobów wywoływania bashi tego, co one skutkują. UWAGA: Aby pomóc, dodałem komunikaty „sourced $ HOME / .bashrc” i „sourced $ HOME / .bash_profile ”do odpowiednich plików.
podstawowe połączenia
bash -i
$ bash -i
sourced /home/saml/.bashrc
bash -l
$ bash -l
sourced /home/saml/.bashrc
sourced /home/saml/.bash_profile
bash -il -or- bash -li
$ bash -il
sourced /home/saml/.bashrc
sourced /home/saml/.bash_profile
bash -c "..cmd .."
$ bash -c 'echo hi'
hi
UWAGA: Zauważ, że -cprzełącznik nie źródło żadnego pliku!
wyłączenie odczytu plików konfiguracyjnych
bash --norc
$ bash --norc
bash-4.1$
bash - noprofile
$ bash --noprofile
sourced /home/saml/.bashrc
bash --norc -i
$ bash --norc -i
bash-4.1$
bash --norc -l
$ bash --norc -l
sourced /home/saml/.bashrc
sourced /home/saml/.bash_profile
bash --noprofile -i
$ bash --noprofile -i
sourced /home/saml/.bashrc
bash --noprofile -l
$ bash --noprofile -l
bash-4.1$
bash --norc -i -or- bash --norc -l
$ bash --norc -c 'echo hi'
hi
Więcej ezoterycznych sposobów na wywołanie bash
bash --rcfile $ HOME / .bashrc
$ bash -rcfile ~/.bashrc
sourced /home/saml/.bashrc
bash --norc --rcfile $ HOME / .bashrc
$ bash --norc -rcfile ~/.bashrc
bash-4.1$
Te zawiodły
bash -i -rcfile ~ / .bashrc
$ bash -i -rcfile ~/.bashrc
sourced /home/saml/.bashrc
sourced /home/saml/.bash_profile
bash: /home/saml/.bashrc: restricted: cannot specify `/' in command names
bash -i -rcfile .bashrc
$ bash -i -rcfile .bashrc
sourced /home/saml/.bashrc
sourced /home/saml/.bash_profile
bash: .bashrc: command not found
Prawdopodobnie jest ich więcej, ale masz rację, mam nadzieję ...
Co jeszcze?
Na koniec, jeśli jesteś tak zafascynowany tym tematem, że chcesz przeczytać / zbadać więcej na ten temat, gorąco polecam przejrzenie Przewodnika dla początkujących Bash, w szczególności sekcji: 1.2. Zalety Bourne Again SHell . Różne podrozdziały w tym podrozdziale, „1.2.2.1. Wywołanie ” do „1.2.2.3.3. Interaktywne zachowanie powłoki” wyjaśniają niewielkie różnice poziomów między różnymi sposobami wywoływania bash.