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

Я не могу найти четкую информацию о том, что .bashrc файл есть и что именно он делает.


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

2 ответа

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

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

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

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

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

На самом деле это bash конкретно это читает .bashrc (а также /etc/bash.bashrc). Есть много разных оболочек.

Страница руководства bash (от Brian Fox и Chet Ramey; также информационная страница "Файлы запуска Bash") является авторитетной ссылкой:

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

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

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

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

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

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

Это особенно ценно, когда sh действительно bash, что иногда случается. Для этого используйте:

. .profile

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

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