Каковы функциональные различия между .profile
, .bash_profile
и .bashrc
файлы?
Каковы функциональные различия между .profile
, .bash_profile
и .bashrc
файлы?
Ответы:
.bash_profile
и .bashrc
специфичны для bash
, тогда .profile
как читаются многими оболочками при отсутствии их собственных специфичных для оболочки конфигурационных файлов. ( .profile
использовался оригинальной оболочкой Bourne.) .bash_profile
или .profile
читается оболочкой входа в систему вместе с .bashrc
; подоболочки только для чтения .bashrc
. (Между управлением заданиями и современными оконными системами .bashrc
само по себе мало что используется. Если вы используете screen
или tmux
, экраны / окна обычно запускают подоболочки вместо оболочек входа.)
Идея заключалась в том, что одноразовая настройка была сделана .profile
(или ее специфичная для оболочки версия), а для каждой оболочки - .bashrc
. Например, вы, как правило, хотите загружать переменные среды только один раз за сеанс вместо того, чтобы их сбивать каждый раз, когда вы запускаете подоболочку внутри сеанса, тогда как вы всегда хотите, чтобы ваши псевдонимы (которые не распространяются автоматически, как переменные среды).
Другие известные файлы конфигурации оболочки:
/etc/bash_profile
(отступление /etc/profile
) читается перед пользователем .profile
для общесистемной конфигурации, а также /etc/bashrc
в подоболочках (для этого отступления нет). Многие системы, включая Ubuntu, также используют /etc/profile.d
каталог, содержащий скриптлеты оболочки, которые .
( source
) -ed из /etc/profile
; фрагменты здесь относятся к каждой оболочке с *.sh
применением ко всем совместимым с Bourne / POSIX оболочкам и другим расширениям, применяемым к этой конкретной оболочке.
.профиль
.profile
предназначен для вещей, которые не связаны конкретно с Bash
переменными окружения PATH
и друзьями, и должны быть доступны в любое время.
Например, .profile
также должен быть загружен при запуске графического сеанса рабочего стола.
.bashrc
.bashrc
предназначен для настройки использования интерактивного Bash, например Bash aliases
, для настройки вашего избранного editor
, настройки и Bash prompt
т. д.
.bash_profile
.bash_profile предназначен для того, чтобы убедиться, что все вещи в .profile
и .bashrc
загружены login shells
.
Например, .bash_profile
может быть что-то простое, как
. ~/.profile
. ~/.bashrc
Если вы пропустите .bashrc
, .profile
будет загружен только.
Согласно странице руководства bash, .bash_profile
выполняется для оболочек входа в систему, а .bashrc
для интерактивных оболочек без входа в систему.
Итак, что такое оболочка для входа или не входа?
Когда вы входите в систему (вводите имя пользователя и пароль) через консоль, либо сидя за компьютером, либо удаленно через ssh: .bash_profile
выполняется для настройки вашей оболочки до начальной командной строки. Но, если вы уже вошли в свою машину и открыли новое окно терминала (xterm) внутри Gnome или KDE, то .bashrc
оно выполняется перед командной строкой окна. .bashrc
также запускается, когда вы запускаете новый экземпляр bash, набирая /bin/bash
в терминале.
Исключением из правил окна терминала является Mac.X Terminal.app, который запускает оболочку входа по умолчанию для каждого нового окна терминала, вызывая .bash_profile
вместо .bashrc
. Другие эмуляторы терминала GUI могут делать то же самое, но большинство этого не делают.
Подробнее здесь .