Linux info 命令:阅读 GNU 手册、导航节点与搜索索引
info 用于在终端中阅读 Info 格式的手册,常见于 GNU 软件。它把文档组织为节点、菜单、交叉引用和索引,适合沿章节深入阅读;需要快速查语法与选项时,也可以配合 man 手册查询命令使用。
GNU Coreutils 等项目的 Info 手册往往提供较完整的背景、选项关系和示例。本文介绍如何打开文档、移动节点、搜索正文与索引、定位文件以及处理文档缺失;按键和选项以独立运行的 GNU Info 为准,不适用于所有其他 Info 阅读器。
info 命令是什么?
Info 是 Texinfo 文档系统的一种输出格式,info 是读取这种格式的文本界面程序。手册通常安装在 /usr/share/info 等目录,一份手册可以包含多个节点,也可能拆成若干物理文件。节点是逻辑阅读单元,不等于一个终端屏幕或一个磁盘文件。
菜单连接下级主题,交叉引用连接相关节点或其他手册,索引则把术语引向对应解释。只有软件实际提供并安装了文档,阅读器才能显示它;安装可执行程序不代表相应手册也已安装。
基本语法与启动方法
以下是语法示意,方括号表示可选内容,省略号表示可重复指定;不要把这一整行当作实际命令复制执行。
info [options...] [manual] [menu-or-index-item...]
不带参数运行时,Info 会合并搜索路径中的 dir 文件,显示已注册手册的顶层目录菜单。
info
Info 的一般使用指南与独立阅读器的详细手册可分别这样打开,前提是这些文档已安装:
info info
info info-stnd
指定程序或手册名称时,Info 首先查找目录条目,进入条目指向的文件和节点;没有对应条目时,还会尝试在搜索路径中寻找同名手册文件。
info ls
info coreutils
info ls 通常进入 Coreutils 手册里的 ls 节点,而不要求存在独立的 ls.info。目录条目可以直接指向一本手册中间的节点,因此实际起始位置取决于本机文档和目录注册情况。
理解 Info 文档的结构
| 术语 | 含义 |
|---|---|
| 节点(Node) | 手册的逻辑单元,常对应一章或一节;内容可能超过一屏。 |
| 菜单(Menu) | 从当前节点进入下级主题或相关条目的列表。 |
| 交叉引用(Xref) | 指向其他节点或其他 Info 手册的链接。 |
| 目录节点(Directory Node) | 汇总、分类本机已注册手册的顶层菜单。 |
节点顶部可能显示文件名、节点名以及 Next、Prev、Up 等指针,底部模式行显示当前手册、节点和阅读位置。节点的先后关系、层级关系与访问历史是不同概念,移动时需要选择对应的命令。
翻屏与节点导航的常用按键
下表采用 GNU Info 默认键位。个人配置和 --vi-keys 会改变部分绑定,终端也可能影响 Backspace、Delete 或 Shift+Tab 的传递方式。
| 按键 | 作用 |
|---|---|
Space |
向后翻一屏;到达节点末尾后可以继续到后续节点。 |
Backspace、Delete |
向前翻屏;通常对应终端发送的 DEL,节点开头也可能继续向前浏览。 |
n |
进入当前节点的 Next 指针所指向的节点。 |
p |
进入 Prev 指针所指向的节点。 |
u |
进入 Up 指针所指向的上级节点。 |
t |
回到当前 Info 文件的 Top 节点。 |
d |
显示汇总手册的目录节点。 |
l |
按访问历史回到先前阅读的节点。 |
m |
输入当前节点中的菜单条目名称并打开它。 |
Tab、Shift+Tab |
把光标移到下一个或上一个菜单条目或交叉引用。 |
Enter |
打开光标所在的菜单条目或交叉引用。 |
H |
打开基本键位的简短帮助窗口。 |
h |
进入介绍 Info 使用方法的帮助节点。 |
q |
退出 Info。 |
初次使用可以先打开 info info-stnd,按大写 H 查看键位,再用 Space 和 Backspace 阅读。某个节点没有相应的 Next、Prev 或 Up 指针时,不能假定该方向一定可跳转。
沿菜单与交叉引用阅读
用 Tab 和 Enter 选择链接
当屏幕上有菜单或交叉引用时,先按 Tab 把光标移动到目标,再按 Enter 打开。Shift+Tab 返回前一个可选条目。这种方式不要求记住节点名称,适合先探索文档结构。
用 m 输入菜单名称
按 m 后,在底部输入区输入菜单条目的名称;可以输入部分名称,再用 Tab 补全或查看候选,确认后按 Enter。该命令选择的是当前节点菜单中的条目,不能把任意正文词语都当作菜单名。
跟随链接之后要回到先前节点,用 l;要进入文档结构上的上级节点,用 u。前者依赖访问历史,后者依赖节点的 Up 指针,两者并不总会到达同一位置。
搜索正文、当前索引与全部索引
搜索正文内容
按 s 或 /,输入模式并按 Enter,在当前 Info 文件中向后搜索,可以跨越节点。GNU Info 默认按扩展正则表达式解释搜索内容;想把点号、星号等作为普通字符查找时,可按大写 R 切换正则表达式与字面量搜索,具体状态以当前界面为准。
默认情况下,搜索模式含大写字母时区分大小写,否则忽略大小写。? 向前搜索;Ctrl+s 和 Ctrl+r 分别执行向后与向前的增量搜索,边输入边定位。若终端截获控制键,可改用 s、/ 或 ?。
重复同一正文搜索可按 s 后直接按 Enter,沿默认模式继续;也可使用 } 查下一个、{ 查上一个匹配项。默认键位中的 n 是节点导航,不能套用 less 的搜索习惯。
用索引寻找主题
按 i 输入术语,Info 会查当前手册的索引,并跳到第一个匹配条目所指向的节点;随后按逗号 , 查看下一个匹配条目。索引适合查找概念名或选项名,但是否能找到,取决于作者是否建立了相应索引。
大写 I 会把匹配的索引条目汇总到临时生成的虚拟节点中,方便比较后选择。它与小写 i 的呈现方式不同,也不是扫描所有已安装手册。
搜索本机可找到的全部 Info 索引
不知道主题属于哪本手册时,在 Shell 中使用 -k 或 --apropos。结果写到标准输出后程序退出,搜索范围是 Info 能找到的本机手册索引,不是互联网,也不是所有文档的全文;手册较多时可能需要等待。
info -k permissions
info --apropos='regular expression'
直接打开指定手册与节点
按手册名或程序名打开
下面的命令打开 Coreutils 手册的入口;它没有要求把整本手册一次显示在同一屏幕。
info coreutils
如果本机安装了 Coreutils 的 Info 文档并正确注册相应目录条目,也可以按程序名进入对应说明。仅安装 Coreutils 的可执行文件并不足以保证这些命令能找到文档。
info ls
info cp
info date
明确指定节点名称
-n 或 --node 指定初始节点。节点名带空格时需要引号,确保 Shell 把它作为同一个参数传入。
info coreutils -n 'ls invocation'
也可以把 (手册名)节点名 整体作为参数传入。括号和空格都应放在引号内,避免被 Shell 当作语法解释。
info '(coreutils)ls invocation'
这两个例子都以文档中存在 ls invocation 节点为前提。名称可能随版本或文档翻译变化;找不到时,先用 info ls、菜单或索引确认实际名称,再指定 -n。
查找命令行调用说明
-O、--show-options 与 --usage 用于查找介绍程序调用方法的节点,程序名来自其他非选项参数。
info ls -O
info --show-options coreutils
能否定位取决于手册结构;info --show-options coreutils 不是列出所有 Coreutils 命令的选项集合。若找不到合适节点,直接打开手册,再通过菜单或 i 查相应程序。
常用命令行选项
下表概括 GNU Info 的常用选项,完整支持范围应以本机 info --help 和 info info-stnd 为准。
| 选项 | 含义 |
|---|---|
-k 字符串、--apropos=字符串 |
查找本机可发现的全部 Info 手册索引。 |
-n 节点、--node=节点 |
指定初始节点。 |
-f 手册、--file=手册 |
直接选择手册文件,跳过 dir 目录条目名称查询;非路径名称仍可利用搜索路径。 |
-w、--where |
输出将读取的文档文件位置后退出。 |
-d 路径、--directory=路径 |
增加文档搜索目录,可重复使用。 |
-o 文件、--output=文件 |
把所访问节点的内容输出到文件,替代交互阅读。 |
--subnodes |
配合 --output 递归输出菜单里的下级节点。 |
-O、--show-options |
尝试定位介绍程序调用方法的节点。 |
--vi-keys |
改用接近 vi 和 less 的部分键位。 |
--version |
显示 Info 版本并退出。 |
查看文档位置与导出文本
确认实际读取的文件
-w 输出 Info 将选择的文件名,适合确认同名手册来自哪个搜索目录;文件路径、压缩后缀和拆分形式随安装方式而异,不应照搬其他机器的绝对路径。
info -w coreutils
GNU Info 也支持与 --all 组合,列出所有匹配的文件。它不能与 --node 一起使用。如果输出中出现 *manpages*,说明涉及 man 页面回退,不能把它当作已找到原生 Info 文件。
info --all --where coreutils
把节点导出为文本
下面的命令把 Coreutils 起始节点及菜单连接的下级节点递归输出到当前目录的 coreutils.txt。先确认当前目录可写,已有同名文件需要保留时应更换输出文件名;导出完成后可用文本阅读器检查章节与内容是否覆盖所需范围。
info --subnodes -o coreutils.txt coreutils
--subnodes 不会导出指向其他 Info 文件的菜单项,也不把索引菜单所指向的每个条目都当作递归目标,每个节点仅输出一次。因此导出的文本不是整个文档链接网络的完整备份。
输出文件写成 - 表示标准输出,可以连接到 less:
info -o - coreutils | less
这个显式 -o - 示例没有 --subnodes,主要输出选中的节点,不应期待它一定包含整本手册。若要递归导出,应明确加上 --subnodes;只需要某一节时可配合 -n,减少输出量。在 GNU Info 中,完全不指定输出选项而直接把输出接到管道时,还会触发非交互输出及其递归行为,不能把两种形式混为一谈。
打开本地文件与调整搜索路径
直接打开本地 Info 文件
以下是路径用法示例,需要先有相应的 project.info 文件。路径中含有斜杠时,Info 只在指定位置寻找目标文件,并把该目录加入文档搜索路径。
info ./project.info
info -f ./project.info
GNU Info 还能读取支持的压缩格式,但对应的解压程序也必须可用。-f 表示跳过顶层目录条目查询,并不意味着任意输入都不再使用搜索路径;只有明确给出目录的路径才限定文件位置。
增加额外的搜索目录
软件文档装在系统默认目录之外时,可以用 -d 临时增加搜索位置。下面的 /opt/example/share/info 与 example 是需要替换的示例值。
info -d /opt/example/share/info example
长期使用的搜索目录还受 INFOPATH 影响,可先查看当前变量与实际查找结果。变量为空不等于完全没有默认路径。
printf '%s\n' "$INFOPATH"
info -w info-stnd
在 Linux 上,INFOPATH 一般以冒号分隔目录,末尾的冒号可追加构建时默认路径列表。GNU Info 还会加入构建时定义的默认文档目录,除非另行启用 infopath-no-defaults。因此修改后应重新核对 info -w 的结果,而不是仅凭变量字面值判断文档来源。
info 与 man 有什么区别?
| 比较项 | info | man |
|---|---|---|
| 文档结构 | 以节点、菜单、交叉引用和索引连接的手册。 | 通常按一个手册页线性阅读,也可包含相关引用。 |
| 适合的任务 | 深入理解背景、章节、长示例与概念关系。 | 快速查询语法、选项、文件和退出状态。 |
| 常见对象 | GNU 软件及其他提供 Texinfo/Info 文档的项目。 | 命令、配置文件、系统调用、库函数等。 |
| 导航方式 | 节点与菜单导航、正文搜索、索引查询。 | 分页器翻屏与字符串搜索等,依实现而异。 |
| 安装条件 | 软件可能没有提供或安装 Info 文档。 | 相应手册页也可能需要单独安装。 |
二者可以互补使用。Info 不天然比 man 更准确或更新,man 也不必然比 Info 简短;应查看项目把哪种文档作为主要依据,并核对它与当前安装程序的版本是否一致。
info 不存在或找不到文档时怎么办?
安装阅读器
最小安装环境可能没有 info。Debian、Ubuntu 常用下面的 APT 命令,第一行更新软件包索引,第二行安装阅读器;需要管理员权限,并以仓库提供该包为前提。
sudo apt update
sudo apt install info
Fedora、Rocky Linux 等 DNF 系统通常使用下面的命令。它与上面的 APT 示例是不同发行版的选择,不要在同一系统上依次照做。
sudo dnf install info
Debian 与 Fedora 的官方包信息均列出 info 阅读器;具体发行版、版本、仓库和包拆分仍应以本机包管理器查询为准。不要仅因为阅读器安装成功,就认定其他程序的 Info 文档已经齐全。
确认目标软件的文档包
先看目录菜单、索引搜索和文件位置。以下以 Coreutils 及权限主题为具体例子;实际诊断其他程序时,把手册名和搜索词换成对应值。
info
info -k permissions
info -w coreutils
若文件不存在,应在发行版仓库查找目标程序的文档包;程序本体和文档可能分包发行。-k 没有结果也可能只是该术语没有索引条目,不能单凭这一点断定文档未安装。
文件存在但目录菜单没有条目
可以先增加文档目录或直接指定文件。下面的目录、手册名和文件名均为占位示例,必须替换为本机实际存在的值。
info -d /additional/document/path manual
info -f /full/path/manual.info
如果从源码安装软件,还应查看安装过程是否更新了 Info 的 dir 目录文件。先核对文件能否直接打开、安装记录和项目说明,再考虑目录注册问题;不要为了让条目出现就随意改写系统共享目录文件。
一套实用的阅读顺序
- 用
info 程序名确认相关手册能够打开,先核对实际文档名称。 - 按
H查看当前键位,再用 Space、n、p、u 理解节点关系。 - 用 Tab 与 Enter,或 m 输入菜单名,进入需要的主题。
- 已知术语时用 i 查询索引,查正文模式时用 s 或 /,需要字面量时确认 R 的搜索模式。
- 不知道手册归属时,回到 Shell 用
info -k 搜索词查询可发现的索引。 - 经常阅读的位置可用 -n 直接打开;导出时先确认目标文件与是否需要 --subnodes。
常见问题
如何退出 info?
默认按 q 退出。不确定键位时,可按大写 H 查看当前帮助。
为什么按 n 后没有进入下一个搜索结果?
GNU Info 默认的 n 跟随 Next 节点指针。正文重复搜索可用 } 或 s 后按 Enter;i 索引搜索后的下一个匹配项则用逗号。启用 --vi-keys 后应重新查看键位。
info ls 与 info coreutils 的起点相同吗?
通常前者经 ls 目录条目进入具体命令说明,后者进入 Coreutils 手册入口。实际起点由本机目录条目和文档版本决定,不能保证每台系统完全相同。
所有 Linux 命令都有 Info 文档吗?
没有。Info 在 GNU 项目中很常见,但其他项目可能只提供 man 页面、--help 或网页说明,应按项目实际提供的文档查询。
Info 一定比 man 更准确吗?
不一定。文档的权威性和更新频率由项目决定,优先核对项目的官方文档指引以及与已安装程序的版本匹配情况。
如何选择合适的查询方式
只需查看简短用法时,可先用程序的 --help 或 man;需要理解背景、完整章节和选项关系时,再进入 Info 手册。先掌握 H、Space、n、p、u、i 与 q,就能逐步熟悉它的阅读方式。其他常用命令的用途可在Linux 常用命令分类与参考中按任务查找。




