我如何才能管道输出的命令到我的剪贴板,并粘贴回来时,使用终端?例如:

cat file | clipboard

当前回答

对于那些使用bash安装在他们的windows系统(称为windows子系统For Linux (WSL))上的用户,尝试xclip将会给出一个错误:

Error: Can't open display: (null)

相反,回想一下linux子系统可以访问windows可执行文件。可以像这样使用clip.exe

echo hello | clip.exe

它允许您使用粘贴命令(ctrl-v)。

其他回答

有一个方法可以在不安装xclip/xsel的情况下工作,如果您没有sudo访问权限,这个方法非常有用。

你只需要安装vimx,这是VIM +剪贴板支持。你可以在大多数发行版中找到它。

将脚本保存为~/copy_to_clipboard.sh,

#!/bin/sh
if [ -z "$1" ]
  then
  str=" "
else
  str=$1
fi

vimx -u NONE -U NONE -N -c "let @a=\".\"" -c "let @*= \"$str\" " -c " put a " -c "sleep 2" -c " q!"

赋予执行权限:chmod +x ~/copy_to_clipboard 并调用它:

~/copy_to_clipboard.sh STRING

出于某种原因,您需要设置一个虚拟的@a寄存器,并将其粘贴到临时文件上。否则剪贴板寄存器将无法正确设置。 最后丢弃临时Vim文件。

你的剪贴板将被设置,你可以用鼠标中点击粘贴它

我使用Parcellite和xsel复制上次提交消息从git到我的剪贴板管理器(由于某种原因xclip不工作):

$ git log -1 --pretty=%B | xsel -i -b

这是Arch Linux用户的一个很好的解决方案。用pacman安装xsel,如下所示:

sudo pacman -S xsel

在~/中创建别名。Bashrc文件,比如:

alias pbcopy='xsel --clipboard --input'
alias pbpaste='xsel --clipboard --output'

用源代码重新加载终端:

source ~/.bashrc

像上面提到的那样使用它:

cat your_file.txt | pbcopy

供参考,在~/中填充所有别名是很好的做法。别名并在。bashrc文件中调用它

基于之前的文章,我最终得到了以下轻量级的别名解决方案,可以添加到.bashrc:

if [ -n "$(type -P xclip)" ]
then
  alias xclip='xclip -selection clipboard'
  alias clipboard='if [ -p /dev/stdin ]; then xclip -in; fi; xclip -out'
fi

例子:

# Copy
$ date | clipboard
Sat Dec 29 14:12:57 PST 2018

# Paste
$ date
Sat Dec 29 14:12:57 PST 2018

# Chain
$ date | clipboard | wc
   1       6      29

对于mac,这是一个示例方法复制(到剪贴板)粘贴(从剪贴板)使用命令行

将pwd命令的结果复制到剪贴板as

$ pwd | pbcopy

使用剪贴板中的内容通过您的机器的快捷方式进行粘贴或在命令中,如下所示

$ cd $(pbpaste)