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