此外man
,info
还可以提供命令信息。
- 对于我尝试过的命令,我发现
info
提供了与 相同的信息man
。所以我想知道是否info
总是查找手册页?它还循环什么?即它的来源是什么? - 这两者是否为同一组命令提供信息?
答案1
所以我想知道信息是否总是查找手册页?
(假设你的问题是关于standalone-info
)你的怀疑确实是正确的。如果独立程序info
找不到相应的信息页,它将查找手册页。可以证明如下
首先,让我们创建一个既不作为 man 也不作为 info 存在的手册页。让我们创建一个mexico
没有人员或信息的虚构命令。
确认:
$ man mexico No manual entry for mexico $ info mexico (opens in Info, but displaces Top) No menu item `mexico' in node `(dir)Top'.
现在,创建一个简单的联机帮助页,并确保它位于路径中。
$ mkdir -p $HOME/.myman/man0 $ cat > $HOME/.myman/man0/mexico.0 .TH MEXICO 0 "2018" "Mexico Version 0.0" .SH SEE ALSO adisababa(0), timbuktu(0)
并查看它可以从 访问man
。人的祈求是man [section] <name>
。
export MANPATH=$HOME/.myman:$MANPATH export MANSECT=$MANSECT:0 man 0 mexico
检查同样的情况info
。调用是info <node> [topic]
.这应该会在信息中打开相同的页面。
info mexico 0
不幸的是,只有在未找到信息节点时,信息才会执行此操作。如果找到该节点,但未找到主题,info 将简单地打开该信息节点,并表示未找到该主题。它正在使用手册页的提示将位于信息的第一行。应该说文件:*联机帮助页*。
不幸的是,info
文档对此什么也没说。
它还查找什么?即它的来源是什么?
据我所知来源(因为它在官方文档中没有提及),它可以阅读手册页,但是来源没有任何其他暗示(除了简单的信息)。
这些info
页面通常安装在几个系统目录中。可以通过在字符串中查找“/info”来找到这些目录
strings `which info` | grep /info
可以通过更新来设置更多信息目录INFOPATH
。信息文件是从他们的文本信息来源。
这两者是否为同一组命令提供信息?
不,info
和man
是两个独立的实用程序,具有不同的文档页面。许多开发人员喜欢同时提供信息页和手册页,但它们是分开存在的,并且一些开发人员可能决定只提供其中之一。正如我之前提到的,信息可以阅读手册页如果没有找到相应的信息文件(您可以确定它何时正在阅读手册页)。 (手册页是一个较旧的系统,根本不会回退到信息页面)。
答案2
不,info
是一个单独的公用事业,具有单独的页面。然而,没有什么可以阻止程序作者/文档编写者为两者提供相同的信息。
答案3
在以下说明中,重要的是不要混淆 Texinfo ( texinfo
)、独立信息阅读器 ( info
) 和嵌入在 GNU Emacs 中的信息阅读器 ( M-x info
)。
有两种主要的 Info 阅读器:
info
,一个专门用于读取 Info 文件的独立程序(请参阅什么是 Info?)和info
GNU Emacs 中的包,一个通用编辑器。
Texinfo 手册:概述一章,添加输出格式一节:
有时,有人提出从 Texinfo 源生成传统 Unix 手册页的建议。然而,由于手册页有严格的约定格式,创建一个好的手册页需要一个与编写好的用户教程和/或好的参考手册的典型 Texinfo 应用程序所需的完全不同的源。这使得生成手册页与 Texinfo 设计目标不兼容,即不必为不同的输出格式以不同的方式记录相同的信息。您不妨直接编写手册页。
信息手册的结构与man
页面完全不同,请参阅GNU 信息有什么用?。
根据@Kyle Jones 的说法,请参阅https://unix.stackexchange.com/a/77533
原始的 Texinfo 处理器和 Info 文档浏览器两者都是用 Lisp 编写并在 Emacs 中运行。几年后,独立的 Texinfo 实用程序问世。
独立信息:章节独立信息
Emacs Info 和独立 Info 有几乎相同的用户界面,尽管定制和其他细节有所不同(本手册解释了独立的信息阅读器)。
此外,GNU Emacs 可以读取man
页面(man 包,默认安装),Info 系统(makeinfo
, info
, ...)基于创建一个页面的原理文件系统1.看一下 GNU Emacs 的内置文档系统:M-x describe-function
、 typeman
和Enter
.
man 是一个交互式自动加载的 Lisp 函数
man.el
。(男人 MAN-ARGS)
获取 Un#x 手册并将其放入缓冲区。该命令是 man 包中的顶级命令。它运行 Un#x 命令来检索和清理联机帮助页在后台并将结果放置在
Man-mode
浏览缓冲区中。 [...]对于特定部分的联机帮助页,请使用以下任一选项。 “cat(1)”是交叉引用的显示方式,并作为“1 cat”传递给 man。
cat(1) 1 cat
要查看与某个主题相关的所有部分的联机帮助页,请使用“所有页面”选项(如果不是默认选项,则可能是“-a”),然后使用
Man-next-manpage
(Mn) 等逐步执行。添加到Man-switches
以使此选项永久存在。 [...]
我们可以使用 options 知道信息阅读器将使用哪个来源-aw
。有关详细信息,请参阅手册“info-stnd”的“调用信息”部分。
prompt% info -aw dmesg
*manpages*
prompt% info -aw printf
/usr/share/info/libc.info.bz2
*manpages*
1如需了解更多信息,请阅读手册 Texinfo。