Что касается проблемы с .bashrc
выше:
В большинстве систем ~/.bashrc
используется только при запуске интерактивной оболочки без регистрации . Однако, когда вы запускаете новую оболочку, она часто представляет собой интерактивную оболочку входа в систему . Поскольку это оболочка входа в систему, .bashrc
она игнорируется. Чтобы обеспечить согласованность среды между не входящими в систему и входящими в нее оболочками, вы должны получить исходный код .bashrc
из своего .profile
или вашего.bash_profile
.
См. Справочное руководство по Bash, раздел 6.2.
Вызывается как интерактивная оболочка для входа или с --login
Когда Bash вызывается как интерактивная оболочка входа в систему или как неинтерактивная оболочка с параметром --login, она сначала читает и выполняет команды из файла / etc / profile, если этот файл существует. После прочтения этого файла он ищет ~ / .bash_profile, ~ / .bash_login и ~ / .profile в указанном порядке, а также читает и выполняет команды из первой, которая существует и доступна для чтения.
Вызывается как интерактивная оболочка без авторизации
Когда запускается интерактивная оболочка, которая не является оболочкой входа в систему, Bash читает и выполняет команды из ~ / .bashrc, если этот файл существует.
Так что, как правило, ваш ~ / .bash_profile содержит строку
if [ -f ~/.bashrc ]; then . ~/.bashrc; fi
после (или до) любых инициализаций, специфичных для входа в систему.
На моем Mac (под управлением Leopard) не было никакой строки для источника ~/.bashrc
. Я должен был добавить эту функциональность самостоятельно.
В некоторых системах и других операционных систем, .bashrc
добыт из глобального /etc/profile
или /etc/bash_profile
, или это делается с помощью файлов шаблонов из/etc/skel
.
Чтобы быть честным, различие между .bashrc
и .bash_profile
не очень хорошо понято сообществом. Когда многие разработчики говорят «Добавить это в ваш .bashrc», они действительно имеют в виду «Добавить это в ваш .bash_profile». Они хотят, чтобы функциональность была добавлена в вашу оболочку входа в систему (которая есть .bash_profile
), а не в вашу оболочку без регистрации . В действительности это обычно не имеет значения, и размещение конфигурации .bashrc
приемлемо.