Ins*_*tus 133 command-line clipboard pipe
例如,
假设我想列出一个文件夹的内容,并直接将它们粘贴到聊天窗口中供朋友查看。
我意识到我可以ls > filename.txt
用这些内容创建一个文件 (filename.txt);然后我必须打开或打印文件并手动选择和复制文本块(这可能很烦人/乏味。)我显然也可以ls
直接从终端窗口中选择和复制输出。
简单地将标准输出通过管道传输到剪贴板会更快/更容易。
什么终端命令允许我这样做?
Ins*_*tus 160
这可以通过xsel 或 xclip 命令行实用程序来完成 。由于默认情况下这两个程序都没有随 Ubuntu 一起提供,因此您需要先通过 Ubuntu 软件或终端安装它们。这是在终端中的方法(但请记住,您只需要这两个中的一个。)
sudo apt install xsel
sudo apt install xclip
Run Code Online (Sandbox Code Playgroud)
注意:如果您在 Windows Subsystem for Linux (WSL) 中使用 Ubuntu,请参阅其他答案。
现在举一些例子。如果要将 的输出复制ls
到剪贴板,请执行以下操作:
使用 xsel:
ls | xsel -ib
Run Code Online (Sandbox Code Playgroud)
使用 xclip:
ls | xclip -sel clip
Run Code Online (Sandbox Code Playgroud)
这当然也可以用于其他终端命令。假设您想将您的网络信息粘贴到帮助论坛中。
使用 xsel:
sudo lshw -C network | xsel -ib
Run Code Online (Sandbox Code Playgroud)
使用 xclip:
sudo lshw -C network | xclip -sel clip
Run Code Online (Sandbox Code Playgroud)
使用新的 bash 别名使这更容易!
编辑您的~/.bash_aliases
文件(如果它不存在,请先使用touch ~/.bash_aliases
)
然后添加以下一项(取决于您决定使用哪个程序):
alias copy='xclip -sel clip'
Run Code Online (Sandbox Code Playgroud)
或者
alias copy='xsel -ib'
Run Code Online (Sandbox Code Playgroud)
然后保存并关闭。
现在(重新启动终端后)您可以将标准输出发送到剪贴板,只需将其通过管道传输到“复制”(或您决定命名新别名的任何内容)
例如:
ls | copy
Run Code Online (Sandbox Code Playgroud)
Sna*_*hot 10
如果您尝试在 Windows 子系统 Linux (WSL) 中使用 Ubuntu 复制到剪贴板,则 xsel 或 xclip 将不起作用,除非您使用 X Windows,因为剪贴板仅用于图形。但是,要将终端标准输出通过管道传输到 WSL Ubuntu 中的剪贴板,您可以使用clip.exe
. 然后,您可以使用标准粘贴命令粘贴到 WSL Ubuntu 终端中,复制的文本也将在 Windows 中可用。例如,
pwd | clip.exe
Run Code Online (Sandbox Code Playgroud)
将当前工作目录复制到 (Windows) 剪贴板。
当寻找在 WSL 中复制/粘贴文本的方法时,此搜索结果出现在顶部,因此我认为值得一提的是,这样读者就不必在 Ubuntu 中不必要地安装 xsel 或 xclip 而是使用clip.exe
.