.bashrc против .bash_profile

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

Если у вас есть какие-либо вопросы или отзывы, не стесняйтесь оставлять комментарии.

Оставьте комментарий