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