Полностью перезапустите Bash


18

Есть ли способ , чтобы полностью рестарт Bash и перезаряжания .bashrcи .profileи тому подобное? Я хотел бы убедиться, что мои изменения работали правильно после редактирования этих файлов.

Ответы:


32

Пусть он заменит себя собой.

exec bash -l

Обратите внимание, что это не повлияет на такие вещи, как cwd или экспортируемые переменные.


Хорошо, но я особенно хотел бы сделать это для того, чтобы проверить и PATHустановить, настроен ли мой уровень так , как я хочу, или мой PS1и т. Д.
Нафтули Кей,

1
Извлеките execи вы получите оболочку, которая доставляет нужные вам файлы. Затем, exitкогда вы закончите проверку.
Arcege

@TK: любые переменные, которые вы назначаете, будут иметь приоритет над переменными , оставшимися от предыдущей оболочки.
Игнасио Васкес-Абрамс

Так что это будет работать для изменения моего приглашения Bash? То есть он будет перезагружать мой bash каждый раз, когда я его запускаю?
Нафтули Кей

Пока вы устанавливаете $PS1файлы запуска bash, да.
Игнасио Васкес-Абрамс

9

Я настоятельно рекомендую войти в отдельное окно / экран. Таким образом, у вас все еще есть рабочий сеанс, если что-то пойдет не так с вашими изменениями в файлах запуска. Также вы обязательно должны иметь чистую окружающую среду.

Причина: я видел слишком много людей, блокирующих себя из системы из-за простой опечатки в их .profile (или такой).


+10, чистая оболочка, где вы можете изменить правки, необходима.
Сардатрион - Восстановить Монику

Я в DE, так что не должно быть так плохо, Баухаус, да, будь осторожен.
Нафтули Кей

3

Если ваша цель просто снова прочитать измененные файлы, вам не нужно перезапускать его. Вы можете просто получить его.

source filename

или

. filename # notice the dot

Обратите внимание, что это не даст вам «чистого состояния» в том смысле, что оно не сбросит все установленные переменные или определенные функции ...


2
su -l yourOwnUserName

Откроется новая оболочка для yourOwnUserNameпользователя со всеми перезагруженными настройками. Это не зависит от оболочки, так как относится к системным настройкам, а не к вашей конкретной оболочке. Он также загружает некоторые системные настройки, которые bash -lне (например, группы пользователей).


Важное примечание: «новая оболочка» здесь означает оболочку в существующей оболочке, поэтому вы используете только вложенные оболочки, а не заменяете свою первоначальную. Принятый ответ делает это правильно.
underscore_d
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.