
在 OS XI 的终端提示符下输入echo $'\ec'
ti 会清除控制台。不过我不知道为什么会这样。它在做什么?
我猜这也适用于其他版本的 Linux。有人能解释一下吗?
答案1
\e
是 ESC 字符 (0x1B)。这被称为“转义序列”。
这里有完整的清单在互联网上为 VT100 或 ANSI 终端,您可以查看它来了解它们的工作原理。
仅供参考,您可以用 做同样的事情printf "\x1bc\n"
,或者通过省略最后的 \n 来完全清除屏幕。
答案2
终端通常本身没有 API,因此终端驱动程序会监听发送到终端的特定字符序列,并根据收到的序列采取行动。该^[c
序列会导致终端被清除,并且只是众多此类序列之一。
答案3
特定序列发送为
ESC c
(转义字符后跟c
)。这恰好是 VT100 的硬件重置功能。在真实终端上,这会断开您的连接。终端仿真器(您更可能正在使用)只会将终端重置为其默认状态,顺便清除显示。由于它们通常模拟(模仿)VT100,因此开始阅读的合适地方是 VT100 的文档:
- RIS——重置为初始状态(VT100 实际上很模糊)
- 4.18.2 硬终端复位(RIS)(VT220 手册很有用)
关于“vtansi”链接,该链接已在常见问题解答中提到好几年了:如何使用 VT100 获取颜色?