Что такое .bashrc файл и что он делает?

Я, может казаться, не нахожу ясной информации о какой .bashrc файл и что он делает точно.


Спасибо за всю справку до сих пор. Кажется, что этот сценарий делает все от окраски, завершения, псевдонимов и окружает историю и т.д. Есть ли что-нибудь, что не кажется полезным?

21
задан 16 April 2019 в 20:25

2 ответа

.bashrc файл является сценарием, который выполняется каждый раз, когда новый терминальный сеанс запускается в интерактивном режиме. Это - то, что происходит, когда Вы открываете новое окно терминала путем нажатия Ctrl+Alt+T или просто открываете новую терминальную вкладку.

В отличие от этого, терминальный сеанс в режиме входа в систему попросит у Вас имени пользователя и пароля и выполнится ~/.bash_profile сценарий. Это - то, что происходит, например, когда Вы входите в удаленную систему через SSH.

.bashrc сам файл содержит ряд конфигураций для терминального сеанса. Это включает установку или включение: окраска, завершение, история оболочки, управляет псевдонимами и т.д. .bashrc файл, распределенный с Ubuntu, хорошо прокомментирован, и Вы сможете понять большую часть того, что это делает только путем чтения его.

Можно настроить .bashrc к Вашей симпатии. Здесь можно получить пример со многими дополнительными функциями.

20
ответ дан 23 November 2019 в 01:44

Вопрос на суперпользователь-Каков .bashrc файл? @pineapple и ответил @DigitalRoss

На самом деле это bash конкретно это читает .bashrc/etc/bash.bashrc). Существует много различных оболочек.

Страница справочника удара (Brian Fox и Chet Ramey; также информационная страница "Bash Startup Files"), авторитетная ссылка:

Когда интерактивная оболочка, которая не является оболочкой входа в систему, запускается, удар читает и выполняет команды от ~/.bashrc, если тот файл существует. Это может быть запрещено при помощи --norc опция. --rcfile опция файла вынудит удар считать и выполнить команды из файла вместо ~/.bashrc.

Когда удар запускается нев интерактивном режиме, для выполнения сценария оболочки, например, он ищет переменную BASH_ENV в среде, разворачивает ее значение, если это появляется там и использует расширенное значение в качестве названия файла, чтобы читать и выполниться. Bash ведет себя, как будто следующая команда выполнялась:

if [ -n "$BASH_ENV" ]; then . "$BASH_ENV"; fi  

но значение PATH переменная не используется для поиска имени файла.

Файл является просто командами оболочки. Это обычно используется, чтобы изменить подсказки, установить переменные среды и определить процедуры оболочки. Традиционно, файл .profile используется с этой целью, но bash имеет столько расширений, что этому нужен его собственный файл запуска для пользователей, которые хотят поместить bashisms в файлы запуска.

"Не оболочка входа в систему" означает вещи как запуски сценария и обычно окна терминала, запущенные менеджерами окон. Иногда я настраивал *, отклоняют системы, чтобы иметь .bashrc и BASH_ENV просто источник .profile. Пока Вы не отклоняетесь за пределами команд оболочки POSIX затем, Вы получите ту же инициализацию в любой оболочке.

Это особенно ценно когда sh действительно bash, который иногда происходит. Сделать это использование:

. .profile

Одна причина это - все настолько сложное, состоит в том, потому что иногда люди помещают вещи, которые производят вывод в файлы запуска оболочки, или они безусловно устанавливают подсказки. Это вызывает много проблем при выполнении программных оболочек и команд обратной галочки в языках, не говоря уже о system(3) из программ C. Путь bash запускает разработан, я думаю, чтобы иметь один файл, где произведено, и быстрая установка в порядке и один файл, где это не. Традиционно, тест во время выполнения был бы сделан для различения интерактивности, например, проверив, чтобы видеть, установлена ли подсказка.

5
ответ дан 23 November 2019 в 01:44

Другие вопросы по тегам:

Похожие вопросы: