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


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


108
2018-04-20 15:42


Источник




Ответы:


.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) - от /etc/profile; фрагменты здесь являются оболочками, с *.sh применяя все оболочки, совместимые с Bourne / POSIX, и другие расширения, применяемые к этой конкретной оболочке.


90
2018-04-20 15:51





.профиль

.profile для вещей, которые конкретно не связаны с Bash, подобно переменным среды PATH и друзей, и должны быть доступны в любое время.

Например, .profile также следует загружать при запуске графического сеанса рабочего стола.


.bashrc

.bashrc для настройки интерактивного использования Bash, например Bash aliases, установив ваш любимый editor, установив Bash prompt, и т.д.


.bash_profile

.bash_profile предназначен для того, чтобы убедиться, что .profile а также .bashrc загружаются для login shells,

Например, .bash_profile может быть что-то простое, как

. ~/.profile
. ~/.bashrc

Если вы должны были пропустить .bash_profile, только .profile будет загружен.


24
2018-04-17 06:15



Это ответ на мой вопрос для Mac OS X - Jake Toronto


В соответствии с страницей bash man .bash_profile выполняется для систем входа в систему, а .bashrc выполняется для интерактивных оболочек без входа.

Итак, что такое логин или недействительный интерфейс?

Когда вы входите в систему (введите имя пользователя и пароль) через консоль, либо сидите на машине, либо дистанционно через ssh: .bash_profile выполняется для настройки вашей оболочки перед первоначальной командной строкой. Но если вы уже вошли в свой компьютер и открываете новое окно терминала (xterm) внутри Gnome или KDE, то перед командной строкой окна выполняется .bashrc. .bashrc также запускается, когда вы запускаете новый экземпляр bash, введя / bin / bash в терминале.

Исключением из директив терминала является Mac OS X Terminal.app, который запускает оболочку входа по умолчанию для каждого нового окна терминала, вызывая .bash_profile вместо .bashrc. Другие эмуляторы терминала GUI могут делать то же самое, но большинство из них не склонны.

Подробнее здесь http://www.joshstaiger.org/archives/2005/07/bash_profile_vs.html


20
2018-04-03 12:52