如何查看我的键盘发送的各种控制字符
How to see what various control characters are as sent by my keyboard
通常我会使用 xxd
来查看我输入的字符转换为十六进制。例如:
$ xxd
hello
00000000: 0a68 656c 6c6f 0a .hello.
但是,我将如何为以下对象做同样的事情:
- Ctrlz
- Ctrld
- Ctrlc
似乎当我在 xxd
程序之外 'does something' 输入这三个中的任何一个时,而不是被识别为我想查看其十六进制代码的键盘输入。那么我如何才能看到我的键盘为所有字符组合发送的那些值?
在命令行控制台中,您可以先输入 Ctrl-V.[=17=,然后输入 Ctrl-Z 等代码]
例如,如果您输入以下内容:
xxd <<<'Ctrl-VCtrl-A'
然后您应该看到以下输出:
00000000: 010a ..
(我相信您已经意识到,01
对应于 ^A
,0a
是其后的换行符)
在 ANSI 终端上,您也可以用这种方式输入 escape codes。例如,输入:
echo 'Ctrl-VEsc[1;31mHelloCtrl-VEsc[0m world'
以鲜红色打印一个单词,以默认颜色打印另一个单词。
通常我会使用 xxd
来查看我输入的字符转换为十六进制。例如:
$ xxd
hello
00000000: 0a68 656c 6c6f 0a .hello.
但是,我将如何为以下对象做同样的事情:
- Ctrlz
- Ctrld
- Ctrlc
似乎当我在 xxd
程序之外 'does something' 输入这三个中的任何一个时,而不是被识别为我想查看其十六进制代码的键盘输入。那么我如何才能看到我的键盘为所有字符组合发送的那些值?
在命令行控制台中,您可以先输入 Ctrl-V.[=17=,然后输入 Ctrl-Z 等代码]
例如,如果您输入以下内容:
xxd <<<'Ctrl-VCtrl-A'
然后您应该看到以下输出:
00000000: 010a ..
(我相信您已经意识到,01
对应于 ^A
,0a
是其后的换行符)
在 ANSI 终端上,您也可以用这种方式输入 escape codes。例如,输入:
echo 'Ctrl-VEsc[1;31mHelloCtrl-VEsc[0m world'
以鲜红色打印一个单词,以默认颜色打印另一个单词。