前段时间我们分享了explainshell.com 一个命令行解释的网站,它会分析命令的帮助文档,根据你想查询的命令参数来抽取对应的解释,然后非常清晰地显示出来。
然而,有时我们会有本地查询的需求,比如:
- 没有网络或网络很差(可能是沙漠里的无人区,或者管理严格的公司)
- 本机上的命令网站上没有收录其帮助文档,或者收录的是不匹配的版本的文档
本文将介绍如何在本地架设explainshell服务。放心,这很容易。
首先我们需要将explainshell的git仓库克隆到本地:
git clone https://github.com/idank/explainshell.git
然后是安装需要的依赖。首先要安装mongodb,在Debian/Ubuntu下可以通过如下命令安装:
sudo apt-get install mongodb
然后是python的一些库,可以自动安装:
cd explainshell
pip install -r requirements.txt
之后是用mongodb加载分类数据:
mongorestore dump/explainshell && mongorestore -d explainshell_tests dump/explainshell
好了,差不多完成了,运行下测试,确保没出什么问题:
make tests
测试O.K.之后,我们添加下man page。仓库里自带的man page屈指可数,仅供测试之用。我们需要将本机上的man page添加过来。
rm -r manpages/1 manpages/2
ln -s /usr/share/man/man1 manpages/1
ln -s /usr/share/man/man8 manpages/8
python explainshell/manager.py --log info echo
注意我们使用了软链接,这样不会占用额外的磁盘空间,最重要的是,我们的操作系统更新软件之后我们不需要重复添加。
好了,现在只需启动服务就可以了
make serve