一个更智能的 cd 命令,记住常用目录,几个按键即可跳转,支持主流 shell。
idank/explainshell
通过将命令行参数匹配到 manpage 帮助文本来解释 shell 命令的网页工具与 Python 库。
- Star
- 14,297
- Fork
- 854
- 未关闭 Issue
- 57
- 最近提交
- 2个月前
这是什么?
explainshell 接收一条带参数和选项的 shell 命令行,使用 bashlex 将其解析为 AST,再把每个片段与对应 manpage 中提取出的选项说明进行匹配。结果会展示命令各部分的作用,适合阅读不熟悉的单行命令。
项目通过 roff 宏或基于 LLM 的提取器解析 manpage。LLM 返回的是原始文本中的行号范围,帮助文本直接从 manpage 切片得到,而不是生成的内容。处理后的 manpage 存储在一个 SQLite 数据库中,由 Flask 渲染网页界面。管道和 && 等 shell 操作符也会作为独立节点处理。
仓库提供用于提取、比对和查看 manpage 数据的 manager 命令行工具,以及 LLM 提取和 mandoc 渲染的评估脚本。线上数据库通过 GitHub Release 发布,其中的 manpage 内容遵循各自上游的许可证。
核心功能
- 01将 shell 命令中的每个参数匹配到 manpage 中对应的选项说明。
- 02通过 AST 解析命令行,支持管道、&& 等 shell 操作符。
- 03可用 roff 宏或 LLM 提取选项,LLM 返回原文行号范围。
- 04处理后的 manpage 存入单个 SQLite 数据库,并提供基于 Flask 的网页界面。
- 05提供命令行工具用于提取、比对和查询 manpage 数据。
适用场景
- 在运行陌生的单行命令或管道前理解每个部分的作用。
- 审查脚本或文档中的 shell 命令。
- 基于 manpage 数据自建命令参考站点。
- 评估或比较基于 LLM 的 manpage 选项提取效果。
快速上手
- 1
克隆仓库
git clone https://github.com/idank/explainshell.git - 2
安装 Python 依赖(按 README 在虚拟环境中进行)
pip install -r requirements-dev.txt - 3
下载线上数据库
make download-latest-db - 4
启动 Web 服务器,然后打开 http://localhost:5000
make serve
使用前须知
- 代码采用 GPLv3 许可证,因此衍生发行版也必须采用 GPLv3。
- 发布的数据库包含各上游手册页,它们各自有独立许可证,再分发前需要自行进行许可合规审查。
- 提取新的手册页需要访问 Codex 等 LLM 服务商或 OpenAI API 密钥。
标签
常见问题
- explainshell 是什么?
- 通过将命令行参数匹配到 manpage 帮助文本来解释 shell 命令的网页工具与 Python 库。 explainshell 接收一条带参数和选项的 shell 命令行,使用 bashlex 将其解析为 AST,再把每个片段与对应 manpage 中提取出的选项说明进行匹配。结果会展示命令各部分的作用,适合阅读不熟悉的单行命令。
- explainshell 可以免费使用吗?用的什么许可证?
- explainshell 以 GPL-3.0 许可证开源。用于商业产品前,请先确认许可证条款。
- explainshell 还在维护吗?
- 半年内有更新。explainshell 最近一次提交是在 2026年8月26日。
- explainshell 适合用来做什么?
- 在运行陌生的单行命令或管道前理解每个部分的作用。 审查脚本或文档中的 shell 命令。 基于 manpage 数据自建命令参考站点。 评估或比较基于 LLM 的 manpage 选项提取效果。
- explainshell 怎么安装和运行?
- 克隆仓库: git clone https://github.com/idank/explainshell.git 安装 Python 依赖(按 README 在虚拟环境中进行): pip install -r requirements-dev.txt 下载线上数据库: make download-latest-db 启动 Web 服务器,然后打开 http://localhost:5000: make serve
- 在哪里获取 explainshell?
- 源代码和安装说明在 GitHub 上:https://github.com/idank/explainshell
概要由 AI 根据项目 README 生成;GitHub 数据每日更新。
相关项目
一个符合 POSIX 标准的 bash 脚本,用于在用户和 shell 级别安装并切换多个 Node.js 版本。
通用命令行模糊查找工具,可过滤任意输入列表,并为 Shell 脚本提供交互式终端选择界面。
基于 JavaScript 编写 Shell 风格脚本的工具,封装 child_process 并自动转义参数,兼容多平台。
基于 Python 类型提示构建命令行应用的库,自动生成帮助信息并支持 Shell 自动补全。