Bin*_*abu -2 keyboard-shortcuts keyboard-layout
在终端中键入时 ^@ 表示的键是什么?
我的系统被这个密钥发送垃圾邮件,所以我必须禁用它。
^@不是键,它是控制字符的表示。在这种情况下,NUL 字符,即字节值为 0 的字符。
如果 n 是 X 的字节值,则 的字节值^X将为n ^ 0x40。
您可以通过以下方式判断字节值X:
printf X | od -An -tu1
Run Code Online (Sandbox Code Playgroud)
或(对于单字节字符):
printf '%d\n' "'X"
Run Code Online (Sandbox Code Playgroud)
所以在这里:
$ printf '%s\n' "'@"
64
$ echo "$((64 ^ 0x40))"
0
Run Code Online (Sandbox Code Playgroud)
对于^?:
$ printf '%s\n' "'?"
63
$ echo "$((63 ^ 0x40))"
127
Run Code Online (Sandbox Code Playgroud)
(这是 DEL 字符)。
根据终端的不同,您可以通过按Ctrl+Space或来输入它Ctrl+@。在 Debian 上的 xterm 中的英国键盘上,我打开了它Ctrl+2(shift 2"在英国键盘上,但 @ 在美国键盘上)。
终端和终端仿真器会忽略 NUL 字符。这是一个填充字符,在过去,应用程序会使用它来在没有流量控制时让两个其他控制字符之间的终端时间。
您会^@在类似应用程序的终端中看到,vim选择它作为 NUL 的可视化表示。您通常还会将其视为您在输入中输入的 NUL 字符的回显。当终端线路规则处于icanon模式并且echoctl参数被启用(通常默认情况下,请参阅 参考资料stty -a)时,由终端驱动程序本身或由应用程序中的线路编辑器(如readline由 使用bash)。