我不知道我改变了什么,但如果我在终端上按下Ctrl+a+d
(即同时按下三个键)终端就会被终止。这是打开gnome-terminal
的Ubuntu
并用作zsh
默认登录 shell。
我检查了键盘快捷键gnome-terminal
(在 GUI 上,在 下),并在我的主目录中Edit->Keyboard Shortcuts
搜索了可能触发此不需要的快捷键的语句,但什么也没找到。bindkey
我非常确定这是新行为(过去几天),因为我经常Ctrl-a
在终端上键入内容以转到行首,然后Ctr-d
删除字符,如果我现在这样做,它会触发这个不需要的键盘捷径。
我最近安装了一些系统更新,但如果这些更新更改了快捷方式,我会感到惊讶。目前我不知道为什么会发生这种情况,所以任何帮助将不胜感激。
笔记:这仅发生在终端上。如果我在使用其他应用程序,Ctrl+a+d
则不会触发任何退出命令。
答案1
如果在空行中键入 Ctrl+D,则表示该特定 shell 实例的文件结束 (EOF)。当 shell 收到 EOF 时,它将终止并且终端窗口将关闭。如果同时按下这些键,实际上与 Ctrl+A 然后 Ctrl+D 或反之亦然。
Ctrl-D 是退出 shell/终端窗口、从远程登录会话注销或发出输入结束信号(如果您运行的程序在运行时接受输入)的便捷方法。
答案2
Bash 有一个名为 IGNOREEOF 的内置变量,它可以防止 shell 因意外的 Ctrl+D 而关闭。看:如何防止 control+d 断开会话?