我经常同时登录多个 SSH 会话。要从多个会话注销,我按CTRL+ d,直到回到本地计算机。
但是,有时我按太多次,我的终端就会退出。
有没有办法让CTRL+d无法关闭我的终端?
我正在使用终结者作为我的终端模拟器。
答案1
您还可以在 bash 中禁用 eof:
set -o ignoreeof
答案2
您可以IGNOREEOF
在 bash 中使用环境变量。因此,在它真正退出 shell 之前export IGNOREEOF=42
,您必须按Ctrl+D
四十二次。
POSIX也set
有一个-o ignoreeof
设置。
答案3
Ctrl-D EOF 字符由 shell 解释,而不是由终端仿真器专门解释。其他答案已经涵盖了 bash 设置,尽管其他 shell 有所不同。
对于 C-shell(例如 tcsh),您可以将其添加到 tcshrc 文件中:
# Prevent accidental logouts completely
set ignoreeof
# Just prevent the first two, and allow the third
set ignoreeof=3
对于 Fish shell,Ctrl-D 行为由键绑定控制。默认设置为delete-or-exit
,因此您可以将 的键绑定设置为\cd
仅delete-char
支持删除。
更多详细信息请参见鱼Github问题(例如,在3.0之前的版本中,您需要将 添加bind
到名为 的函数中fish_user_key_bindings
,在3.0之后,您可以将其放入 中~/.config/fish/config.fish
)但总结一下:
bind \cd delete-char # Don't exit on accidental Ctrl-D
bind \cd\cd\cd delete-or-exit # Exit on the third one