J'utilise une commande ProxyJump pour un certain nombre de sessions ssh que j'utilise quotidiennement, et je change aussi beaucoup d'utilisateurs sur ces sessions et devoir taper exit
3 ou 4 fois de suite n'est pas trop amusant.
Je suis au courant de newline
+ ~
+ .
pour terminer une session ssh, je dois encore vérifier s'il la termine à l'amiable comme le exit
ferait, mais comment quitter toutes les sessions dans le shell actuel avec une seule commande ou un raccourci de sorte que taper exit
3 ou 4 fois dans mon cas devient une chose unique?
~.
déconnecte simplement votre client SSH (c'est utile lorsque le réseau a disparu, par exemple). Normalement, le démon SSH reconnaîtra cela et signalera sa session avecSIGHUP
, donc ce n'est pas tout à fait la même chose que de quitter le shell normalement (mais c'est utile si vous ne pouvez obtenir aucune réponse du shell).Réponses:
Ctrl- Dquittera un shell dans de nombreux cas. C'est plus rapide que de taper
exit
Enter. Ce n'est toujours pas une seule commande pour tout terminer, mais maintenir Ctrlet frapper Dplusieurs fois est plus facile et plus rapide. Je ne sais pas à quel point cela est utile pour votre cas d'utilisation.Discuté en détail ici .
la source
rm
commande, puis appuyez sur CTRL + D si vous ne souhaitez pas l'exécuter. Je ne vois pas ce comportement dans ksh.vi
liaisons d'entrée du terminal.Taper
~.
fait en fait l'astuce de fermer toutes les connexions "imbriquées" jusqu'au plus profond.Il le fait avec la sortie amicale que vous souhaitez tant que tous vos obus sont configurés pour gérer SIGHUP comme une mort gracieuse. Bash le fait par défaut. Vous pouvez facilement vérifier l'exit à l'amiable pour votre configuration en voyant par exemple si les
.bash_history
fichiers de vos sessions plus profondes sont correctement mis à jour après le~.
, ou si vous définissez vos bash-es pour ne pas mettre à jour .bash_history à la sortie alors vous pouvez définir untrap
sur le Événement EXIT (ou dans votre~/.bash_logout
) avec une commande qui écrit quelque chose quelque part et voir plus tard s'il a été exécuté.De plus, je ne suis pas sûr de ce que vous entendez par «quitter toutes les sessions dans le shell actuel». Chaque bash interactif n'est qu'une session, et les commandes que vous tapez ne vont toujours qu'au shell le plus profond de la chaîne ProxyJump. Si vous vouliez dire "les travaux d'arrière-plan dans le shell actuel", bash envoie SIGHUP à tous ses travaux lors de la réception de SIGHUP par le démon ssh sur le
~.
, donc une telle sortie devrait être entièrement amicale si ces travaux en cours d'exécution réagissent correctement à un SIGHUP.la source