在终端中输入时^@表示的键是什么?
我的系统收到了这个密钥的垃圾邮件,所以我必须禁用它。
答案1
^@
不是键,它是控制字符的表示。在这种情况下,NUL 字符即字节值为 0 的字符。
如果 n 是 X 的字节值,则 的字节值^X
将为n ^ 0x40
。
您可以使用以下方式告诉字节值X
:
printf X | od -An -tu1
或(对于单字节字符):
printf '%d\n' "'X"
所以在这里:
$ printf '%s\n' "'@"
64
$ echo "$((64 ^ 0x40))"
0
为了^?
:
$ printf '%s\n' "'?"
63
$ echo "$((63 ^ 0x40))"
127
(这是 DEL 字符)。
根据终端的不同,您可能可以通过按Ctrl+Space或输入Ctrl+@。在 Debian 上的 xterm 中的英国键盘上,我打开了它Ctrl+2(shift 2"
在英国键盘上,但 @ 在美国键盘上)。
终端和终端仿真器会忽略 NUL 字符。它是填充在过去,当没有流量控制时,应用程序会使用该字符来给出两个其他控制字符之间的终端时间。
^@
您会在类似应用程序的终端中看到vim
,选择它作为 NUL 的视觉表示。您通常还会将其视为回声您在输入时输入的 NUL 字符。当终端行规则处于icanon
模式并且echoctl
参数已启用时(通常默认情况下处于启用状态,请参阅 参考资料stty -a
),或者由应用程序中的行编辑器(如readline
由 所使用bash
),由终端驱动程序本身执行。
答案2
即字符 0,ctrl-@。例如。 Ctrl-A 是字符 1,Ctrl-M 是字符 13 或换行符。