Jef*_*ing 172 terminal keyboard
Ctrl+S停止所有输出到终端,可以用Ctrl+重新启动Q。
但是,为什么Ctrl+S首先存在?通过放置该控制序列试图解决什么问题?
god*_*eek 196
早在计算机出现之前,就有电传打字机(又名电传打字机,又名电传打字机)。可以将它们视为与电报大致相同的技术,但是它们带有某种类型的键盘和某种类型的打印机。
因为电传打字机在计算机刚建成时就已经存在,而且当时的计算机只有房间大小,所以电传打字机成为第一台计算机的方便用户界面——输入命令,点击发送按钮,等待一段时间,然后命令的输出被打印到你面前的一张纸上。
软件流控制起源于这个时代——例如,如果打印机不能像电传打字机接收数据一样快地打印,则电传打字机可以向远程端发送一个 XOFF 流控制命令 ( Ctrl+ S) 说“现在停止传输” ,然后可以发送 XON 流控制命令 ( Ctrl+ Q) 到远端说“我已经赶上,请继续”。
并且这种用法在 Unix 中仍然存在,因为现代终端模拟器正在模拟物理终端(如vt100),而它们本身(在某些方面)正在模拟电传打字机。
Liv*_*ack 28
它是 VT100 终端等时代的控制字符。这些终端上的滚动功能(如果有)有限,从 CTRL-S 开始,您可以冻结输出以查看当前屏幕上的内容而不会被注销。
您在现代终端中看到的大多数东西都是为了模拟那些旧的终端系统。
mdp*_*dpc 25
顺便说一句,如果您在屏幕上列出长输出,那么您的阅读速度可能不如计算机发出输出的速度快。在猫(或活动尾巴)上使用 CTRL-S/CTRL-Q 对停止和恢复输出非常有用。
sup*_*cat 19
在带有纸带阅读器的古代电传打字机上,收到控制 Q 将打开纸带阅读器并开始从磁带中发送字符,就像它们是在键盘上输入一样。Control-S 会关闭纸带阅读器。如果考虑到电传打字机最初的目的不是从计算机打印数据,而是从其他电传打字机打印数据,那么“关闭纸带阅读器”如何解释为类似于“请求另一端停止传输”就应该很清楚了。
顺便提一下,control-R 会打开纸带打孔器,这样电传打字机接收到的每个字符(或者,如果启用了本地回声,则在键盘上输入)也会被打到纸带上;control-T 会关闭纸带打孔器。然而,与 control-S 和 control-Q 相关的操作不同,这些操作似乎没有现代等价物。
此外,control-Q/R/S/T 的原始名称是 DC1/DC2/DC3/DC4(“设备控制 1”等)虽然我不确定历史,但这样的命名表明它们最初是旨在触发某种未指定的动作,但人们对 DC1 和 DC3 所做的最常见的事情是控制纸带阅读器。