直接将Shell提示符输出复制到Linux/UNIX X剪贴板

时间:2020-01-09 10:44:15  来源:igfitidea点击:

问题描述:如何将命令输出复制到Linux Gnome剪贴板?
如何从Shell提示符直接将文件发送到X Windows剪贴板?
如何将命令行输出或者包含的文件插入剪贴板?

解决方法:您可以直接使用xclip命令将命令行输出复制到X Windows剪贴板。
您可以从标准输入(键盘)或者一个或者多个文件中读取数据,并将数据作为X选择用于粘贴到任何X应用程序中,例如gedit,OpenOffice或者Firefox /电子邮件客户端。
您还可以通过shell程序提示符将当前的X选择打印到标准输出(屏幕或者打印机)。

关于Linux/UNIX X Server CLIPBOARD的说明

X服务器总共维护3个剪贴板,如下所示:

  • PRIMARY:通常使用PRIMARY选项通过鼠标中键实现复制和粘贴。 xclip命令默认使用此选项。因此,您需要单击中间按钮以粘贴数据。
  • SECONDARY:X应用程序较少使用。您需要使用XA_SECONDARY常量来选择此剪贴板。
  • CLIPBOARD:与SECONDARY相同,使用XA_CLIPBOARD常量选择剪贴板。

xclip Linux/UNIX命令行剪贴板抓取器

您可以使用以下任一方法安装xclip:

在Debian/Ubuntu Linux下安装xclip

在shell提示符下执行以下命令:

$ sudo apt-get install xclip

在Red Hat/CentOS/RHEL/Fedora Linux下安装xclip

在shell提示符下执行以下命令(确保激活了第三方存储库):

# yum install xclip

如何使用xclip命令?

将以下命令的输出复制到剪贴板:

$ sort -n -k 3, -k 2 file.txt | xclip

如何将输出粘贴到GUI应用程序?

只需在X应用程序中按鼠标中键(粘贴按钮)即可粘贴数据。

将包含的文件插入剪贴板

将包含的data.txt发送到剪贴板,执行:

$ cat data.txt | xclips

从剪贴板粘贴数据

使用CTRL + C或者鼠标中键复制数据。
执行以下命令以粘贴输出:

$ xclip -o

将选择内容放入文件中。

$ xclip -o > file.txt

循环选项

-l(-循环)选项帮助发送x个选择请求(粘贴到X个应用程序中)的数量,以等待退出。
例如,启动xclip并仅在粘贴文本10次后退出。

$ who | xclip -loops 3 -verbose

选择辅助剪贴板

$ uptime | xclip -selection XA_SECONDARY

xsel命令

xsel是类似于xclip的命令,可以使用很少的其他选项来检索和设置X选择(复制和粘贴操作)。
输入以下命令以安装xsel:

$ sudo apt-get install xsel

xsel的例子

复制X选择中的pwd命令的输出。
然后在X应用程序中单击鼠标左键粘贴:

$ pwd | xsel

将/etc/passwd放在X选择中。
然后在X应用程序中单击鼠标左键粘贴:

$ cat /etc/passwd | xsel