Введение
Если вы проводите много времени в командной строке, скорее всего, вы захотите настроить среду оболочки. Это может означать создание псевдонимов, добавление нового каталога в $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
.
Введите команды, которые должны выполняться каждый раз при запуске новой оболочки, в файле .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.