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

Когда я вношу некоторые изменения в поведение оболочки / 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

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