从终端复制文本

出自 ArchWiki

大多数成熟的终端模拟器允许用户复制或保存其内容。

通用方法

在图形终端模拟器中,通常可以使用鼠标选择内容,然后使用右键菜单、编辑 菜单或快捷键组合(如 Ctrl+Shift+c)进行复制。

没有 CLIPBOARD 选择的终端

Xorg

一些模拟器本身不支持 CLIPBOARD 选择,而是将数据复制到 PRIMARY 选择。 对于这些模拟器,可以使用 xclip

$ xclip -o | xclip -selection clipboard -i

上述命令从 PRIMARY 选择读取数据,并将其写入 CLIPBOARD 选择。

其他剪贴板管理器,例如 autocutselAUR 提供了选择缓冲区之间的自动同步。

Wayland

诸如 wl-clipboardclipboardAUR 等实用程序可以将数据复制到 Wayland 剪贴板

$ command 2>&1 | wl-copy

拦截命令输出

使用 tee 来拦截命令的输出。

$ command 2>&1 | tee output-file

command 执行后,output-file 将包含其输出,同时也会显示输出。

访问 Linux 终端回滚缓冲区

可以通过 /dev/vcsN 访问名为 /dev/ttyN 的原生终端的回滚缓冲区。 因此,如果正在 /dev/tty1 中工作,则以下代码段将把回滚缓冲区存储在文件 output-file

# cat /dev/vcs1 > output-file

常用终端模拟器对比

本条目或章节的事实准确性存在争议。

原因: 此表中的某些“否”条目可能不正确。(在Talk:Copying text from a terminal#常用模拟器备忘单:“否”条目的事实准确性中讨论)

除非“快捷键组合”列另有说明,否则快捷键组合为 Ctrl+Shift+c

模拟器 选择到 PRIMARY CLIPBOARD
快捷键组合 右键菜单 窗口菜单 选择
Alacritty
atermAUR
etermAUR
foot 可选
germinalAUR
Guake
Konsole 可选
lilyterm-gitAUR Ctrl+Delete
lxterminal
mate-terminal
mltermAUR
pantheon-terminal
PuTTY
qterminal
roxtermAUR
rxvt-unicode Ctrl+Alt+c 可选
sakura
st
Terminator
terminology
Termite
Tilda
xfce4-terminal
xterm 可选[1]
Yakuake 可选

特殊情况

putty

xclip 方法 适用于 putty:只需要记住 xclip 调用应该在本地计算机(在另一个终端中)上完成,而不是在 putty 连接到的远程计算机上。

urxvt

选择文本到 CLIPBOARD 需要 selection-to-clipboard perl 扩展。 有关详细信息,请参见 rxvt-unicode#Clipboard

xterm

xterm 中访问 CLIPBOARD 选择需要其他步骤

mlterm

除了 Ctrl+Shift+c 之外,如果不希望意外终止进程,还可以使用 Ctrl+Insert