Я использую команду ProxyJump для нескольких сессий ssh, которые я использую ежедневно, а также часто переключаю пользователей на этих сессиях, и необходимость набирать exit
3 или 4 раза подряд не слишком увлекательна.
Мне известно о newline
+ ~
+ .
для завершения сеанса SSH, мне все еще нужно проверить, завершает ли он это по-дружески, как если exit
бы, но как вы выходите из всех сеансов в текущей оболочке с помощью одной команды или ярлыка, чтобы набрать exit
3 или 4 раза в моём случае становится разовой вещью?
~.
просто отключает ваш SSH-клиент (это полезно, например, когда сеть исчезла). Обычно демон SSH распознает это и сигнализирует о своем сеансеSIGHUP
, так что это не совсем то же самое, что обычный выход из оболочки (но это полезно, если вы не можете получить ответ от оболочки).Ответы:
Ctrl- Dвыйдет из оболочки во многих случаях. Это быстрее, чем печатать
exit
Enter. Это все еще не одна команда, чтобы завершить все, но удерживать Ctrlи нажимать Dнесколько раз легче и быстрее. Не уверен, насколько это ценно для вашего варианта использования.Подробно обсуждается здесь .
источник
rm
команду, а затем нажмите CTRL + D, если вы не хотите ее выполнять. Я не вижу такого поведения в ksh.vi
клеммы ввода терминала.Типизация на
~.
самом деле позволяет закрыть все «вложенные» соединения до самого глубокого.Это достигается с помощью дружественного выхода, который вы хотите, при условии, что все ваши снаряды настроены на обработку SIGHUP как грациозной смерти. Bash делает это по умолчанию. Вы можете легко проверить дружественный выход для вашей установки, например, посмотрев,
.bash_history
правильно ли обновляются файлы ваших более глубоких сессий после~.
, или если вы настроили свои bash-es не обновлять .bash_history при выходе, тогда вы можете установитьtrap
на Событие EXIT (или в вашем~/.bash_logout
) с командой, которая записывает что-то куда-нибудь, а затем видит, выполнено ли это.Кроме того, я не уверен, что вы подразумеваете под «выходом из всех сессий в текущей оболочке». Каждый интерактивный bash - это всего лишь один сеанс, и вводимые вами команды всегда идут только в самую глубокую оболочку цепочки ProxyJump. Если вы имели в виду «фоновые задания в текущей оболочке», bash отправляет SIGHUP всем своим заданиям при получении SIGHUP демоном ssh на s
~.
, поэтому такой выход должен быть полностью дружественным, если эти выполняющиеся задания правильно реагируют на SIGHUP.источник