如何将终端标准输出(stdout)传送到剪贴板?

例如,

假设我想列出文件夹的内容并直接将其粘贴到聊天窗口中供朋友查看。

我意识到我可以使用ls > filename.txt创建一个包含这些内容的文件(filename.txt); 然后我必须打开或打印文件并手动选择和复制文本块这可能很烦人/乏味 。)我显然也可以直接从终端窗口中选择和复制ls的输出。

简单地将标准输出传输到剪贴板会更快/更容易

什么终端命令允许我这样做?

这可以使用xsel完成 安装xsel 或xclip 安装xclip 命令行实用程序。 由于默认情况下这两个程序都没有附带Ubuntu,因此您需要先通过软件中心或终端安装它们。 这是终端的方式(但请记住,你只需要这两个中的一个。)

 sudo apt install xsel sudo apt install xclip 

现在举一些例子。 如果你想将ls的输出复制到剪贴板,这就是你要做的:

使用xsel:

 ls | xsel -ib 

使用xclip:

 ls | xclip -sel clip 

这当然也可以用于其他终端命令 。 假设您要将网络信息粘贴到帮助论坛中。

使用xsel:

 sudo lshw -C network | xsel -ib 

使用xclip:

 sudo lshw -C network | xclip -sel clip 

使用新的bash别名让这更容易!

编辑你的~/.bash_aliases文件(如果它不存在但是先用touch ~/.bash_aliases创建它)

然后添加以下内容 (取决于您决定使用的程序):

 alias copy='xclip -sel clip' 

要么

 alias copy='xsel -ib' 

然后保存并关闭。

现在(重新启动终端后)您可以将标准输出发送到剪贴板,只需将其管道传输到“复制”(或者您决定命名新别名的任何内容)

例如:

 ls | copy