首页 > 解决方案 > 创建一个文本文件作为 Unix 中的命令手册

问题描述

无论如何创建一个文本文件,其功能与 man 命令在 unix 中的工作方式相同?本质上是创建一个格式化的文本文件,其目的与 Unix 的手册相同。无论如何,我可以使用 grep 或 sed 命令从本手册文本文件中提取命令信息吗?

如果有人有任何资源或任何关于我如何开始或学习如何做到这一点的提示,那将很有帮助。

标签: cunixemacsmanual

解决方案


手册页通常存储在 /usr/share 下的 man 目录中,您可以使用它manpath来查找您的发行版使用的目录。该目录通常分为与手册节对应的子目录man1,man2,...等,文件名为program_name.1(其中1是节号)。例如 man 文件cat可以在/usr/share/man/man1/cat.1.

这些文件是使用带有man宏包的troff(一种排版语言)编写的。您可以直接查看这些文件,但是如果您不了解 troff 语法,它们会让人感到困惑。你可以使用命令

nroff -man man_file.1

要查看手册的排版版本,实际上 man 命令基本上只是找到您要查找的 man 文件并通过 nroff 和 less 运行它。您可以使用管道模拟此功能:

nroff -man man_file.1 | less

有些系统会压缩他们的 man 文件,在这种情况下你需要先使用gunzip

gunzip -c man_file.1.gz | nroff -man | less

因此,要搜索 man 文件,您可以将此输出通过管道传输到 grep、sed 甚至是文件中以进行进一步处理。需要注意的一点是,nroff 的输出将包含一些用于在终端上格式化的转义序列,因此如果在文本编辑器中打开它可能看起来很乱,尽管它仍然可以与 sed 等程序一起使用。

您可以从以下链接中找到有关 troff 的更多信息:

  • Groff troff 的 GNU 实现(用于大多数系统)。
  • Troff 资源关于 troff 及其各种预处理器的论文集。
  • Unix Text Processing一本关于 troff 和其他基于 unix 的文本处理的书。

推荐阅读