A veces salgo inadvertidamente de una sesión de Terminal (generalmente porque creo que estoy conectado a un sistema remoto, cuando no lo estoy), así que llego a este punto:
¿Cómo puedo reiniciar la sesión en este momento? No quiero cerrar la ventana o pestaña porque tengo un montón de pestañas configuradas para mi flujo de trabajo normal, por lo que solo quiero que la sesión en la pestaña actual vuelva a funcionar (es decir, volver a un indicador de bash).
La única solución que he encontrado hasta ahora es salir de Terminal por completo y abrirlo nuevamente, pero eso está lejos de ser ideal, ya que obviamente interrumpe cualquier otra cosa que esté haciendo en otras ventanas / pestañas de Terminal.
^t 8
por ejemplo) para un contexto dado, en lugar de contar visualmente en qué pestaña hacer clic o (o cuántos ctrl-pgup presionar) .cd
editados al código fuente cuando estoy trabajando en el código, de modo que coincida con su uso.ssh
ing. Me acabo de acostumbrar a usar la pantalla, y la uso localmente así como en sesiones remotas. Según tengo entendido, si aún no tienesscreen
memoria muscular, aprende tmux porque la pantalla es vieja y crujiente. Probablemente podría cambiartmux
y configurarlo para usar las mismas combinaciones de teclas que utilizoscreen
, pero la pantalla todavía funciona bien para mí.Respuestas:
En este punto, no hay forma de recuperar la pestaña. La sesión de terminal está cerrada y ya no tiene un TTY. Simplemente no hay forma de hacer referencia a la pestaña para hacer algo inteligente. Sugeriría agregar esta función a su .bashrc o .profile para que no tenga el problema en el futuro:
o, para aquellos de nosotros que usamos Z Shell (agrégalo a tu .zshrc)
¡Es una pequeña barrera entre tú y ese molesto comando de salida! Dios sabe que he hecho lo mismo muchas veces en el pasado.
fuente
-t 5
opción), el comando de lectura fallará, lo que activa el comando de salida que lo sigue.exit
si estás usando Bash. Puedes poner tu guión~/.bash_logout
..bash_logout
.logout
y establecerIGNOREEOF
mayor que 1 (o volver a vincular ^ D).El guión de William T Froggard no hizo lo que necesitaba, porque generalmente la única forma en que me meto en esta situación es a través de ^ D ( ctrl+ D), y la redefinición
exit
no hizo nada para esa situación. Para mí, la sugerencia de configuración de Dennis WilliamsonIGNOREEOF
fue suficiente. Acabo de agregar:a mi
~/.bashrc
archivo y ahora (si estoy en el shell de nivel superior y saldría del terminal) el primer ^ D genera la respuesta:Si escribo ^ D de nuevo de inmediato, el shell se cierra, por lo que salir cuando quiero todavía es fácil, pero ahora un solo ^ D me dará una advertencia. (Si lo desea, puede establecer
IGNOREEOF
un número más alto para requerir ^ D's consecutivos adicionales).También es útil, si estoy en un sub-shell, el primer ^ D genera la respuesta:
Una vez más, un ^ D adicional me sacará, y ahora puedo notar la diferencia entre salir de un shell secundario y salir del shell de nivel superior.
fuente