README.md
从explainshell拷贝过来。
原来的命令输出都是英文的并且man信息是从服务器上实时查询的。
这里准备构建一个完整的命令行中文man信息库,并且将输出都改成中文。
是什么?
输入一行命令行,输出其中每个命令的man页面。如果命令指定了参数,输出该参数的含义。
这个工具可用于辅助学习linux命令和shell语法。
怎么实现的?
- 扫描命令行的AST树(通过bashlex实现),获取每个处理子命令(matcher.py)
- 读取相关的man页面,转换成html格式(manpage.py)
- 识别man页面中的选项信息(algo/classifier.py)
- 将2.3中的处理信息存储到mongodb中,方便下次直接使用(store.py)
- 读取命令选项(如果指定了),从man页面中提取该选项相关内容(options.py)进行显示
怎么运行?
$ sh start.sh
构建man数据库
$ PYTHONPATH=. python explainshell/manager.py --log info
docker 运行
$ docker-compose build
$ docker-compose up