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