文章总结: 本文详解macOS命令行工具cliclick的安装与多坐标循环自动化实现。内容包括三种安装方式、核心命令用法及Shell脚本编写,重点针对鼠标移动不点击、首个循环失效等问题提供了拆分命令语法、配置辅助功能权限等排查方案,最终提供优化脚本以提升重复操作效率。 综合评分: 91 文章分类: 安全工具,实战经验
macOS下cliclick实操全流程:从入门到多坐标循环自动化
原创
松山雨雾 松山雨雾
网络安全老宋
2026年2月4日 09:00 山东
导语: 你好,我是老宋。关注我,精彩节目第一时间送达!
文章较长,不用Python也能简单自动化循环单击操作,建议先收藏再点赞
在macOS中,cliclick是一款高效的命令行自动化工具,可模拟鼠标移动、单击、双击等操作,适配多场景自动化需求。本文结合个人实操经历,梳理从安装完成后到实现多坐标循环点击的完整流程,包含基础操作、脚本编写、问题排查及优化技巧,供同类需求者参考。
一、前期准备:安装、验证与基础认知
cliclick仅适配macOS系统,需先完成安装再开展后续操作,以下整理3种常用安装方法,可根据自身需求选择,安装后需验证有效性,避免后续操作受阻。
1. 三种常用安装方法
方法一:Homebrew安装(推荐,适合有Homebrew环境的用户)
Homebrew是macOS常用包管理器,安装步骤简洁,终端输入单条命令即可完成安装,且能自动配置路径,后续便于更新和卸载:
brew install cliclick
若未安装Homebrew,需先在终端输入以下命令安装Homebrew,安装完成后再执行上述cliclick安装命令:
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
安装完成后,cliclick可执行文件默认路径为/usr/local/Cellar/cliclick,系统会自动创建软链接,无需手动配置环境变量[superscript:4]。
方法二:安装包手动安装(适合无Homebrew环境的用户)
通过官方渠道下载安装包,步骤简单,适合新手操作:
- 访问cliclick官方下载链接https://www.bluem.net/en/projects/cliclick/,下载最新版本的安装包;
- 双击下载的安装包(通常为dmg格式),按照引导完成安装,默认安装路径可直接沿用,无需手动修改;
安装完成后,需将cliclick添加到系统环境变量,终端输入命令(需替换安装路径为实际路径),避免后续提示“command not found”。
export PATH=$PATH:/Applications/cliclick.app/Contents/MacOS
若官方下载速度较慢,可前往GitHub或CSDN等可信平台下载对应版本的安装包[superscript:4]。
方法三:源码编译安装(适合进阶用户)
适合熟悉终端操作、需自定义配置的进阶用户,步骤如下:
- 从GitHub克隆cliclick源码:
git clone https://github.com/BlueM/cliclick.git
- 进入源码目录:
cd cliclick; - 执行编译命令:
make,编译完成后会生成可执行文件; - 将可执行文件移动到系统可识别路径,完成安装。
sudo cp cliclick /usr/local/bin/
2. 安装验证
打开终端,输入以下两条命令,分别验证cliclick版本及查看完整功能手册:
cliclick --version # 查看版本号,确认安装成功cliclick --help # 查看所有命令选项,熟悉基础语法
若终端正常输出版本信息及帮助文档,说明安装成功;若提示“command not found”,需重新检查安装路径或重新安装。
3. 核心基础:坐标获取
cliclick的鼠标操作依赖屏幕坐标,需精准获取目标位置的坐标值(支持多显示器负坐标,适配主屏左侧副屏场景)。获取方法极为便捷,终端输入以下命令即可:
# 打印当前鼠标所在坐标cliclick p:
操作步骤:执行命令后,将鼠标移动到目标位置(如按钮、图标)并保持不动,再次回车,终端会输出格式为“X,Y”的坐标值。我此次实操需用到三个坐标,分别获取为1245,482、1160,540、667,520,用于后续循环点击。
4. cliclick其他命令功能表
除实操中用到的移动、单击、版本查看、坐标获取命令外,cliclick还支持鼠标高级操作、键盘模拟、延时控制等多种命令,按功能分类整理如下,适配不同自动化场景需求。
| 功能分类 | 命令语法 | 功能描述 | 适用场景 | | — | — | — | — | | 鼠标高级操作 | rc:x,y 或 rc:. | 右键单击,x,y为目标坐标,“.”表示当前鼠标位置 | 需调出右键菜单的场景(如文件右键属性、菜单调出) | | dc:x,y 或 dc:. | 双击目标位置,兼容绝大多数应用,语法与单击一致 | 打开文件、双击图标等需双击操作的自动化场景 | | tc:x,y 或 tc:. | 三连击目标位置,部分应用可能存在兼容性问题 | 快速选中整行文本、连续触发操作等场景 | | dd:./dm:x,y/du:. | 拖拽组合命令:dd开始拖拽,dm移动到目标坐标,du结束拖拽 | 文件移动、窗口拖拽、文本选中拖拽等场景 | | 键盘模拟操作 | kp:按键名称 | 模拟单个按键的按下与释放(一键完成),支持回车键、空格等 | 模拟回车提交、空格确认、Tab切换输入框等场景 | | kd:修饰键,修饰键 | 按下指定修饰键(cmd/ctrl/shift/alt等),需配合ku释放 | 组合键操作(如cmd+c复制)的前置步骤 | | ku:修饰键,修饰键 | 释放通过kd按下的修饰键,需与kd对应使用 | 组合键操作完成后释放按键,避免后续操作受影响 | | t:”文本内容” | 模拟键盘输入指定文本,支持多语言基础字符与特殊字符 | 自动填写表单、输入固定文本等场景 | | 参数与辅助命令 | w:毫秒数 | 单个操作后添加延时,单位为毫秒,替代shell的sleep命令 | 适配应用响应延迟,避免操作执行顺序错乱 | | -w 基础毫秒数 | 全局基础延时,所有操作间均添加该固定延时 | 整体放慢自动化流程,适配卡顿应用或慢响应场景 | | -f 文件名 | 从指定文件中读取命令并执行,无需手动输入多条命令 | 复杂自动化流程,命令较多时简化执行步骤 | | -d 输出路径 | 指定坐标打印、操作日志的输出路径,默认输出到终端 | 需留存操作日志、批量记录坐标的场景 | | 其他特殊操作 | m:+x,+y 或 m:-x,-y | 相对坐标移动,基于当前鼠标位置偏移指定像素 | 窗口位置不固定,无需精准绝对坐标的场景 |
注:所有命令中,坐标均可替换为“.”表示当前鼠标位置,修饰键支持多键组合(用逗号分隔),三连击、特殊字符输入在部分应用中可能存在兼容性问题,建议提前单独测试。
二、脚本编写:实现多坐标循环点击
单条cliclick命令仅能完成单次操作,无法实现多坐标顺序执行、自定义间隔及循环,因此需编写Shell脚本,结合cliclick命令与sleep延时命令,满足“循环10次、各操作间自定义间隔”的需求。
1. 初始脚本编写
目标需求:循环10次,依次点击三个坐标,各步骤间隔分别为1秒、2秒、5秒,循环结束后提示执行完成。初始脚本如下,保存为桌面的click_loop.sh文件:
#!/bin/bash# 循环10次后自动停止,可修改10为任意次数for ((i=1; i<=10; i++)); do cliclick c:1245,482 sleep 1 cliclick c:1160,540 sleep 2 cliclick c:667,520 sleep 5doneecho "循环执行完毕,共运行$i次"
2. 脚本执行步骤
编写完成后,需给脚本赋予执行权限并启动,终端依次输入以下命令(以桌面路径为例):
# 赋予执行权限chmod +x ~/Desktop/click_loop.sh# 进入脚本所在目录cd ~/Desktop# 启动脚本./click_loop.sh
停止脚本的方法:终端中按下“Ctrl + C”,即可立即终止循环操作。
三、问题排查:解决鼠标移动但不单击、首个循环失效问题
启动脚本后,发现鼠标能正常移动到目标坐标,但未触发单击操作;同时,部分场景下首个循环完全未生效,经过多次排查,定位到核心问题并完成优化。
问题1:鼠标移动但不单击
原因分析,核心是cliclick的“坐标+单击”合写语法(c:x,y)存在解析兼容问题,部分版本中仅能触发移动,无法触发单击;其次,macOS辅助功能权限未完全生效,系统拦截了自动化单击操作。
解决方案
方案一:拆分移动与单击命令(官方推荐写法),将“c:x,y”拆分为“m:x,y”(移动鼠标)+“c:.”(当前位置单击),避免语法解析问题。
方案二:显式指定左键单击,使用语法“c:LEFT,x,y”,适配所有cliclick版本,兼容性拉满。
方案三:确认辅助功能权限,步骤如下:
- 打开“系统设置”→“隐私与安全性”→左侧“辅助功能”;
- 确认当前使用的终端(Terminal/iTerm2)已勾选;
- 勾选后关闭所有终端窗口,重新打开(权限需重启终端生效)。
问题2:首个循环未生效
原因分析,主要是权限未彻底加载、脚本未保存新版本(运行旧脚本),或macOS对首次自动化操作存在瞬时响应延迟,导致首个循环被系统拦截。
解决方案
- 彻底重启终端:关闭所有终端窗口,重新打开,确保权限完全生效;
- 确认脚本保存:打开click_loop.sh文件,确认修改后的内容已保存(按Cmd+S强制保存),避免运行旧版本;
- 添加微小延时:给首个操作加50毫秒延时,适配系统首次响应,同时新增循环次数打印,直观查看是否启动。
四、优化后脚本(最终可用版)
整合所有优化方案,最终脚本兼顾兼容性、可观测性,能完美实现目标需求,同时解决单击失效、首个循环无效问题:
!/bin/bash# 定义循环次数,可直接修改LOOPNUM=10# 加–delay 50:所有操作间加50ms延时,适配系统首次响应for ((i=1; i<=LOOPNUM; i++)); do echo “正在执行第$i次循环…” # 打印循环次数,确认启动状态 # 第一个坐标:移动+单击,适配系统响应 cliclick –delay 50 m:1245,482 c:. sleep 1 # 第二个坐标:移动+单击 cliclick m:1160,540 c:. sleep 2 # 第三个坐标:移动+单击,间隔5秒进入下一轮循环 cliclick m:667,520 c:. sleep 5doneecho “循环执行完毕,共运行$LOOP_NUM次”

五、实操总结与拓展建议
1. 核心要点
- 权限是基础:macOS辅助功能权限必须勾选终端并重启,否则自动化操作会被拦截;
- 语法避坑:优先使用拆分写法(m:x,y + c:.),避免合写语法的兼容问题;
- 排查技巧:遇到问题先单独测试单条操作(如cliclick m:1245,482 c:.),排除循环或脚本整体问题。
2. 拓展建议
- 修改循环次数:直接修改脚本中LOOP_NUM的值,即可调整循环次数,无需改动其他内容;
- 更换点击方式:如需右键单击,将“c:.”改为“rc:.”;如需双击,改为“dc:.”;
- 复杂自动化:可结合Shell脚本的条件判断、外部命令文件,实现更复杂的操作流程(如多坐标组合、定时启动)。
整体而言,cliclick是macOS终端自动化的轻量工具,只需掌握基础语法、规避权限和语法坑,就能快速实现鼠标操作自动化,大幅提升重复操作的效率。
如果你感觉有用,帮忙点个免费的关注转发,你的支持是我更新的动力
关注我的人,顺风顺水顺财神,朝朝暮暮有人疼!无一例外!
免责声明:
本文所载程序、技术方法仅面向合法合规的安全研究与教学场景,旨在提升网络安全防护能力,具有明确的技术研究属性。
任何单位或个人未经授权,将本文内容用于攻击、破坏等非法用途的,由此引发的全部法律责任、民事赔偿及连带责任,均由行为人独立承担,本站不承担任何连带责任。
本站内容均为技术交流与知识分享目的发布,若存在版权侵权或其他异议,请通过邮件联系处理,具体联系方式可点击页面上方的联系我。
本文转载自:网络安全老宋 松山雨雾 松山雨雾《macOS下cliclick实操全流程:从入门到多坐标循环自动化》
版权声明
本站仅做备份收录,仅供研究与教学参考之用。
读者将信息用于其他用途的,全部法律及连带责任由读者自行承担,本站不承担任何责任。










评论