Назад | Перейти на главную страницу

Каковы функциональные различия между .profile .bash_profile и .bashrc

Каковы функциональные различия между .profile, .bash_profile и .bashrc файлы?

.bash_profile и .bashrc специфичны для bash, в то время как .profile читается многими оболочками при отсутствии их собственных файлов конфигурации, специфичных для оболочки. (.profile использовался исходной оболочкой Борна.) .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 OS X Terminal.app, которое по умолчанию запускает оболочку входа в систему для каждого нового окна терминала, вызывая .bash_profile вместо того .bashrc. Другие эмуляторы терминала GUI могут делать то же самое, но большинство из них не делают этого.

Больше Вот.