Ответы:
.bashrc
Файл представляет собой скрипт , который выполняется всякий раз , когда новый терминал сеанс запускается в интерактивном режиме . Это то, что происходит, когда вы открываете новое окно терминала, нажимая Ctrl+ Alt+ T, или просто открываете новую вкладку терминала.
В отличие от терминальной сессии в режиме входа в систему вам будет предложено ввести имя пользователя и пароль и выполнить ~/.bash_profile
сценарий. Это то, что происходит, например, когда вы входите в удаленную систему через SSH.
Сам .bashrc
файл содержит серию конфигураций для терминальной сессии. Это включает в себя настройку или включение: раскраска, завершение, история оболочки, псевдонимы команд и многое другое. .bashrc
Файл распространяется с Ubuntu хорошо прокомментирован , и вы будете в состоянии понять большую часть того, что он делает , просто прочитав его.
Вы можете настроить .bashrc
по своему вкусу. Здесь вы можете получить пример со многими дополнительными функциями.
Вопрос по суперпользователю - что такое файл .bashrc? @pineapple и ответ @DigitalRoss
На самом деле, это
bash
именно то, что читает.bashrc
(и/etc/bash.bashrc
). Есть много разных оболочек.Страница Баша людей (Брайан Фокс и Чет Рэй, также информационная страница «Bash Startup Files» ) является авторитетным справочной:
Когда запускается интерактивная оболочка, которая не является оболочкой входа в систему, bash читает и выполняет команды
~/.bashrc
, если этот файл существует. Это может быть запрещено с помощью--norc
опции. Опция--rcfile
file заставит bash читать и выполнять команды из файла вместо~/.bashrc
.Когда bash запускается неинтерактивно, например, для запуска сценария оболочки он ищет переменную
BASH_ENV
в среде, расширяет ее значение, если оно там появляется, и использует расширенное значение в качестве имени файла для чтения и выполнения. Bash ведет себя так, как будто была выполнена следующая команда:if [ -n "$BASH_ENV" ]; then . "$BASH_ENV"; fi
но значение
PATH
переменной не используется для поиска имени файла.Файл просто командная оболочка. Обычно он используется для изменения приглашений, установки переменных среды и определения процедур оболочки. Традиционно, файл
.profile
используется для этой цели, ноbash
имеет так много расширений, что ему нужен собственный файл запуска для пользователей, которые хотят помещать ошибки в файлы запуска.« Не оболочка входа в систему » означает такие вещи, как запуск скриптов и, как правило, запуск окон терминалов менеджерами окон. Иногда я настраиваю системы * nix, чтобы иметь
.bashrc
иBASH_ENV
просто исходить.profile
. Пока вы не отклоняетесь от команд оболочки POSIX, вы получите такую же инициализацию в любой оболочке.Это особенно ценно, когда
sh
это действительно такbash
, что иногда случается. Для этого используйте:. .profile
Одна из причин, по которой все это так сложно, состоит в том, что иногда люди помещают вещи, которые производят вывод, в файлы запуска оболочки, или они безоговорочно задают приглашения. Это вызывает много проблем при запуске программ оболочки и команд backtick внутри языков, не говоря уже о
system(3)
программах на Си.bash
Я думаю, что способ запуска спроектирован так, чтобы иметь один файл, в котором настройки вывода и приглашения в порядке, и один файл, в котором это не так. Традиционно, чтобы различить интерактивность, выполнялся бы тест во время выполнения, например, проверка, установлен ли запрос.
.bashrc
является одним из многих файлов конфигурации bash. Смотрите официальную документацию по Bash Startup Files .