Перезагрузка .bashrc без выхода из системы
.bashrc
Вам просто нужно ввести одну из следующих команд:
source ~/.bashrc
или
. ~/.bashrc
или
exec bash
или
. .bashrc
или
bash
или
source .bashrc
Команда exec заменяет оболочку данной программой, в нашем примере она заменяет нашу оболочку bash (с обновленными файлами конфигурации).
Оба решения эффективно перезагружают ~/.bashrc , но есть различия:
source ~/.bashrc сохранит вашу текущую оболочку :
За исключением модификаций, которые перезагружают ~/.bashrc в текущей оболочке (sourcing), текущая shell и ее состояние сохраняются , включая переменные среды, переменные оболочки, параметры оболочки, функции оболочки и историю команд.
exec bash или, более надежно, exec "$BASH" [1], заменит вашу текущую оболочку новым экземпляром и, следовательно, сохранит только текущие переменные среды оболочки (включая те, которые вы определили ad-hoc).
Другими словами: любые ad-hoc изменения текущей оболочки в терминах переменных оболочки, функций оболочки, параметров оболочки, истории команд теряются.
В зависимости от ваших потребностей может быть предпочтительным один или другой подход.
[1] exec bash может теоретически выполнить другой исполняемый файл bash чем тот, который запустил текущую оболочку, если она существует в каталоге, указанном ранее в $PATH. Поскольку специальная переменная $BASH всегда содержит полный путь к исполняемому файлу, который запустил текущую оболочку, exec "$BASH" гарантированно будет использовать тот же исполняемый файл. Примечание re "..." вокруг $BASH : двойное кавывание гарантирует, что значение переменной используется как есть, без интерпретации Bash; если значение не имеет встроенных пространств или других метасимволов оболочки (что в данном случае маловероятно), вам не нужны только двойные кавычки, но использование их – хорошая привычка формироваться.
Можно включить алиас в файл bashrc:
alias rc="vim ~/.bashrc && source ~/.bashrc"
Каждый раз, когда вы захотите отредактировать свой bashrc, просто запустите псевдоним "rc".