На этот вопрос уже есть ответ здесь:
Так что мне нужно перезагрузить мой профиль после внесения изменений (на этот раз из-за опечатки). Я запускаю source ~ / .profile
, и все работает отлично.
Однако команда source
применяется только к этому терминальному сеансу. Это означает, что я запускаю команду каждый раз, когда открываю новый терминал. Я хочу найти способ применить переменные .profile
/ среды ко всему пользовательскому сеансу без выхода из системы, а не только к текущему терминалу.
Есть ли пакет или команда, которые могут выполнить этот тип изменения, перезагрузив профиль, как он загружается при входе в систему?
РЕДАКТИРОВАТЬ: Чтобы уточнить, что это не дубликат, я не Я не хочу использовать:
source ~/.profile
или
. ~/.profile
, поскольку они влияют только на изменения в одном сеансе терминала. Я хочу внести изменения во все запущенные терминалы из моего пользовательского сеанса. У меня уже есть изменения в текущем сеансе терминала с помощью этих команд . Они мне нужны во вновь открытом терминале после того, как я запустил команду (которую, чтобы уточнить, у меня в настоящее время нет. изменения влияют только на текущий терминал , и мой вопрос состоит в том, чтобы повлиять на эти изменения на нескольких терминалах
Вы не можете. Переменные среды хранятся в памяти каждой оболочки для каждого процесса. Другие процессы (другие оболочки, например, те, которые вы хотите изменить) не могут получить доступ к этой памяти. bash
также не слушает сокет для получения обновлений.
Перечитайте man bash
, особенно раздел INVOCATION
.
~/.profile
- это скорее файл запуска ksh
. Тем не менее, вы можете поместить source $HOME/.profile
в ваш ~/.bashrc
.