Если вы проводите много времени в командной строке, скорее всего, вы захотите настроить среду оболочки. Это может означать создание псевдонимов, добавление нового каталога в $PATH
или изменение внешнего вида приглашения оболочки.
Возможно, вы встречали учебные пособия, в которых говорится, что ваша конфигурация должна быть помещена в .bashrc
, .bash_profile
или в другой файл конфигурации, который читается и выполняется оболочкой bash.
В этой статье мы поговорим о файлах запуска Bash и разнице между файлами .bashrc
и .bash_profile
.
Содержание
Интерактивный вход и оболочка без входа
При вызове Bash читает и выполняет команды из набора файлов запуска. Какие файлы читаются, зависит от того, запускается ли оболочка как интерактивная оболочка для входа или как оболочка без входа.
Оболочка может быть интерактивной или неинтерактивной.
Проще говоря, интерактивная оболочка — это оболочка, которая читает и записывает в пользовательский терминал, в то время как неинтерактивная оболочка — это оболочка, которая не связана с терминалом, например, при выполнении сценария.
Интерактивная оболочка может быть оболочкой для входа или без входа.
Оболочка входа в систему вызывается, когда пользователь входит в терминал удаленно через ssh или локально, или когда Bash запускается с параметром --login
. Интерактивная оболочка без входа в систему вызывается из оболочки входа, например, при вводе bash
в приглашении оболочки или при открытии новой вкладки терминала Gnome.
Файлы запуска Bash
При запуске в качестве интерактивной оболочки входа в систему Bash ищет файл /etc/profile
, и, если файл существует , запускает команды, перечисленные в файле. Затем Bash ищет файлы ~/.bash_profile
, ~/.bash_login
и ~/.profile
в указанном порядке и выполняет команды из первого найденного читаемого файла.
Когда Bash вызывается как интерактивная оболочка без входа в систему, он читает и выполняет команды из ~/.bashrc
, если этот файл существует и доступен для чтения.
Разница между .bashrc и .bash_profile
.bash_profile
читается и выполняется, когда Bash вызывается как интерактивная оболочка входа в систему, а .bashrc
выполняется для интерактивной оболочки без входа в систему.
Используйте .bash_profile
для запуска команд, которые должны выполняться только один раз, например, для настройки $PATH
среды $PATH
.
Поместите команды, которые должны выполняться каждый раз при запуске новой оболочки, в файл .bashrc
. Сюда входят ваши псевдонимы и функции , пользовательские подсказки, настройки истории и т. Д.
Обычно ~/.bash_profile
содержит строки, подобные приведенным ниже, к исходному файлу .bashrc
. Это означает, что каждый раз, когда вы входите в терминал, оба файла читаются и выполняются.
if [ -f ~/.bashrc ]; then
. ~/.bashrc
fi
Большинство дистрибутивов Linux используют ~/.profile
вместо ~/.bash_profile
. Файл ~/.profile
читается всеми оболочками, а файл ~/.bash_profile
только Bash.
Если какой-либо файл запуска отсутствует в вашей системе, вы можете его создать .
Выводы
.bash_profile
и .bashrc
— это файлы, содержащие команды оболочки, которые запускаются при вызове Bash. .bash_profile
читается и выполняется в интерактивных оболочках входа в систему, а .bashrc
— в оболочках без входа.
Обратитесь к руководству по Bash для получения дополнительной информации о файлах запуска Bash .
Если у вас есть какие-либо вопросы или отзывы, не стесняйтесь оставлять комментарии.