当我使用 Ctrl+字符键盘快捷键时,为什么终端中会出现 ^C、^V 等?

Tel*_*Why 29 command-line

有时,当从命令的输出中复制粘贴文本时,我会不小心使用Ctrl+c而不是Ctrl+ Shift+ c

所以命令行将其解释为^C...

为什么是这样?为什么命令行将control输入解释为^

s3l*_*lph 40

它实际上并不插入字符序列“^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+ CCtrl+DCtrl+ L


kos*_*kos 8

因为CTRL+KEY组合被终端解释为不可打印的 ASCII 字符,而对于那些不可打印的字符,您需要一种表示它们的方法。

惯例,从而产生与ANSI支持VT终端,就是代表CTRL+KEY表示组合CTRL与脱字符号(^)和KEYKEY


Kee*_*rke 5

向/从终端复制和粘贴时,最好分别使用快捷键Ctrl+InsertShift+ Insert

这些是终端使用的更传统的捷径,尽管您会注意到在 X 图形环境中Ctrl+InsertShift+Insert绑定到相同的Ctrl+CCtrl+ V

在大多数终端中,Ctrl+ C(由 表示^C)用于停止进程的执行,因此使用该快捷方式粘贴将不起作用。

为了快速复制和粘贴,您可以通过突出显示要复制的任何文本,然后在要粘贴的位置单击鼠标中键来利用 X 的主缓冲区。不需要键盘。

  • 对不起,但你误解了这个问题。OP 想知道为什么在按 CTRL+C(或 CTRL+另一个字母)时会出现字符串 `^C` 或类似的字符串。这与如何在终端中正确复制和粘贴内容无关,对此您的回答会很棒。 (2认同)