Używam polecenia ProxyJump do wielu sesji ssh, z których korzystam codziennie, a także często zmieniam użytkowników na te sesje, a pisanie exit
3 lub 4 razy z rzędu nie jest zbyt zabawne.
Wiem, że newline
+ ~
+ .
kończy sesję ssh, wciąż muszę sprawdzić, czy kończy się ona polubownie, jak exit
by to zrobiła, ale jak wyjść z wszystkich sesji w bieżącej powłoce za pomocą jednego polecenia lub skrótu, tak że wpisujesz exit
3 lub 4 razy w moim przypadku staje się rzeczą jednorazową?
~.
po prostu odłącza klienta SSH (jest to przydatne na przykład, gdy sieć zniknęła). Zwykle demon SSH rozpoznaje to i sygnalizuje swoją sesjęSIGHUP
, więc nie jest to tak samo jak normalne wyjście z powłoki (ale jest to przydatne, jeśli nie można uzyskać odpowiedzi z powłoki).Odpowiedzi:
Ctrl- Dw wielu przypadkach opuści powłokę. Jest szybszy niż pisanie
exit
Enter. Nadal nie jest to jedno polecenie, aby zakończyć wszystko, ale kilkakrotne przytrzymanie Ctrli trafienie Djest łatwiejsze i szybsze. Nie jestem pewien, jak cenne jest to dla twojego przypadku użycia.Omówiono szczegółowo tutaj .
źródło
rm
polecenia, a następnie naciśnij CTRL + D, jeśli nie chcesz go wykonać. Nie widzę tego zachowania w ksh.vi
zacisków wejściowych terminala.W
~.
rzeczywistości pisanie polega na zamykaniu wszystkich „zagnieżdżonych” połączeń na najgłębsze.Czyni to z polubownym wyjściem, o ile chcesz, dopóki wszystkie twoje pociski są skonfigurowane do obsługi SIGHUP jako wdzięcznej śmierci. Bash robi to domyślnie. Można łatwo sprawdzić wyjście polubownego do zestawu podjęte przez np widząc, czy
.bash_history
pliki z głębszych sesjach się prawidłowo aktualizowane po~.
, lub w przypadku ustawienia w bash-es nie do aktualizacji .bash_history po wyjściu następnie można ustawićtrap
na Zdarzenie EXIT (lub w twoim~/.bash_logout
) z poleceniem, które gdzieś zapisuje, a później sprawdza, czy zostało wykonane.Poza tym nie jestem pewien, co rozumiesz przez „zamknij wszystkie sesje w bieżącej powłoce”. Każde interaktywne bash to tylko jedna sesja, a wpisywane polecenia zawsze idą tylko do najgłębszej powłoki łańcucha ProxyJump. Jeśli miałeś na myśli „zadania w tle w bieżącej powłoce”, bash wysyła SIGHUP do wszystkich swoich zadań po otrzymaniu SIGHUP przez demona ssh po
~.
, dlatego takie wyjście powinno być w pełni polubowne, jeśli te uruchomione zadania odpowiednio zareagują na SIGHUP.źródło