Обновить env-переменные после редактирования файла bashrc

59

Я часто редактировал .bashrcфайл для экспорта новых переменных среды.

Вместо того, чтобы закрыть консоль и запустить новую для обновления переменных env, есть ли удобный способ обновления?

xiaohan2012
источник

Ответы:

78

В том же окне вы можете просто напечатать, bashчтобы начать новое. Это эквивалентно закрытию окна и повторному открытию нового.

Кроме того, вы можете ввести source ~/.bashrcисточник .bashrcфайла.

n0pe
источник
7
Нет необходимости выполнять другую оболочку. sourceэто правильный путь
Маттео
2
также нет необходимости вводить длинные слова source. вы можете просто ввести точку вместо него: . ~/.bashrc.
Раш
4
@Rush типизация sourceпоказывает пользователю, какая команда вызывается. Я не верю в показ сокращенных команд новым пользователям, пока они не поймут, что делает код.
n0pe
10
обратите внимание, что простой поиск bashrc не обязательно равен перезапуску bash. определенные переменные не являются автоматически неопределенными. параметры оболочки не сбрасываются автоматически. sourcing bashrc выполняет только то, что написано в bashrc. он не отменяет никаких других изменений в среде. запуск нового сеанса bash внутри старого также не обязательно равен перезапуску bash, поскольку новый процесс наследует среду от старого.
Lesmana
2
@MaxMackie Учитывая то source, что bashism длиннее для ввода, но не предлагает никаких преимуществ по сравнению с его переносимым во всех эквивалентных оболочках ., я не вижу смысла поощрять кого-либо, нового или опытного, использовать его.
jw013
21

Просто используйте

source ~/.bashrc

или же

. ~/.bashrc
Matteo
источник
3

В дополнение к тому, что предложили другие, я обнаружил, что sourceэто не отменяет ранее назначенные переменные среды. Итак, если вы хотите сбросить переменные окружения, вы должны сделать это вручную.

Lokesh
источник