如何防止 control+d 断开会话?

cwd*_*cwd 26 linux command-line keyboard-shortcuts keyboard

我经常 ssh 到一个 centos 5 盒子。以某种方式映射了它们的键,以便control+d将我从当前的 shell 中注销。如果我被 sudo'ed 用于其他用途,它会让我回到以前的用户。如果我没有 sudo'ed 它只会断开我的连接。我怎样才能避免这种情况发生?我经常使用 control+d 取消 python 解释器,有时我不小心按了不止一次。

Mat*_*Mat 34

IGNOREEOF如果您使用,您正在寻找环境变量bash

IGNOREEOF
Run Code Online (Sandbox Code Playgroud)

控制交互式 shell 在接收到作为唯一输入的 EOF 字符时的操作。如果设置,该值是连续 EOF 字符的数量,必须在 bash 退出之前作为输入行的第一个字符输入。如果变量存在但没有数字值,或者没有值,则默认值为 10。如果不存在,EOF 表示对 shell 的输入结束。

因此export IGNOREEOF=42,您必须按Ctrl+D四十二次才能真正退出您的外壳。

POSIXset也有一个-o ignoreeof设置。因此,请查阅您的 shell 文档以查看您的 shell 是否具有(应该),并检查其确切语义。

  • 我无法抗拒成为学究。`IGNOREEOF` 是 EOF 在最终接受之前被忽略的次数。因此,在上面的示例中,如果您`export IGNOREEOF=42`,则需要按 CONTROL-D 43 次才能退出 - 而不是 42。 (3认同)
  • 我个人觉得这很烦人,所以我没有在任何地方设置它。在尝试_禁用_该行为时发现了这些:) (2认同)