Что такое файл.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
Запуск, как мне кажется, предназначен для того, чтобы иметь один файл, в котором настройки вывода и приглашения в порядке, и один файл, в котором это не так. Традиционно, чтобы различить интерактивность, выполнялся бы тест во время выполнения, например, проверка, установлен ли запрос.