跳转到内容

从终端复制文本

来自 Arch Linux 中文维基

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

一般方法

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

不原生支持 CLIPBOARD 选区的终端

Xorg

有些终端仿真器不原生支持 CLIPBOARD 选区,而是将数据复制到 PRIMARY 选取。对于这些终端,可以使用 xclip包:

$ xclip -o | xclip -selection clipboard -i

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

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

Wayland

像 wl-clipboard包 和 clipboardAUR 这样的工具可以将数据复制到Wayland剪贴板:

$ command 2>&1 | wl-copy

截取命令输出

使用 tee(英语: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:从终端复制文本#常见终端仿真器备忘单:“否”项的准确性 中讨论)


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

仿真器 选择到 PRIMARY CLIPBOARD
快捷键组合 上下文菜单 窗口菜单 选择
Alacritty 是 是 否 否 否
atermAUR 是 否 否 否 否
etermAUR 是 否 否 否 否
foot 是 是 否 否 可选
germinalAUR 是 是 是 否 否
Guake(英语:Guake) 是 是 是 否 否
Konsole 是 是 是 是 可选
lilyterm-gitAUR 是 是 Ctrl+Delete 是 否 否
lxterminal包 是 是 是 是 否
mate-terminal包 是 是 是 是 否
mlterm 是 是 否 否 是
pantheon-terminal包 是 是 是 否 否
PuTTY(英语:PuTTY) 是 否 否 否 否
qterminal包 是 是 是 是 否
roxtermAUR 是 是 是 是 否
rxvt-unicode 是 是 Ctrl+Alt+c 否 否 可选
sakura包 是 是 是 是 否
st 是 是 否 否 否
Terminator(英语:Terminator) 是 是 是 否 否
terminology包 是 是 是 否 否
Termite(英语:Termite) 是 是 否 否 否
Tilda(英语:Tilda) 是 是 是 否 否
xfce4-terminal包 是 是 是 是 否
xterm(英语:xterm) 是 可选[1] 否 否 是
Yakuake 是 是 是 否 可选

特殊情况

putty

xclip 方法适用于 putty: 只需记住,xclip 命令应该在本地计算机上(在另一个终端中)执行,而不是在与 putty 连接的远程计算机上执行。

urxvt

将文本选择到 CLIPBOARD 选区需要 selection-to-clipboard Perl 扩展。有关详细信息,请参见 rxvt-unicode#复制和粘贴。

xterm

访问 xterm 中的 CLIPBOARD 选区需要额外的步骤(英语:xterm#PRIMARY or CLIPBOARD)。

mlterm

除了 Ctrl+Shift+c,如果不想意外杀死进程,还可以使用 Ctrl+Insert,同时,一些版本的 Mlterm 会在选择时自动实时复制选取。