Answers:
它实际上并不插入字符序列“ ^ C”。这仅是不可打印的ASCII控制字符的表示,例如:
^C
→ETX(文本结尾,发送终止信号),ASCII 0x03^D
→EOT(传输结束,终止输入),ASCII 0x04^H
→BS(Backspace,\b
),ASCII 0x08^J
→LF(换行,\n
),ASCII 0x0A^L
→FF(换页,新页,清除终端),ASCII 0x0C^M
→CR(回车,\r
),ASCII 0x0D这只是可以使用键盘插入的ASCII控制字符的一小部分。您可以在此处找到完整列表。
我认为最重要的是Ctrl+ C,Ctrl+ D和Ctrl+ L。
因为CTRL+连KEY字符在终端被解释为不可打印的ASCII字符,而要成为那些不可打印的ASCII字符,则需要一种表示它们的方式。
惯例,从而产生与ANSI支持VT终端,就是代表CTRL+ KEY表示组合CTRL与脱字符号(^
)和KEY与KEY。
从终端复制和粘贴时,最佳做法是分别使用快捷键Ctrl+ Insert和Shift+ Insert。
这些是终端使用的更传统的快捷方式,尽管您会注意到,在X图形环境中,Ctrl+ Insert和Shift+ Insert绑定到相同的Ctrl+ C和Ctrl+ V。
在大多数终端中,Ctrl+ C(用表示^C
)用于中止过程的执行,因此粘贴该快捷方式将无效。
为了快速复制和粘贴,您可以利用X的主要缓冲区,方法是突出显示要复制的任何文本,然后在要粘贴的位置单击鼠标中键。无需键盘。
^C
在按CTRL + C(或CTRL +其他字母)时出现字符串或类似字符串。这与如何在终端中正确复制和粘贴内容无关,对于您的答案来说,这是很好的选择。
您应该使用Ctrl+ C而不是Shift+ Ctrl+ C,因为在命令行上,它们执行相同的操作(并且Ctrl+ C比Shift+ Ctrl+ 更容易C)。在某些图形环境中,GUI可能捕获了某些击键并做了一些特殊的操作,但这可能不是正确的,但是如果这些击键是真正发送到命令行的,则没有任何区别。这就是为什么按Ctrl+ C可以将^ C显示为大写字母C而不是小写字母C的原因。命令行没有区分您按的是哪个字母(并且大写字母被认为更易于阅读)。对于字母来说是这样。对于其他字符,Shift可能会起作用。)
按下Ctrl- C发送ASCII码,该ASCII码在ASCII表中大写字母的位置下方64(比在ASCII表中小写字母的位置低96)。因此,按Ctrl- c(小写)将发送ASCII码3(比大写字母C的ASCII码67小64)。在许多环境中,您可以按住Alt并按住3数字键盘(然后释放3键,然后释放Alt键),可能会得到相同的效果。
关于^ C,^只是“ Ctrl”键的著名缩写。同样,M-是“ Alt”键的简写。嗯,是的。M代表单词“ Meta”,可以按住Alt并按住接下来出现的任何内容,有时也可以按Esc(然后松开Esc)然后按接下来出现的任何内容来输入。 维基百科有关“控制键”的文章:“符号”部分将其描述为“传统符号”。这也称为插入符号(Wikitia)(有关插入符号的Wikipedia文章,Unix StackExchange:ryvnf有关插入符号的问题)。
关于最后一个问题,命令外壳程序没有“解释”任何要插入的内容。换句话说,shell没有读取任何内容,并认为它是插入符号。发生的事情是外壳程序使用了众所周知的插入符号来输出。再举一个例子,您可以看到著名的传呼器“ less”,通过运行以下命令使用插入符号:dd if=/dev/zero bs=64 count=1 | less
(“ nano”文本编辑器还在其联机帮助中使用插入符号,包括按^ G(又名Ctrl- g)后显示的联机帮助的全屏。)
^
作为“控制”的符号可以追溯到预图形时代,当时终端仅是文本,并且我相信即使在那之前,当我们有卡片和纸时,也没有终端。我很想知道为什么选择插入号作为符号。