找回密码
立即注册
搜索
热搜: Java Python Linux Go
发回帖 发新帖

3691

积分

0

好友

489

主题
发表于 2 小时前 | 查看: 3| 回复: 0

tmux 确实很强大。

但一涉及到终端自动化,不少人还是得靠 grepsleep 硬生生地拼凑流程。

有人实在忍不下去了,干脆从零写了一个不到 5MB 的小工具。

两周后,这个名为 rmux 的项目,在 GitHub 上斩获了 1300 个 Star。

rmux终端分屏与窗格工作流操作演示

它是一个专门用来解决终端自动化难题的工具。

用过 tmux 的人基本都懂它的好:多窗口、断线不中断,做远程开发极其顺手。

但一旦想让脚本去自动操作终端,画风就完全变了。

通常你得折腾这么一套流程:

发送命令,随后 sleep 等待,接着抓取屏幕输出,再用正则去“猜测”结果,然后才能进行下一步。

整个过程,就像在门外不停地敲门问:“好了没?好了没?”

rmux 想突破的,恰恰就是这件事。

rmux 的做法是直接装了个门铃——任务完成,它自己会通知你。

rmux系统架构流程图

先看个小白例子

假设你想写个脚本完成以下任务:

自动登录到服务器,跑一个测试,等测试完成,拿到结果,然后发通知给你。

01 用 tmux 的话,你大概得这么写:

伪代码展示传统tmux自动化中的sleep盲等问题

sleep(3) —— 这个 3 秒到底是怎么定出来的?纯粹是凭感觉猜!

网络要是快,就白白浪费时间;网络慢了呢,命令还没执行完,你就已经开始捕捉屏幕了。

sleep(10) —— 在实际测试中,有时 5 秒就跑完了,有时却要耗上 30 秒。你永远没法把它定得十分准确。

re.search —— 你得用正则表达式,在一堆乱码里去匹配结果,哪怕少了一个空格,都可能匹配不上。

02 用 rmux 则可以这样写:

伪代码展示rmux的事件驱动与结构化读屏逻辑

我用一张图来做个对比,一目了然。

tmux方式与rmux方式在等待、读屏、可靠性、可读性上的对比表格

用大白话概括:

用 tmux 做自动化好比盲人摸象,而用 rmux 则是在睁眼开车。

最大的改变是什么?

01 不再靠猜,而是靠等

以前写 tmux 自动化脚本,最折磨人的就是估算等待时间。

等得太短,命令可能还没跑完;等得太长,不仅浪费时间,还不一定准。

rmux 直接用 wait_for_text("ready") 这样的指令。

你只需告诉它“等到出现 ‘ready’ 这个词就继续”,它便会老老实实守在那里,一出现就立刻通知你。

完全不用 sleep,也不用瞎猜。

02 能直接读懂屏幕上的字

tmux 抓到的屏幕内容多半是含有一堆 escape 序列的“乱码”,必须由你自己去解析。

而 rmux 会直接告诉你:第几行、第几个字符具体是什么字,用了什么颜色、什么样式。

这感觉就像是你直接看懂终端上显示的本来面目,而不是攥着一把原始数据去慢慢揣摩。

03 写代码就像操作浏览器

用过 Playwright 的朋友,应该一眼就能看出异曲同工之妙。

做个类比:

  • 连接终端,就好比打开浏览器。
  • 发送命令,相当于点击按钮。
  • 等待结果,类似于等待页面加载完毕。
  • 读取状态,则像是直接去读页面上的文字。

把这种“等它好了再下一步”的模式,搬到了终端里。

左侧为Playwright终端测试日志,右侧为rmux目标Web应用界面

04 Windows 用户终于有救了

这一点对 Windows 用户尤其重要。

以往想在 Windows 上用个好用的终端多路复用器,要么得装 WSL(Linux 子系统),要么就得依赖各种兼容层,常常折腾半天。

rmux 直接提供了原生的 Windows 支持,不需要虚拟机,也不需要任何兼容层,装好就能用。

对那些每天在 Windows 上敲代码的朋友来说,这还是头一回有一个正儿八经的终端工具能直接跑起来。

05 连 htop 这种界面都能自动化

rmux 不只能自动化命令行,还能自动化界面程序。

用过 htoplazygit 这类工具就会明白,它们并不是简单地输入命令然后输出结果。

它们属于那种带界面的、需要用键盘上下左右导航的程序。

传统的自动化方式很难应对这类工作,但 rmux 可以观察到这些程序的界面状态,然后模拟按键去操作它们。

这意味着:你几乎能够自动化终端里的所有东西,而不再局限于简单的命令行工具。

Zellij终端分屏界面中ping命令的彩色输出

浏览器与终端通过rmux实现屏幕镜像同步操作的演示

特别是在多 Agent 协调与复杂任务编排方面,rmux 展现出了强大的潜力:

三个AI代理在终端中协同创作故事的多窗口布局

rmux广播大厅中五个AI代理在线并响应同一消息

看完这些功能,估计不少朋友已经想上手试试了

Mac 和 Linux 用户,直接用下面这一行命令就能安装:

curl -fsSL https://rmux.io/install.sh | sh

Windows 用户呢,打开 PowerShell,复制并执行这条命令:

irm https://rmux.io/install.ps1 | iex

要是你不想用命令行安装,也可以直接去下载安装包。

rmux各平台二进制包的下载列表及SHA256校验信息

用起来和 tmux 非常类似:

rmux new-session -d -s work
rmux split-window -h -t work
rmux send-keys -t work 'echo "hello from rmux"' Enter
rmux attach-session -t work

用过 tmux 的朋友,上手几乎是零成本。

写在最后

rmux 确实是个好东西,但也别把它神化了。在日常使用场景下,tmux 会显得更稳定、更成熟一些。

毕竟 rmux 才刚刚起步。

要是你平时工作中 tmux 用得少,手动操作终端就已经完全够用,没必要再搞个 rmux。

但如果你希望让终端去干自动化的活儿,想让 AI 帮你操作终端,想用程序化的方式去读取终端状态,那 rmux 绝对值得你一试。

毕竟,能让程序员省下时间的工具,都值得我们鼓励。

这个项目基于 MIT 或 Apache-2.0 双协议开放。感兴趣的同学,可以直接去它的 GitHub 仓库 查看源码和文档。




上一篇:父线程TraceId明明传了,为何高并发下日志全串号?
下一篇:向量入门基础概念详解:从标量/向量到数乘的完整学习笔记
您需要登录后才可以回帖 登录 | 立即注册

手机版|小黑屋|网站地图|云栈社区 ( 苏ICP备2022046150号-2 )

GMT+8, 2026-6-1 04:46 , Processed in 0.958111 second(s), 39 queries , Gzip On.

Powered by Discuz! X3.5

© 2025-2026 云栈社区.

快速回复 返回顶部 返回列表