Ctrl-S 的重点是什么?

Jef*_*ing 172 terminal keyboard

Ctrl+S停止所有输出到终端,可以用Ctrl+重新启动Q

但是,为什么Ctrl+S首先存在?通过放置该控制序列试图解决什么问题?

god*_*eek 196

早在计算机出现之前,就有电传打字机(又名电传打字机,又名电传打字机)。可以将它们视为与电报大致相同的技术,但是它们带有某种类型的键盘和某种类型的打印机。

因为电传打字机在计算机刚建成时就已经存在,而且当时的计算机只有房间大小,所以电传打字机成为第一台计算机的方便用户界面——输入命令,点击发送按钮,等待一段时间,然后命令的输出被打印到你面前的一张纸上。

软件流控制起源于这个时代——例如,如果打印机不能像电传打字机接收数据一样快地打印,则电传打字机可以向远程端发送一个 XOFF 流控制命令 ( Ctrl+ S) 说“现在停止传输” ,然后可以发送 XON 流控制命令 ( Ctrl+ Q) 到远端说“我已经赶上,请继续”。

并且这种用法在 Unix 中仍然存在,因为现代终端模拟器正在模拟物理终端(如vt100),而它们本身(在某些方面)正在模拟电传打字机。

  • 早在 1987 年,我就让我大学里幸存下来的最后一台电传打字机着火了。将其用作串行打印机,并没有意识到如果强制连续打印 35 页会过热。过热只是闻起来很糟糕,但随后纸张因热量而着火。直到那时他们才告诉我我应该每 2 页左右按一次 Ctrl-S 让它冷却几分钟。 (61认同)
  • 很可能不是“打印到一张纸上”而是“打印到一叠折叠纸上”。 (31认同)
  • 这有助于解释为什么按 CTRL+S 时 [nano mumble-mumbles](http://unix.stackexchange.com/questions/71053/what-does-xoff-ignored-mumble-mumble-error-mean)。 (4认同)
  • 或者一卷穿孔胶带! (3认同)
  • 我不认为 control-S 和 control-Q 最初用于启动和停止计算机的输出,而是用于连接到*其他电传打字机*的纸带阅读器。我认为在分时系统出现之前,人们不会对将电传打字机连接到计算机上产生太大兴趣。否则,计算机花在等待用户键入内容上的任何时间都不是在做有用的事情上花费的时间。 (2认同)
  • 或一卷 8½ʹʹ 纸。 (2认同)

Liv*_*ack 28

它是 VT100 终端等时代的控制字符。这些终端上的滚动功能(如果有)有限,从 CTRL-S 开始,您可以冻结输出以查看当前屏幕上的内容而不会被注销。

您在现代终端中看到的大多数东西都是为了模拟那些旧的终端系统。

  • 启动/停止输出的机械需求出现在人类需要能够阅读它之前! (2认同)

mdp*_*dpc 25

顺便说一句,如果您在屏幕上列出长输出,那么您的阅读速度可能不如计算机发出输出的速度快。在猫(或活动尾巴)上使用 CTRL-S/CTRL-Q 对停止和恢复输出非常有用。

  • `少`就是多。 (31认同)
  • @dotancohen 我更喜欢 `less`,但人们说,虽然 `less` 是 `more`,但 `most` 仍然比 `less` 多! (3认同)
  • @dotancohen:非常有趣。甚至在第一个 Unix 出现四五年后才引入了 `more`(具有 `cat`,[但不是 `cat -v`](http://harmful.cat-v.org/cat-v))被释放。另请注意,在 *** Unix 之前还有其他分时(交互式)操作系统;例如,[RSTS](http://en.wikipedia.org/wiki/RSTS/E)。 (2认同)
  • @VolkerSiegel:也感谢 [most](http://www.jedsoft.org/most/)!正如作者所说:“为什么要少花钱?”。Debian 用户可以`apt-get install most`。 (2认同)

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 所做的最常见的事情是控制纸带阅读器。