Когда я вношу некоторые изменения в поведение оболочки / bash, например, устанавливаю псевдоним, есть ли быстрая команда для повторной инициализации окна терминала вместо закрытия и открытия нового окна?
Если вы имеете в виду перезагрузку вашей конфигурации .bashrc, то:
source ~/.bashrc
Для уменьшения объема ввода текста вы можете заменить source
с точкой: . ~/.bashrc
Некоторое дополнение, которое я нашел на справочной странице из команды reset/tset
инициализация терминала сброса tset
команда: reset
Tset инициализирует терминалы. Tset сначала определяет тип терминала, который вы используете. Это определение выполняется следующим образом, используя первый найденный тип терминала.
преимущество, по-видимому, заключается в том, что он не зависит от используемой оболочки. здесь также работает с рыбой.
Итак, чтобы повторно инициализировать любой терминал, просто сделайте-
$ tset
операционная
$ reset
Дополнительная опция к exec bash
это если бы вы изменили свой .profile
(или .bash_profile
), вы можете сделать
$ exec bash --login
Это также позволит еще раз прочитать ваш профиль. Не мешало бы добавить -i
также можно явно указать bash, что это интерактивная оболочка, но обычно она может сама разобраться в этом.
Ты должен заменять запущенное приложение / оболочка с новым экземпляром. Например, если вы используете bash
в качестве предпочитаемой оболочки введите следующую строку в командной строке ($ является заполнителем для начала вашей командной строки):
> $ exec bash
Запущенное приложение/оболочка заменяется новым экземпляром bash
как будто начинаешь с нуля. Все ваши предыдущие изменения исчезли.
Примечание: Не забывайте, что ваше терминальное приложение может быть перепрограммировано. Вы должны сбросить свое терминальное приложение вручную.
Воспользуйся exec sudo --login --user $USER
.
Если вы также хотите, чтобы ранее введенные команды были отключены (полный сброс терминала), объедините его с reset
как reset; exec sudo --login --user $USER
.
Чтобы сохранить и текущий рабочий каталог, используйте следующую функцию:
reinit(){ reset exec sudo --login --user "$USER" /bin/sh -c "cd '$PWD'; exec '$SHELL' -l"}
В Интернете есть много ответов, но большинство из них на самом деле не работают. Простой способ тестирования - установить export SOMEVAR=42
затем выполните команду предполагаемого сброса и выполните echo $SOMEVAR
. Если это 42, значит, среда не была сброшена.
Существует также exec -c bash -l
или exec env -i bash -l
, но они сломаны, каким-то образом переменная $HOME не устанавливается после этого.
ваша оболочка - это исполняемый файл, который вы можете вызвать. Так что, если вы используете bash, вы можете вызвать bash
и если вы используете что-то другое, например zsh, вы можете просто ввести zsh