简介
对着一条从教程或同事那里复制来的长命令,大多数人只认得开头的程序名,剩下的 -f、-N、-0 全靠猜。ExplainShell 就是为这个场景做的:把整条命令行拆成一个个参数块,逐块给出它在手册页里的解释。它替代的是「翻半天 man 再翻几页搜索」的流程,不替代对命令风险的判断——它解释语法,不评估后果。
机理上它先用 bashlex 把命令行解析成语法树,再对树上的每个命令节点做选项匹配;解释文本不是另写的摘要,而是从手册页里切出的原文行区间,抽取出错也只表现为缺行,不会冒出一句编造的参数含义。手册页按发行版、版本、章节、文件名四段归档(例如 ubuntu/26.04/1/tar.1.gz),来源是 Ubuntu 归档与 manned.org 的公开手册,整库压在一个 SQLite 文件里,可以整包下载后离线自建。对中文站长的实用价值在于:写命令教程时能把每个参数的出处核对到原文,不必把英文手册整段搬进正文。
适用人群
天天在终端里拼管道、写一次性运维脚本,需要确认某个开关到底做什么的人最合适;要写命令行教程、给每个参数配准确解释的站长也合适。如果只是反复跑那几条固定命令,或者想让它替你判断「这条命令会不会把数据删光」,那就不必用——它给的是手册原文,不是风险评估。
优缺点
- ✅ 解释文字切自手册原文,参数含义不靠模型转述,不会出现看起来合理却不存在的选项说明
- ✅ 支持整条复合命令,管道、逻辑运算、命令替换、for 循环都能定位到具体片段,不用自己一句句拆
- ✅ 完全免费、免注册,主界面只有一个输入框,没有广告墙和试用倒计时
- ✅ 代码以 GPLv3 开源,可自建离线实例,适合内网环境
- ❌ 只解释语法与参数,不评估风险,示例清单里就摆着 fork 炸弹这类破坏性写法
- ❌ 解释页启用了人机验证,脚本批量请求会被挡回,不能当接口接进自动化
使用方法
- 打开站点即可用,不需要注册或登录;把命令行粘贴进输入框,输入框左侧的 all 勾选项决定是否对手册库里没有的程序也输出解释块,只查常见命令时取消勾选能让结果更聚焦。
- 点 EXPLAIN 之后,结果页把命令、选项、参数分色标出,每个选项旁边给出它在手册里的原句,按颜色顺序读一遍就能确认参数是不是被正确拼接。
- 进阶做法:把整条带管道与命令替换的复合命令一次粘进去,它会拆到每个子命令分别解释;写教程时再按这套分色顺序当参数清单核对,漏写参数值的错误会立刻暴露。
- 两点注意:解释依赖服务器上的手册库,冷门工具或刚发布的版本可能查不到;批量脚本请求会被中间的人机验证挡回,需要自动化就自建实例,下载官方数据库后在本地起服务,默认监听 5000 端口。
收费说明
结论是完全免费:没有账号体系、没有订阅档位、也没有查询次数限制,整站找不到价目表或付费入口,全部功能打开即用。唯一花钱的地方是自己部署——代码是 GPLv3,自建不需要授权费,成本是一台能跑 Flask 的服务器加上手册库的磁盘占用(整库是数万份手册页)。需要留意的是解释文本取自各家手册页,版权分属不同上游(GPL、BSD、MIT 等都有),要再分发数据库得逐页确认许可,商用之前先做一轮合规确认。
平台支持
形态是纯网页应用,浏览器打开就能用,不必装客户端,也没有 App 版本。国内可直连打开,首页加载正常;真正可能卡的是解释结果页,它前面有一层人机验证,正常浏览器点一下通常自动通过,脚本或爬虫会被挡回。页面图标引用 cdnjs 公共 CDN,网络不稳时图标可能显示不全,不影响主要功能。没有 API、没有命令行客户端,但项目开源,可以按官方说明下载数据库在本地起服务,做成内网离线版;手机浏览器也能打开,只是长命令在窄屏上不好读。
截图













