РЕДАКТИРОВАТЬ
Ответ на мой вопрос на самом деле очевиден, я просто забыл о значении ключевого слова EXPORT. Я все еще опускаю объяснение здесь, на всякий случай.
Итак, в нескольких словах, при открытии терминала с помощью Ctrl-Alt T создается новая оболочка, которая является дочерней по отношению к оболочке, созданной при входе в систему. Как объяснено здесь , оболочка логина инициализируется чтением / etc / profile и, как объяснено здесь и более конкретно здесь элементовсреда передается дочерним процессам, в частности переменным с префиксом ключевого слова EXPORT.
Я пытаюсь понять, каков механизм, при котором PATH
устанавливается под linux при открытии нового (виртуального) терминала.
Я знаю, что можно изменить PATH
в нескольких файлах (например, в системе: / etc / {profile , bash.bashrc , ...} или пользователь: ~ / {. Profile , .bash_login , .bashrc ...}, некоторые из которых читаются при входе в систему, а другие - при открытии новых (виртуальных) терминалов.
Согласно моим тестам, это профиль "" "файлы читаются при запуске (когда пользователь входит в систему), который регистрирует некоторые значения запуска для таких переменных, как PATH
. Затем, каждый раз, когда открывается терминал, эти значения запуска передаются другому сценарию (например, * 1034). * bashrc ) для дальнейшей настройки, что приводит к чему-то вроде: PATH_IN_TERMINAL=$BASHRC_ADDONS:$PATH_FROM_PROFILE
Примечательно, что ~ / .profile обычно не читается после входа в систему. не имеет никакого эффекта в текущем сеансе, и PATH_FROM_PROFILE
часть PATH
останется неизменной доснова войти в систему (например, после выхода из системы или через ssh-соединение).
Я прав? И если да, где я могу найти документ на эту тему?
Спасибо