linux怎样安装xdotool,以及xdotool的使用

    xiaoxiao2021-03-25  158

    对于Ubuntu,Debian或者Linux Mint,你能够只做:

    1 $  sudo  apt-get  install  xdotool

    对于Fedora,请使用yum命令:

    1 $  sudo  yum  install  xdotool  正在安装    : libxkbcommon-0.6.1-1.el7.x86_64                             1/3   正在安装    : 1:libxdo-3.20150503.1-1.el7.x86_64                          2/3   正在安装    : 1:xdotool-3.20150503.1-1.el7.x86_64                         3/3 

    对于CentOS用户,可以在EPEL repo中找到该包(http://www.linuxidc.com/Linux/2014-08/105996p2.htm)。在启用EPEL仓库后,只要使用上面的yum命令就可以达成你的愿望。查看系统版本:

    cat /etc/centos-release CentOS Linux release 7.3.1611 (Core) 

     CentOS7的获取方法:

    1、$ sudo rpm -Uvh http://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm 或 sudo yum install epel-release

    2、验证  $ yum repolist

    源标识                源名称                                              状态 base/7/x86_64         CentOS-7 - Base                                      9,363 *epel/x86_64          Extra Packages for Enterprise Linux 7 - x86_64      11,446 extras/7/x86_64       CentOS-7 - Extras                                      311 updates/7/x86_64      CentOS-7 - Updates                                   1,126 repolist: 22,246 [wonderful@localhost ~]$ 

    对于Arch用户,可在Community仓库中找到该包:

    1 $  sudo  pacman -S xdotool

    如果你还是找不到你的发行版的对应xdotool,你可以从它的官方站点下载。

    Xdotool基本功

    虽然xdotool是那样的直观,但它仍然是个脚本程序。因此,为了要正确地使用它,你还是得了解它的语法。不过敬请放心,相对于程序的功能而言,语法还是比较简单易学的。

    首先,模拟击键是很容易的。你可以从终端敲入下面的命令:

    1 $ xdotool key [name of the key]

    如果你想要连接两个键,可以在它们之间使用“+”操作符。它看起来像这样:

    1 $ xdotool key alt+Tab

    这两个组合键可以为你切换窗口。

    要想让xdotool帮你输入,可以使用以下命令:

    1 $ xdotool  type  ''

    这些对于基本的击键而言已经足够了。但是,xdotool的众多长处之一,就是它可以获取特定窗口的焦点。它可以获取右边的窗口,然后在里面输入,所有你记录下的按键都不会人间蒸发,而是老老实实的如你所愿的出现在那里。要获得该功能,一个简单的命令可以搞定:

    1 $ xdotool search --name [name of the window] key [keys to press]

    该命令将在打开的窗口中搜索对应名称的窗口,并聚焦于该窗口,然后模拟击键。

    来点更高级的,但很有用哦,xdotool可以模拟鼠标移动和点击,看这命令:

    1 $ xdotool mousemove x y

    你可以将光标定位到屏幕坐标(x,y)(像素)。你也可以使用“click”参数来组合:

    $ xdotool mousemove x y click 1

    这会让鼠标移动到(x,y),然后点击鼠标左键。“1”代表鼠标左键,“2”则是滚轮,“3”则是右键。

    最后,一旦你这些命令根植于你脑海,你也许想要实际转储于文件来编辑并试着玩玩。鉴于此,就会有超过一个语句以上的内容了。你需要的就是写一个bash脚本了:

    1 2 3 4 #!/bin/bash xdotool [ command  1] xdotool [ command  2] etc

    或者你可以使用:

    1 $ xdotool [filename]

    这里你将命令写入到一个独立的文件中,然后通过将文件名作为xdotool命令的参数。

    意外收获

    作为本文的一个意外收获,这里是xdotool的一个具体实例。你可能听说过,也可能没听说过Bing —— 微软的搜索引擎。在后面的实例中,你会看到你可能从没听过Bing奖励:一个程序,可以让你用Bing积分兑取亚马逊的礼物卡和其它的一些礼物卡(LCTT 译注:我是从来没听说过~)。要赚取这些积分,你可以每天在Bing上搜索累计达30次,每次搜索你都会获得0.5个积分。换句话说,你必须把Bing设为默认搜索引擎,并每天使用它。

    或者,你可以使用xdotool脚本,在这个脚本中,会自动聚焦到Firefox(你可以用你喜欢的浏览器来取代它),并使用fortune命令生成一些随机单词来实施搜索。大约30秒之内,你的日常搜索任务就完成了。

    1 2 3 4 5 6 7 8 9 10 11 12 #!/bin/bash for  i  in {1..30} do WID=`xdotool search --title  "Mozilla Firefox"  |  head  -1` xdotool windowfocus $WID xdotool key ctrl+l xdotool key Tab SENTENCE= "$(fortune | cut -d' ' -f1-3 | head -1)" xdotool  type  $SENTENCE xdotool key  "Return" sleep  4 done

    下面来个小结吧:我真的很喜欢xdotool,即便它的完整功能超越了本文涵盖的范围。这对于脚本和任务自动化而言,确实是种平易的方式。负面的问题是,它可能不是最有效率的一个。但我要再说一遍,它忠于职守了,而且学习起来也不是那么麻烦。

    转载请注明原文地址: https://ju.6miu.com/read-24117.html

    最新回复(0)