代码改变世界

inux xsel 拷贝复制命令行输出放在系统剪贴板上

2014-02-11 17:31  youxin  阅读(1827)  评论(0编辑  收藏  举报

转载自:http://oldratlee.com/post/2012-12-23/command-output-to-clip

为什么要这么做?
直接把命令的输出(比如 grep/awk/sed/find 或是你的程序输出结果)放到剪切板上,这么就可以在 IM 中 CTRL + V 粘贴后发出去。
避免操作的繁琐和跳跃:把结果输出到文件、用文本编辑器打开文件、选中文本、CTRL + C。
通过命令将文件内容拷贝到剪切板,以避免拷贝错误、操作的跳跃(跳到文件编辑器)


Windows下

使用系统自带的 clip 命令。

# 位于 C:\Windows\system32\clip.exe。

示例:

# 将字符串 Hello 放入 Windows 剪贴板
echo Hello | clip 

# 将 dir 命令输出(当前目录列表)放入 Windows 剪贴板
dir | clip

# 将 readme.txt 的文本放入 Windows 剪贴板
clip < README.TXT   

# 将一个空行放入 Windows 剪贴板,即清空 Windows 剪贴板
echo | clip 

Linux下

首先安装一个名为xsel的包:

  apt-get install xsel

  然后就可以在命令行下操作剪贴板了:)

  这里只贴几个常用的,更多的请参见man文档。

  显示剪贴板中的数据:

  xsel -b -oxsel -b -o

  向剪贴板中追加数据:

  xsel -b -a

(

-b, --clipboard
operate on the CLIPBOARD selection.)

  覆盖剪贴板中的数据:

  xsel -b -i

  例如说,我要将某个文档复制到剪贴板,以前我要打开这个文档,全选后复制,现在我只需要在bash中输入cat filename | xsel -b -i即可,非常方便。

 


使用 xsel 命令。示例:

cat README.TXT | xsel

# 如有问题可以试试-b选项

cat README.TXT | xsel -b 

# 将readme.txt的文本放入剪贴板

xsel < README.TXT 

# 清空剪贴板

xsel -c

 xsel -o 显示数据

把剪贴板的数据放到新文件

xsel -o > newfile

参考:http://blog.csdn.net/kodeyang/article/details/12260243

 

Mac下
使用 pbcopy 命令。 # 对应有个 pbpaste 命令。示例:

# 将字符串Hello World放入剪贴板

echo 'Hello World!' | pbcopy


最佳实践
要复制结果又想看到命令的输出

命令的结果输出时,如果给复制命令(即上面提到的命令 clip、xsel、pbcopy)那么命令输出就看不到了。

如果你想先看到命令的输出,可以下面这么做。

echo 'Hello World!' | tee tmp.file.txt

Hello World!

xsel < tmp.file.txt

rm tmp.file.txt

即先使用 tee 命令把输出输到控制台和一个文件中。
命令执行完成后,再把输出的内容放到剪贴板中。


复制 SSH 的公有 KEY

使用下面的命令:

pbcopy < ~/.ssh/id_rsa.pub

注:不同系统使用不同的复制命令

避免用文本编辑器打开这个文件、选中文本、CTRL + C 这样繁琐操作。