Как повторно инициализировать окно терминала вместо того, чтобы закрывать его и запускать новое?

Когда я делаю некоторые изменения в поведении shell / bash, такие как настройка псевдонима, есть ли быстрая команда для повторной инициализации окна терминала вместо закрытия и открытия нового окна?

49
задан 21 August 2018 в 18:34

7 ответов

Некоторое дополнение я нашел в man-странице из команды reset / tset

tset reset инициализации терминала

: reset

Tset инициализирует терминалы. Сначала Tset определяет тип используемого вами терминала. Это определение выполняется следующим образом с использованием первого найденного типа терминала.

кажется, что преимущество заключается в том, что он не зависит от используемой оболочки. здесь также работает с рыбой.

Итак, чтобы переинициализировать любой терминал, просто сделайте -

$ tset

ИЛИ

$ reset
0
ответ дан 21 August 2018 в 18:34

Вы должны заменить работающее приложение / оболочку новым экземпляром. Например. если вы используете bash в качестве предпочитаемого типа оболочки, введите следующую строку в командной строке ( $ является заполнителем для начала вашей командной строки):

> $ exec bash

application / shell заменяется новым экземпляром bash, например, с нуля. Все ваши предыдущие модификации исчезли.

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

0
ответ дан 21 August 2018 в 18:34

Ваша оболочка является исполняемым файлом, который вы можете вызвать. Так что, если вы используете bash, вы можете позвонить bash, а если вы используете что-то еще, например zsh, вы можете просто ввести zsh

0
ответ дан 21 August 2018 в 18:34

Дополнительная опция для exec bash заключается в том, что если вы изменили .profile (или .bash_profile), вы можете выполнить

$ exec bash --login

, что также будет читать ваш профиль снова. Не мешало бы добавить опцию -i, чтобы явно сказать bash, что это интерактивная оболочка, но обычно она сама это понимает.

0
ответ дан 21 August 2018 в 18:34

Если вы хотите перезагрузить конфигурацию .bashrc, то:

source ~/.bashrc

Для меньшего набора текста вы можете заменить source точкой: . ~/.bashrc

0
ответ дан 21 August 2018 в 18:34

Используйте 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 не устанавливается после этого.

0
ответ дан 21 August 2018 в 18:34

Используйте функции терминала очистить или экран .

0
ответ дан 13 April 2020 в 14:32

Другие вопросы по тегам:

Похожие вопросы: