.bashrc
і НЕ.bash_profile
є сценаріями. Вони є конфігураційним файлом, який отримується щоразу, коли виконується одним із двох способів:bash
Розділ ІНВОЦІАЦІЇ на сторінці bash man - це те, що є релевантним.
Ввійти оболонкою є один, першим символом аргументу нуля є -
, або запущеним з --login
опцією.
Інтерактивна оболонка один запускаються без аргументів без опцій і без -c
опції якого стандартного введення і помилок обидва підключені до клем (як визначено isatty(3))
, або один почав з -i
опцією. PS1 встановлюється і $-
включає в себе , i
якщо в bash
інтерактивному режимі , що дозволяє сценарій оболонки або файл запуску для перевірки цього стану.
У наступних параграфах описано, як bash
виконуються файли запуску. Якщо будь-який з файлів існує, але його неможливо прочитати, bash повідомляє про помилку. Tildes розкладаються в іменах файлів , як описано нижче в розділі
тильди в РОЗШИРЕННЯ розділі.
Коли bash викликається як інтерактивна оболонка для входу, або як неінтерактивна оболонка з --login
можливістю, вона спочатку зчитує та виконує команди з файлу /etc/profile
, якщо такий файл існує. Після прочитання цього файлу, він шукає ~/.bash_profile
,
~/.bash_login
і ~/.profile
, в такому порядку, і читає і виконує команду з першого, який існує і читаються.
--noprofile
Варіант може бути використаний , коли оболонка запускається , щоб пригнічувати таку поведінку.
Коли оболонка входу виходить, bash зчитує та виконує команди з файлу ~/.bash_logout
, якщо він існує.
Коли запускається інтерактивна оболонка, яка не є оболонкою для входу, bash зчитує та виконує команди ~/.bashrc
, якщо цей файл існує. Це може бути пригнічено за допомогою --norc
параметра. Цей --rcfile file
параметр змусить bash читати та виконувати команди з файлу замість ~/.bashrc
.
Ви можете керувати завантаженням через комутатори командного рядка --norc
та --noprofile
. Ви також можете змінити місце, де вони завантажуються за допомогою --rcfile
перемикача.
Як згадували інші, ви можете імітувати, як ці файли завантажуються за допомогою використання source <file>
команди або використання . <file>
команди.
Краще подумати про цю функціональність так:
- Баш починається з голого середовища
- потім bash відкриває один з цих файлів (залежно від того, як його викликали як інтерактивного або входу, а потім ...
- ... рядок за рядком виконує кожну з команд у файлі ...
- коли завершене дає контроль у вигляді підказки, чекаючи введення
Методи виклику
Ця тема, здається, з'являється раз у раз, тому ось невеликий чіткий лист про різні способи викликати bash
та до чого вони призводять. ПРИМІТКА. Щоб допомогти, я додав повідомлення "джерело $ HOME / .bashrc" та "джерело" $ HOME / .bash_profile "у відповідні файли.
основні дзвінки
баш -і
$ bash -i
sourced /home/saml/.bashrc
баш -л
$ 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
ПРИМІТКА. Зауважте, що -c
комутатор не створив жоден файл!
відключення конфігураційних файлів від читання
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
Більш езотеричні способи викликати баш
bash --rcfile $ HOME / .bashrc
$ bash -rcfile ~/.bashrc
sourced /home/saml/.bashrc
bash --norc --rcfile $ HOME / .bashrc
$ bash --norc -rcfile ~/.bashrc
bash-4.1$
Ці не вдалося
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
Напевно, є більше, але ви зрозумієте, надіюсь….
Що ще?
Нарешті, якщо ви настільки захоплені цією темою, що хотіли б прочитати / вивчити її більше, я настійно пропоную ознайомитись з Посібником для початківців Bash, зокрема розділом: 1.2. Переваги Bourne Again SHell . Різні підрозділи під цим пунктом, "1.2.2.1. Заклик" через "1.2.2.3.3. Інтерактивна поведінка оболонки" пояснюють низькі відмінності на рівні між різними способами, на які можна викликати bash
.