Min*_*Max 5 linux terminal-emulator tty stty
Linux 虚拟终端 (tty) 是VT102 -虚拟终端子系统源的仿真。
真正的VT100(几乎与VT102相同)具有以下行为(我想):
ESC[0;31m
,这个序列到计算机,回显,VT102接收到这个,解析并应用。没有其他方法可以更改终端字体颜色(在LINE模式下)。我不确定VT102是否有不同的字体颜色,但这是一个例子。图片来自手册:
摘自手册:
线路/本地
LINE/LOCAL 功能允许操作员轻松地将终端置于在线或 LOCAL(离线)状态。当终端在线时(ON-LINE 指示灯亮起),所有在键盘上输入的字符都会直接发送到计算机,并且来自计算机的消息会显示在屏幕上。在LOCAL状态下(LOCAL指示灯亮),终端与电脑断电;消息不会发送到计算机或从计算机接收;键盘上输入的字符直接在屏幕上回显。
资料来源:VT100 系列视频终端技术手册,第三版,1982 年 7 月。
为什么 Linux 的tty
行为方式不同?
我把它bash
置于睡眠模式,所以它不会干扰,然后输入Esc[0;31m
并获得纯文本,颜色没有改变 - 所以,转义序列不起作用。
几年前我问过类似的问题 -为什么我不能从键盘发送转义序列,但可以从另一个 tty 发送?,但现在我获得了有关VT102 Linux 子系统的知识,并想了解它为什么以这种方式工作 - 在这方面与真正的硬件终端不同。
首先,这个问题是在Retrocomputing上提出的,但社区发现它更适合这个网站。但我在评论部分得到了答案,所以复制到这里:
Linux 虚拟控制台以联机模式模拟连接到 Linux(串行)tty 设备的(某种)VT102 终端。Linux tty 驱动程序通常不会回显转义控制字符,而是回显^[。如果您不希望 tty 驱动程序执行此操作,请使用stty -ctlecho。此外,真正的 VT102 终端不支持颜色,它无论如何都可以与 Linux 虚拟控制台一起使用,因为它并不真正兼容 VT102。
我已经尝试过,stty -ctlecho
它几乎按预期工作 - 只有一个子问题 - 真正的VT102在人按下并开始输入转义序列后也没有显示字符ESC,所以人是以盲方式输入的?