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