如何在 GNU 屏幕上禁用组合键Ctrl+ ?C实际上我必须习惯它,但我出于习惯而按Ctrl+C而不是Ctrl++ 。AD
答案1
现在我自己找到了答案。说明
defscrollback 30000
bindkey "^C" echo 'Blocked. Please use [Ctrl]+[A] + [Ctrl]+[Enter] + [Y]'
bindkey "^D" echo 'Blocked. Please use [Ctrl]+[A] + [Ctrl]+[Enter] + [Y]'
bind "^M" quit
在文件中
~/.screenrc
导致Cc只执行echo
命令,不再发送中断。相反,您可以使用^M
或Ctrl+停止屏幕Enter。因为我使用bind
(与bindkey
)不同,所以你必须先按 Ca。确认提示可以通过 进行确认Y。该解决方案的优点是我不必更改实际的 Java 或 Python 程序。请记住,必须重新启动正在运行的屏幕会话才能读取新~/.screenrc
文件。 (此路径取决于用户,例如/root/.screenrc
或/home/user/.screenrc
。)
有用的网址:
- 文档:http://web.mit.edu/gnu/doc/html/screen_13.html
- 找到您自己的组合键:https://unix.stackexchange.com/a/116588/239596
测试用
- 屏幕版本 4.01.00devel (GNU) 2006 年 5 月 2 日
- Ubuntu 14.04.5 LTS
- MobaXterm v10.9 内部版本 3656 (Windows)
答案2
Ctrl+CINT
向当前位于前台的进程发送(中断)信号。这是一个能够发送的重要信号,因此最好的办法是学会不要错误地按下该组合键。
你能还可以重新映射该组合键,以便您有另一个发送INT
信号的控制序列。例如,您可以Ctrl+G使用 shell 命令做同样的事情
stty intr ^G
然后,组合Ctrl+C键将仅发送 ASCII 代码 3 的字符。
同样,只要学会正确使用,问题可能就不那么大了Ctrl+C。
答案3
您可以通过使用日志记录首先避免此问题,如下所示:
- 创建屏幕时,使用以下命令生成日志文件:
screen -L -Logfile file_name.log
- 现在,要检查屏幕,请不要恢复它;而是以交互方式读取日志文件一这两个命令的:
tail -f -n 20 file_name.log
watch tail file_name.log
希望这可以帮助。