Às vezes, saio inadvertidamente de uma sessão do Terminal (geralmente porque acho que estou conectado a um sistema remoto, quando não estou), então chego a esse ponto:
Como posso reiniciar a sessão neste momento? Não quero fechar a janela ou a guia porque tenho várias guias configuradas para o meu fluxo de trabalho normal; portanto, só quero que a sessão na guia atual volte a funcionar (ou seja, volte para um prompt do bash).
A única solução que encontrei até agora é sair do Terminal completamente e abri-lo novamente, mas isso está longe de ser ideal, pois obviamente interrompe tudo o que estou fazendo em outras janelas / guias do Terminal.
^t 8
por exemplo) para um determinado contexto, em vez de contar visualmente em qual guia clicar ou (ou quantas ctrl-pgup devem ser atingidas) .cd
editados no código-fonte quando estou trabalhando no código, para que isso corresponda ao seu uso.ssh
algum lugar. Acostumei-me a usar a tela e a utilizá-la localmente e também em sessões remotas. Pelo que entendi, se você ainda não temscreen
memória muscular, aprenda tmux porque a tela é antiga e suja. Provavelmente eu poderia alternar paratmux
e configurá-lo para usar as mesmas teclas de atalho que eu usoscreen
, mas a tela ainda funciona bem para mim.Respostas:
Neste ponto, não há como recuperar a guia. A sessão do terminal está fechada e não possui mais um TTY. Não há como referenciar a guia para fazer algo inteligente. Eu sugiro adicionar essa função ao seu .bashrc ou .profile para que você não tenha o problema no futuro:
ou, para aqueles de nós que usam o Z Shell (adicione-o ao seu .zshrc):
É uma barreira agradável entre você e esse comando de saída irritante! Deus sabe que eu fiz a mesma coisa muitas vezes no passado.
fonte
-t 5
opção), o comando de leitura falhará, o que aciona o comando de saída que o segue.exit
usar o alias se estiver usando o Bash. Você pode colocar seu script~/.bash_logout
..bash_logout
?logout
e definirIGNOREEOF
maior que 1 (ou religar ^ D).O roteiro de William T Froggard não fez o que eu precisava, porque geralmente a única maneira de entrar nessa situação é via ^ D ( ctrl+ D), e a redefinição
exit
não fez nada para essa situação. Para mim, a sugestão de cenário de Dennis WilliamsonIGNOREEOF
foi suficiente. Acabei de adicionar:para o meu
~/.bashrc
arquivo e agora (se eu estiver no shell de nível superior e sair do terminal) o primeiro ^ D gera a resposta:Se eu digitar ^ D novamente imediatamente, o shell será encerrado, portanto, sair quando quiser ainda será fácil, mas agora um único ^ D me dará um aviso. (Se desejar, você pode definir
IGNOREEOF
um número maior para exigir ^ Ds consecutivos adicionais.)Também é útil, se eu estiver em uma subcasca, o primeiro ^ D gera a resposta:
Mais uma vez, um ^ D extra me tirará do ar, e agora eu posso dizer a diferença entre sair de um sub shell e sair do shell de nível superior.
fonte