Перезагрузите bash .profile без выхода и снова войдите

81

Можно ли заставить bash перезагрузить файл .profile без выхода и повторного входа?

Мэтти
источник

Ответы:

102

Это должно работать для текущего терминала:

. ~/.profile

.является bashвстроенным и синонимом source, смотрите man bash:

, filename [ arguments ]
исходное имя файла [ arguments ]
     Чтение и выполнение команд из имени файла в текущей среде оболочки (…).

Лукас Стейскал
источник
18
Это будет действовать только в текущем терминале.
энзотиб
@enzotib Есть ли способ обойти это?
Мэтти
14
@Matty: нет, чтобы сделать изменения видимыми для всей графической среды, вы можете только перезапустить сеанс
enzotib
2
Единственная проблема, связанная с этим, заключается в том, что если вы удалите что-либо из пути, это не вступит в силу, пока вы не перезагрузите компьютер
Aras
1
@Aras делает важный момент , который заслуживает расширения: Если что - то удаляется из ~/.profile, что изменения будут не вступят в силу после . ~/.profileперезагрузки. Например, добавьте функцию в ~/.profile:, function externalip () { curl http://ipecho.net/plain; echo; }затем ~/.profile- ЭТО РАБОТАЕТ. Теперь удалите эту функцию из ~/.profile, затем . ~/.profileснова. Функция по-прежнему доступна - только перезапуск (выход и выход) удалит ее.
Симус
13

Если вы не хотите запускать новую оболочку, а выполняете сценарий в текущей оболочке, вы получаете ее:

source script_name.sh

source знак равно .

sourceВстроенный в Bash является синонимом команды оболочки Bourne .(точка).

вежливость - tldp.org

Амей Джа
источник