为什么使用扬抑符/插入符号作为 Ctrl 的符号?

为什么使用扬抑符/插入符号作为 Ctrl 的符号?

我很久以前就开始使用 Linux 控制台,但我从未质疑过自己关于扬抑符又名脱字符号 ( ^) 的问题。我想问一下为什么用它来代替这个词Ctrl

前几天我在使用 Nano 时想到了这个问题,我也在互联网上搜索是否有一些答案,但我发现的只是关于“它是什么”和“它代表什么”的问题。

有一些历史原因吗?或者它来自某种奇怪的惯例?

答案1

扬抑符 ( ^) 相当于电传打字机上的向上箭头字符。当 SunOS 等出现时,这部分已经过去十多年了。数学表达式中使用了相同的字符(替换),例如^幂(其他一些人可能会使用**)。 Pascal 中也用它来表示指针。

用于指示控制字符,该日期(至少)在 1980 年之前。例如,您可以在 DEC 文档中找到它的使用(当我使用 teco 时,它肯定是在 20 世纪 70 年代中期使用的。实用手册1973 年(第 927 页)显示了一个controlC例子。

寻找合适的来源,我发现电传打字机通信代码Gil Smith 写的,足以将其置于 20 世纪 60 年代末(证明起源也是 Unix 之前的):

ASCII-63 与当前的 ASCII-67 版本基本相同。控制字符(上面的 col-1)的定义在两个版本之间有所不同,定义如下。此外,在 ASCII-63 中,高 32 个位置 (col-4) 未定义,除了三个位置:RUB (0x7F)、ACK (0x7C) 和 ESC (0x7E)。 ASCII-63 中对 ALT-MODE 字符 (0x7D) 的引用不一致。在1967年的版本中,RUB变成了DEL并保持在相同的位置,但是ACK和ESC移到了控制字符区域(col-1)。在 ASCII-67 中,^ 替换了向上箭头符号,_ 替换了向左箭头

ASCII-63 和 ASCII-67 是 ASCII 的常见变体,但似乎也有一些过渡版本:在 Teletype Model 33 手册中,引用了 1965 年版本的 ASCII,其中用 SS 代替了 SUB (0x1A)、\ 代表 @ (0x40)、~ 代表 \ (0x5C)、奇数字符代替 | (0x7C) 和 |为〜(0x7E)。 M33 和 M35 机器的 Teletype 代码卡指示 1966 版本的 ASCII,尽管卡上显示的可打印字符在所有版本中都是相同的。

这曾经是众所周知的,因为在不同编码(例如 ASCII 和 EBCDIC)之间交换文件存在问题,在 ASCII 中不再存在字符很久之后,仍然有打印机能够渲染向上箭头。

相关内容