Я настраиваю новую машину Linux, которую я получил от нашего ИТ-отдела, и заметил, что .profile
она не загружается, когда я начинаю новый сеанс терминала. Текущая оболочка - Bash , хотя я изменил ее по умолчанию на sh, с которым она шла. Как мне заставить его загрузиться .profile
при запуске?
Я доступ к оболочке через SSH : ssh myusername@remotemachine
. У меня есть права администратора.
Ответы:
Когда Bash запускается как интерактивная оболочка входа, один из файлов, которые он может обрабатывать, это
~/.profile
.Когда он запускается как интерактивная оболочка без авторизации, это не так. Он обрабатывает
/etc/bash.bashrc
(если этот файл или аналогичный файл включен в вашей версии Bash) и~/.bashrc
.Вы можете добавить следующее к своему
~/.bashrc
(но будьте осторожны с непреднамеренным изменением циклов или значений):источник
[ -z "$SOME_VAR_SET_IN_PROFILE" ] && . ~/.profile
Это зависит от того, как вы запустите свою оболочку. Как уже говорили другие, оболочка входа будет загружать ваш профиль (сначала будет искать .bash_profile, а затем будет пытаться .profile). Если он находит один из них, он загружает их. Оболочка без входа в систему (интерактивная или неинтерактивная) будет источником .bashrc.
Я бы предложил положить все в .bashrc. Разделение .profile / .bashrc было произвольным и имело больше смысла в старые времена UNIX, когда tty не было просто именем устройства и означало настоящий TeleType. Он предназначался для запуска определенных вещей (например, проверки почты) при «основном» входе в систему на сервере и просто обычной настройки для других оболочек. В большинстве Linux'ов вы сейчас авторизуетесь, на самом деле вы не входите в оболочку, поскольку вы входите в какой-то графический интерфейс (KDE, gnome, CDE 'shudder'). Менеджер сеансов теперь позаботится о "процессах входа в систему". Это гораздо менее актуально сейчас.
Мое предложение: сделать ваш .profile состоящим исключительно из:
как первая строка .bashrc, защититесь от странных вещей, происходящих при запуске bash-скрипта, выпрыгнув рано:
источник
.profile
должен быть сохранен Bash-агностиком. Я предлагаю настроить.bash_profile
для загрузки,.profile
а затем загрузить.bashrc
. положить только вещи.profile
, не связанные с Bash , какPATH
иLC_*
вещи. Положите остальные.bashrc
.