^@ 键是什么

^@ 键是什么

在终端中输入时^@表示的键是什么?

我的系统收到了这个密钥的垃圾邮件,所以我必须禁用它。

答案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 或换行符。

相关内容