有没有办法将所有的Linux手册页转换为纯文本,HTML或标记?
我需要为我的系统上安装的每个人文件执行此操作。
是的……把他们中的一个人说出来,比如说人类的男人:
zcat /usr/share/man/man1/man.1.gz | groff -mandoc -Thtml
如果你想'所有的安装在你的电脑上',你只需要遍历它们。 对于不同的输出(例如文本),使用不同的“设备”(-T参数)。
以防万一…如果“迭代”是真正的问题,你可以使用:
OUT_DIR=... for i in `find -name '*.gz'`; do dname=`dirname $i` mkdir -p $OUT_DIR/$dname zcat $i | groff -mandoc -Thtml > $OUT_DIR/$i.html done
使用命令man -k ''
可以列出所有可用的手册页名称,这可能比find
和zcat
原始手册页数据文件更好; 同时,man命令有一个选项-T, --troff-device[=DEVICE]
可以生成给定的man-page部分和名字的HTML。 所以下面的bash脚本来把你的Linux中所有可用的man-pages转换成HTML文件 :
man -k '' | while read sLine; do declare sName=$(echo $sLine | cut -d' ' -f1) declare sSection=$(echo $sLine | cut -d')' -f1|cut -d'(' -f2) echo "converting ${sName}(${sSection}) to ${sName}.${sSection}.html ..." man -Thtml ${sSection} ${sName} > ${sName}.${sSection}.html done
在没有Internet访问权限的在线手册页服务不可用的内部网中,将这些文件放在静态HTTP服务器(如Nginx中)上,使用autoindex是一个不错的选择,其中浏览和Ctrl + F可能方便。
man -Hfirefox ls
在Firefox中直接打开“ls”的手册页
今天是你的幸运日。 有人已经为你做了这个。 http://linux.die.net/