Eu uso um comando ProxyJump para várias sessões ssh que uso diariamente, e também alterno muito os usuários nessas sessões e ter que digitar exit
3 ou 4 vezes seguidas não é muito divertido.
Estou ciente de newline
+ ~
+ .
para encerrar uma sessão ssh, ainda tenho que verificar se ela termina amigavelmente como exit
faria, mas como você sai de todas as sessões no shell atual com um único comando ou atalho, como digitar exit
3 ou 4 vezes no meu caso se torna uma coisa única?
~.
apenas desconecta seu cliente SSH (é útil quando a rede desapareceu, por exemplo). Normalmente, o daemon SSH reconhecerá isso e sinalizará sua sessãoSIGHUP
, portanto, não é o mesmo que sair do shell normalmente (mas é útil se você não conseguir obter nenhuma resposta do shell).Respostas:
Ctrl- Dsairá de um shell em muitos casos. É mais rápido que digitar
exit
Enter. Ainda não é um único comando para terminar tudo, mas segurar Ctrle bater Dvárias vezes é mais fácil e rápido. Não tenho certeza do quanto isso é valioso para o seu caso de uso.Discutido em detalhes aqui .
fonte
rm
comando e pressione CTRL + D se não quiser executá-lo. Não vejo esse comportamento no ksh.vi
ligações de entrada do terminal.Digitar
~.
realmente faz o truque de fechar todas as conexões "aninhadas" até o mais profundo.Faz isso com a saída amigável que você deseja, desde que todas as suas conchas estejam configuradas para lidar com o SIGHUP como uma morte graciosa. O Bash faz isso por padrão. Pode facilmente verificar a saída amigável para o seu set-up por exemplo, ver se os
.bash_history
arquivos de suas sessões mais profundas obter devidamente atualizado após a~.
, ou se você definir suas Bash-es não atualização .bash_history ao sair, então você pode definir umtrap
na Evento EXIT (ou no seu~/.bash_logout
) com um comando que grava algo em algum lugar e depois vê se foi executado.Além disso, não sei o que você quer dizer com "sair de todas as sessões no shell atual". Cada bash interativo é apenas uma sessão, e os comandos que você digita vão sempre apenas para o shell mais profundo da cadeia ProxyJump. Se você quis dizer "os trabalhos em segundo plano no shell atual", o bash envia SIGHUP para todos os seus trabalhos ao receber o SIGHUP pelo daemon ssh
~.
, portanto, essa saída deve ser totalmente amigável se os trabalhos em execução reagirem adequadamente a um SIGHUP.fonte