在 OSX 的终端中,我可以将输出通过管道传输到 pbcopy,然后进入 Web 浏览器并粘贴。我尝试在 Linux 中使用 xcopy 来实现这一点,但当我切换到浏览器时,它只会用上次使用浏览器时的内容覆盖剪贴板。Linux 中 pbcopy 的工作原理是什么?
答案1
如果你安装了桌面版的Linux(X),你可以尝试xsel
以下方法:
alias pbcopy='xsel --clipboard --input'
alias pbpaste='xsel --clipboard --output'
或者xclip
:
alias pbcopy='xclip -selection clipboard'
alias pbpaste='xclip -selection clipboard -o'
现在你可以使用它们:
echo 'go to my clipboard' | pbcopy
当我没有 XI 时,使用 GNU Screen 功能通过键盘在会话中打开的 shell 之间进行复制。
复制:
- Ctrl-a
- Esc
- 前往所需职位 *
- Space(开始选择)
- 按下k前进标记文本
- Enter
粘贴:
- Ctrl-a+]
* 移动是通过类似 vim 的键绑定完成的 ( j, k, l& m)。
答案2
将一个名为 pbcopy 的脚本放入您的 bin 文件夹中:
#!/bin/bash
xclip -i -sel c -f |xclip -i -sel p
这会将 STDIN 放入您的选择缓冲区和剪贴板中:
echo Hello world |pbcopy
答案3
这个答案是指适用于 Windows 的 Linux 子系统。
简短回答:使用它就clip.exe
像是pbcopy
为了将某些内容放入 Windows 剪贴板一样。这很神奇。例如,echo "Hello Windows" | clip.exe
在您的 bash 或 Ubuntu bash 终端中,然后在 Windows 程序中按“ctrl-v”。
更多背景信息:
在上面的评论export DISPLAY=:0
我提到过,在 Windows 上使用 Xming 启用此功能时,在许多情况下,需要设置 DISPLAY 变量( ),然后xsel
和xclip
解决方案才能起作用。令人恼火的是,这种解决方案的工作方式不可靠且随机——从 Linux 粘贴到 Windows 时,ctrl-v
按一到十次会导致剪贴板被粘贴(一次)(这是在我的 Windows 10 Surface Book 2 上)。不要浪费时间,使用clip.exe
。
注意:不要忘记.exe
。否则 Ubuntu bash 会建议您安装 Linux 包geomview
,而这并不是您想要的。
答案4
在 WSL2 中,有clipcopy
和clippaste
,它们等同于pbcopy
和pbpaste
。