%20.png)
A menudo inicio sesión en varias sesiones SSH a la vez. Para cerrar sesión en varias sesiones, presiono CTRL+ d, hasta volver a mi máquina local.
Sin embargo, de vez en cuando lo presiono demasiadas veces y mi terminal se cierra.
¿Hay alguna manera de hacer que CTRL+ dno pueda cerrar mi terminal?
Estoy usando Terminator como mi emulador de terminal.
Respuesta1
También puedes desactivar eof en general en bash:
set -o ignoreeof
Respuesta2
Puedes usar la IGNOREEOF
variable de entorno en bash. Entonces export IGNOREEOF=42
tendrás que presionar Ctrl+D
cuarenta y dos veces antes de que salga de tu shell.
POSIX también set
tiene una -o ignoreeof
configuración.
Respuesta3
El carácter Ctrl-D EOF lo interpreta el shell, en lugar de hacerlo específicamente el emulador de terminal. Otras respuestas han cubierto la configuración de bash, aunque otros shells son diferentes.
Para C-shells (por ejemplo, tcsh), puede agregarlo a su archivo tcshrc:
# Prevent accidental logouts completely
set ignoreeof
# Just prevent the first two, and allow the third
set ignoreeof=3
Para las conchas de pescado, el comportamiento Ctrl-D se controla mediante la combinación de teclas. La configuración predeterminada es delete-or-exit
, por lo que puede configurar la combinación de teclas para \cd
que delete-char
solo admita la eliminación.
Más detalles están en elProblema de pescado en Github(por ejemplo, en versiones anteriores a la 3.0 es necesario agregarlo bind
a una función llamada fish_user_key_bindings
, después de la 3.0 puedes colocarlo en ~/.config/fish/config.fish
) pero en resumen:
bind \cd delete-char # Don't exit on accidental Ctrl-D
bind \cd\cd\cd delete-or-exit # Exit on the third one