Как перезагрузить .bashrc без выхода из системы и обратно?

Если я вношу изменения в .bashrc, как я могу перезагрузить его, не выходя из системы и обратно?

Ответ 1

Вам просто нужно ввести команду:

source ~/.bashrc

или вы можете использовать более короткую версию команды:

. ~/.bashrc

Ответ 2

или вы можете использовать;

exec bash

делает то же самое. (и легче запомнить, по крайней мере для меня)

Команда

exec заменяет оболочку данной программой, в нашем примере она заменяет нашу оболочку bash (с обновленными файлами конфигурации)

Ответ 3

В добавьте и сравните два самых популярных ответа: . ~/.bashrc и exec bash:

Оба решения эффективно перезагружают ~/.bashrc, но существуют различия:

  • source ~/.bashrc будет сохранить текущую оболочку:

    • За исключением изменений, которые перезагружает ~/.bashrc в текущую оболочку (источник), текущая оболочка и ее состояние сохраняются, которая включает переменные среды, переменные оболочки, параметры оболочки, функции оболочки, и история команд.
  • exec bash или, более надежно, exec "$BASH" [1], будет заменить текущую оболочку на новый экземпляр, и поэтому сохранит только текущие переменные среды оболочки (включая те, которые вы определили ad-hoc).

    • Другими словами: любые временные изменения текущей оболочки в терминах переменных оболочки, функций оболочки, параметров оболочки, истории команд теряются.

В зависимости от ваших потребностей может быть предпочтительным один или другой подход.


[1] exec bash мог теоретически выполнить другой исполняемый файл bash, чем тот, который запустил текущую оболочку, если она существует в каталоге, указанном ранее в $PATH. Поскольку специальная переменная $BASH всегда содержит полный путь к исполняемому файлу, который запустил текущую оболочку, exec "$BASH" гарантированно использует тот же исполняемый файл.
Примечание re "..." вокруг $BASH: двойное кавывание гарантирует, что значение переменной используется как есть, без интерпретации Bash; если значение не имеет встроенных пространств или других метасимволов оболочки (что в данном случае маловероятно), вам не нужны только двойные кавычки, но использование их - хорошая привычка формироваться.

Ответ 4

. .bashrc

...

Ответ 5

В зависимости от вашей среды просто введите

bash

также может работать.

Ответ 6

При этом вы не будете даже вводить "source ~/.bashrc":

Включите файл bashrc:

alias rc="vim ~/.bashrc && source ~/.bashrc"

Каждый раз, когда вы хотите отредактировать свой bashrc, просто запустите псевдоним " rc"

Ответ 7

TL; DR

. ~/.bashrc

TMI

. ~/.bashrc

. это BASH ярлык для встроенной команды "source". - Брайан Шоуолтер

source ~/.bashrc

Alternative

exec bash
  • source - это встроенная команда оболочки, которая выполняет содержимое файла, переданного как аргумент, в текущей оболочке.
  • exec команда заменяет оболочку заданной программой...
  • - WhoSayIn

Ответ 8

Тип:

source .bashrc

Ответ 9

Я использую следующую команду в msysgit

. ~/.bashrc

более короткая версия

source ~/.bashrc

Ответ 10

Это также сработает.

cd ~
source .bashrc