如何在Linux中模拟按键和鼠标移动如何在Linux中模拟按键和鼠标移动如何在Linux中模拟按键和鼠标移动如何在Linux中模拟按键和鼠标移动
  • 文章
  • 正则表达式
    • 工具
  • 登录
找到的结果: {phrase} (显示: {results_count} 共: {results_count_total})
显示: {results_count} 共: {results_count_total}

加载更多搜索结果...

搜索范围
模糊匹配
搜索标题
搜索内容
发表 admin at 2025年2月28日
类别
  • 未分类
标签

如何在Linux中模拟按键和鼠标移动

您是否曾经梦想过您的计算机自动为您做事?如果你刚看过《终结者》,可能不会。但除此之外,脚本编写和任务自动化是每个高级用户的梦想。如果现在有很多解决方案可以满足这一目标,那么有时很难从众多解决方案中挑选出简单、智能且高效的解决方案。我不能假装自己找到了它,但与此同时,我更喜欢名为 xdotool 的简洁软件。它的方法很直观,因为它是一个 X11 自动化工具。换句话说,xdotool 可以通过读取文本文件来模拟按键甚至鼠标事件。

在Linux上安装Xdotool

对于 Ubuntu、Debian 或 Linux Mint,您可以这样做:

$ sudo apt-get install xdotool

对于 Fedora,使用 yum 命令:

$ sudo yum install xdotool

对于 CentOS 用户,该软件包可在 EPEL 存储库中找到。启用 EPEL 存储库后,只需使用上面的 yum 命令即可。

对于 Arch 用户,该软件包可在社区存储库中找到:

$ sudo pacman -S xdotool

如果您找不到适合您的发行版的xdotool,您可以随时从官方网站下载它。

Xdotool的基本用法

尽管很直观,xdotool 仍然是一个脚本应用程序。因此,您必须了解语法才能正确使用它。不过请放心,相对于程序的功能范围而言,语法非常简单且易于快速掌握。

首先,模拟按键非常容易。从终端,您可以键入命令:

$ xdotool key [name of the key]

如果要链接两个键,请在它们之间使用 + 运算符。例如,切换窗口:

$ xdotool key alt+Tab

要为您输入 xdotool 类型,请使用 type 命令:

$ xdotool type '[text 1="type" language="to"][/text]'

对于基本的按键来说这已经足够了。但 xdotool 的众多优势之一是它能够将焦点置于特定窗口上。它可以获取正确的窗口,然后在其中输入内容,从而防止所有记录的击键消失在稀薄的空气中。为此,最简单的命令是:

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

这将在打开的窗口中搜索名称与搜索匹配的窗口,为其提供焦点,然后模拟按键。

更高级一点,但非常有用,xdotool 可以模拟鼠标移动和点击。例如:

$ xdotool mousemove x y

使用上面的命令,您可以将光标放置在屏幕的坐标 (x,y) 处(以像素为单位)。您还可以将其与 click 参数结合使用:

$ xdotool mousemove x y click 1

这会将鼠标移动到 (x,y),然后单击左键。 1 代表鼠标左键,2 代表滚轮,3 代表鼠标右键,等等。

最后,一旦您记住了命令,您可能希望将其实际转储到文件中以进行编辑和播放。为此,有不止一种语法。您可以编写一个 bash 脚本:

#!/bin/bash
xdotool [command 1]
xdotool [command 2]
. . .

或者您可以使用:

$ xdotool [filename]

您可以在单独的文件中编写命令并将其名称作为参数。

奖金

作为这篇文章的奖励,这里有一个 xdotool 实际运行的具体示例。您可能听说过,也可能没有听说过 Microsoft 的搜索引擎 Bing。在后一种情况下,您可能从未听说过 Bing Rewards:一个允许您用 Bing 积分换取亚马逊和其他礼品卡的计划。要获得这些积分,您每天最多可以在 Bing 上进行 30 次搜索,每次搜索可获得 0.5 积分。换句话说,您必须将 Bing 设置为您的默认搜索引擎,并每天使用它。

或者,您可以使用此 xdotool 脚本,该脚本会自动将焦点转移到 Firefox(将其替换为您最喜欢的导航器),并使用 fortune 命令执行搜索以生成一些随机单词。大约 30 秒内,您所有的日常搜索都将完成。

#!/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,即使它的全部功能远远超出了本文的范围。这是一种非常平易近人的脚本编写和任务自动化方法。缺点是它可能不是最有效的。但同样,它可以完成工作,并且学习起来并不麻烦。

您对 xdotool 有什么看法?您是否更喜欢其他自动化工具?为什么?让我们在评论中知道。

©2015-2025 艾丽卡 support@alaica.com