手册页完整外部文档 pdf 或文本构建

手册页完整外部文档 pdf 或文本构建

Ubuntu 14.04
man 版本 2.6.7.1
gedit 版本 3.10.4

我正在整理一份完整的手册页文档,目前是 txt 文件,希望最终能找到格式合理的转换器后能将其整理成 pdf 文件,最终目标是能够将其作为可更新的替代资源提供给社区(我当然已经看到足够多的关于它的问题)。我遇到的问题是,我用来处理手册文件的命令返回的字符至少超出了 gedit 的编码范围(尚未尝试使用其他编辑器)。以下是我迄今为止的流程:

alias manGet="sudo apt-get update && sudo apt-get upgrade;man -a /bin/* > binMan.txt && man -a /sbin/* > sbinMan.txt;cat binMan.txt sbinMan.txt > manAll.txt;gedit manAll.txt"
manGet

一旦进入 gedit,编码问题似乎就会出现在分页符附近,在那里它会显示一长串不可显示的字符。因此,本质上有两个问题:

1) 如果可能的话,我该如何更新字符编码以显示这些文件? 2) 如果不可能,我该如何下载支持它们的编码,或者有选择地从文件中过滤它们?

如您能提供任何帮助,我将不胜感激。

注意:我下载并安装了unicode,以为我可以使用它来找到合适的编码,但没有成功(我个人认为我只是还不知道如何使用它)

答案1

有几件事。让我们从捕获所有这些手册页的方法开始。让man我们用man -k .— 我们从一个较短的例子开始:

$ man -k rmdir
rmdir (1)            - remove empty directories
rmdir (1posix)       - remove directories
rmdir (2)            - delete a directory
rmdir (3posix)       - remove a directory

我们需要解析该列表。我们需要命令和括号中的部分。我们可以awk使用它的参数来拆分它-F(我们只需告诉它分隔符是什么字符),另外,为了避免弄乱 Bash 变量,我们awk也可以创建下一个命令。

在开始之前,我们需要知道要运行什么命令。如果安装了,则man可以生成 HTML 文件( )。这可能是目前对您来说最好的想法,因为它保留了相当简单的格式。如今它也相当普遍。我们用它来告诉它将 HTML 呈现给 cat 命令(它需要浏览器)。这里有 部分(有关这些内容的更多信息,请参阅)。groffsudo apt-get install groff-Hcat1man man

man -Hcat 1 rmdir

因此,为了使这一切恢复原状,让我们用 awk 分割输出man -k,创建命令并在一行中执行它:

man -k . | awk -F '[ ()]' '{print "man -Hcat",$3,$1," > "$1"."$3".html" | "/bin/sh"}'

这将创建一个 HTML 文件每一个手册页。这将需要很长时间才能完成,因此我建议只使用示例进行测试,rmdir因此我建议从以下位置开始rmdir

man -k rmdir | awk -F '[ ()]' '{print "man -Hcat",$3,$1," > "$1"."$3".html" | "/bin/sh"}'

这样我就得到了 4 个 HTML 文件(rmdir.1.htmlrmdir.1posix.html和)。要将它们变成一本书,我强烈建议您查看rmdir.2.html。这既是命令行应用程序,也是图形应用程序。我建议您先习惯图形版本。rmdir.3posix.htmlhtmldoc

就这样,所有的手册页都已排序,并带有目录(如果您需要的话),格式保存在一个漂亮的文档输出中(HTML 或 PDF)。

答案2

这样做有很多严重的问题。我注意到,当我运行它时,它会导致终端每秒吐出大量错误。更好的方法是这样做:

for binary in $(ls /bin); do man -a $binary >> ~/binMan.txt; done

不过,我认为如果为每个程序创建一个文件会更好,在这种情况下可以这样做:

for binary in $(ls /bin); do man -a $binary > ~/$binary.txt; done

相关内容