I am LAZY bones ? all linux

用脚本操作剪贴板

有时候,在脚本里操作剪贴板是很有用的,比如,你可以用scrot截屏以后贴到paste,然后把url直接放到剪贴板里,方便与人分享;又比如,你可以在选择了一段不和谐的文字的时候,通过按一个快捷键悄悄地把文字变成base64加密以后的内容发给好友;再比如,复制一个单词或者一段文字,按一个快捷键可以在剪贴板里放置翻译后的结果等等。当然肯定有更多方便的应用等你来发现。
在实现复杂应用之前,我们应该先对linux的剪贴板有个基础的了解,其实,linux(准确地说是带X的GNU/linux操作系统)的剪贴板分为3个:
1. 中键主剪贴板
2. 中键辅剪贴板
3. ctrl+v剪贴板
用过linux的朋友肯定都知道一个很方便的特性:鼠标选中一段文字就相当于windows的“复制”,然后在其他程序里按下鼠标中键就相当于“粘帖”,可以把刚才选中的文字粘帖出来。这个经常会让像我一样的linuxer养成一种习惯,以至于在朋友电脑上偶尔使用的windows的时候,也会经常点中键,却什么也出不来。。。同时,这也造成了linux比较损鼠标中键的现象,因为一般的杂牌鼠标,为了节约成本,鼠标中键的轴只有一端是固定的,所以这个轴很容易断,中键都很脆弱,没按几下会坏掉了,我的几个坏鼠标基本上都是中键不灵。。。
呃。。怎么说到鼠标去了,言归正传,这个用中键粘帖的剪贴板我们暂且称为“中键主剪贴板”,另外还有一个“中键辅剪贴板”,一般用户很少用到,“ctrl+v剪贴板”就无须多解释了,就是和windows一样的那个剪贴板,大家平时可能只把这个当成“正宗”的剪贴板吧。
xsel 是用脚本操作剪贴板时需要用到的命令,xsel同时支持这3个剪贴板,那么我们来看看xsel是如何区分这几个剪贴板的:
-p, –primary 指定操作 中键主剪贴板
-s, –secondary 指定 中键辅剪贴板
-b, –clipboard 指定 ctrl+v剪贴板
-x, –exchange 还可以交换 中键主剪贴板 和 中键辅剪贴板 ,这样辅就可以起到一个中间变量的作用了。
下面看看常用的操作:
-i, –input 从标准输入读入到剪贴板
-a, –append 往剪贴板里添加内容 (PS:我发现当某个剪贴板内容为空的时候,使用这个选项会导致xsel出现段错误,不知道是不是应该去报告bug)
-c, –clear 清除剪贴板的内容
-o, –output 输出剪贴板的内容

于是,有了这些好玩的操作,我本来这个

scrot /tmp/scrop_tmp.png -bcsd 3 -e "echo | upaste -image \$f ; rm \$f"

贴图脚本就改成了这样了:

scrot /tmp/scrop_tmp.png -bcsd 3 -e "echo | upaste -image \$f | xsel -bi; rm \$f"

这样帖完图以后,URL就直接在ctrl+v剪贴板里了,发给别人也相当轻松了,哈哈。。(upaste是帖东西到http://paste.ubuntu.org.cn,并返回url的perl脚本)
另外,你可以可以看看 xclip 等其他程序,如果有必要的话,下期再介绍啦,哈哈。

最后修改时间: 2009年08月27日 14:04

本文章发表于: 2009年08月27日 14:03 | 所属分类:CLI软件. | 您可以在此订阅本文章的所有评论. | 您也可以发表评论, 或从您的网站trackback.

9 个评论 关于: “用脚本操作剪贴板”

  1. shellex 在 2009年08月27日 14:54 说:回复

    在reader里面的排版太糟糕了。
    不得不出来看

    • bones7456 在 2009年08月27日 14:57 说:回复

      呃。。怎么才能在reader里好看点呢?我用thunderbird订阅自己的,倒是很好看。

      • muzuiget 在 2009年08月27日 16:42 说:回复

        是啊,GReader都是一大段,没有换行的。

        • yegle 在 2009年08月27日 20:47 说:回复

          同抗议greader排版…

          • bones7456 在 2009年08月27日 22:35 说:【 】

            我比较了 curl http://li2z.cn/feed/ 和 curl http://yegle.net/feed/ 的结果,格式差不多啊,都是 description 里是直接的换行,然后 content 里是 br 换行的,我该怎么做呢?

  2. risent 在 2009年08月28日 18:30 说:回复

    li2z.cn以前的feeds怎么都只剩下标题了?

  3. HicroKee 在 2009年08月29日 19:41 说:回复

    Linux下原来有三个剪贴板?汗~我一直以为只有两个。学习了。
    我自己是绑定了两个键,一个截图放目录,一个截图上传到ftp再用zenity返回地址。
    如果怕冲走剪贴板的朋友可以试一下Parcellite,一个剪贴板管理程序~

  4. TualatriX 在 2009年08月31日 09:49 说:回复

    骨头啊!你真是太牛了。
    小小的剪貼板都能玩成这样,我怎么说你好呢!

  5. xiooli 在 2009年08月31日 10:36 说:回复

    xsel 用了 N 久了,很多时候会方便不少。

发表评论