我最近从 Windows 世界被扔到那里,我想问一些有关 Linux(和 Unix?)系统中剪贴板的问题。什么是 X 剪贴板? Linux 中有多少个剪贴板?实际上,我想将命令从终端复制到剪贴板,然后将其粘贴到其他应用程序(gedit、skype 等)中。我进入 echo !! | xclip
在终端。但是,当我尝试将命令粘贴到其他应用程序(通过Shift+Ins或Ctrl+ V)时,实际上已粘贴旧内容。同时我可以将此命令粘贴到终端中。
答案1
xclip 联机帮助页 ( man xclip
) 是这样说的:
-selection
specify which X selection to use, options are "primary" to use XA_PRIMARY
(default), "secondary" for XA_SECONDARY or "clipboard" for XA_CLIPBOARD
所以你可以指定位置:
echo !! | xclip -selection <selection>
哪里是, ,<selection>
之一。primary
secondary
clipboard
这些的描述来自于ArchWiki:剪贴板
在这三个选择中,用户应该只关心 PRIMARY 和 CLIPBOARD。 SECONDARY 的使用不一致,其目的是作为 PRIMARY 的替代品。不同的应用程序可能会以不同的方式对待 PRIMARY 和 CLIPBOARD;然而,有一定程度的共识认为 CLIPBOARD 应该用于 Windows 风格的剪贴板操作,而 PRIMARY 应该作为“快速”选项存在,可以使用鼠标或键盘选择文本,然后使用鼠标中键粘贴(或它的一些模拟)。这可能会导致混乱,并且在某些情况下,恶意应用程序会导致不一致或不良结果。
这意味着这取决于您的环境。如果应用程序使用不同的选择,则可能会出现不一致。不过,如果您使用像 Gnome 这样的桌面环境,它应该可以正常工作。
另外,正如 Kartik 提到的,您可以使用 Ctrl+Shift+C/V 在大多数终端中复制粘贴。
Linux 中的大多数应用程序还支持使用鼠标选择文本以将内容存储在剪贴板中。
要从剪贴板获取内容,请使用-o旗帜:
xclip -o
如果您经常使用它,您可以为 .bashrc 中的这些命令创建别名:
alias cbcopy='xclip -selection clipboard'
alias cbpaste='xclip -selection clipboard -o'
答案2
作为记录,在 Cygwin 中,您可以将输出定向为/dev/clipboard
:
echo !! > /dev/clipboard
这会将输出复制到系统标准剪贴板,您可以使用Ctrl+V
或其他方式粘贴它。
答案3
要从终端复制 Linux 中的任何内容,有两种方法:
- 用鼠标选择它,然后单击中键进行复制和粘贴。
- 用鼠标选择并使用键盘快捷键复制。 (不同终端上有所不同,Ubuntu 上为 Ctrl-Shift-C/V)
有时您可以使用 Ctrl+C/V 复制并粘贴任何内容,例如窗口(但不能在终端上)。
编辑:echo !! | xclip
仅复制上一个命令。