Linux之info指令用法
目录
- linux info 指令
- 什么是 info 指令?
- 概述
- 核心概念
- 核心特点
- 基本语法
- 注意事项
- info 的常见用途
- 应用场景
- 基础用法与示例
- 准备工作
- 示例 1:查看 bash 文档
- 示例 2:直接访问特定节点
- 示例 3:非交互式输出
- 示例 4:搜索相关文档
- 示例 5:查找索引
- 示例 6:显示文档路径
- 常用选项与功能
- 文档查询
- 输出控制
- 环境配置
- 高级用法
- 概述
- 1. 自动化文档提取
- 2. 创建自定义 Info 文件
- 3. 与 grep 结合
- 4. 脚本化索引搜索
- 5. 自定义 INFOPATH
- 使用 info 时的注意事项
- 高级技巧与实战案例
- 概述
- 案例 1:开发者参考脚本
- 案例 2:自动化索引报告
- 案例 3:安全 Info 访问
- 案例 4:文档同步
- 案例 5:动态查询工具
- 总结
Linux info 指令
info
是 Linux 系统中用于查看 GNU 软件文档的命令行工具,提供交互式、结构化的方式访问详细帮助信息。与 man
命令相比,info
文档更全面,组织更模块化,支持超链接导航,适合深入学习 GNU 工具和库的用法。作为 GNU 项目的一部分,info
广泛应用于 Linux 发行版(如 Ubuntu、Centos、Arch Linux),为开发者、系统管理员和用户提供强大的技术参考。
什么是 info 指令?
概述
info
是 Linux 命令行工具,用于浏览以 Info 格式编写的 GNU 软件文档。
Info 文档是 GNU 项目开发的超文本文档系统,基于 Texinfo 格式,涵盖 GNU 工具(如 gcc
、bash
)、库(如 libc
)及系统的详细说明。相比 man
页面注重简洁参考,info
文档更像结构化的电子书,包含章节、子章节、索引和交叉引用,适合系统性学习。
info
通过交互式界面或直接查询访问文档,支持导航、搜索和定制化输出,是 Linux 用户获取技术信息的重要工具。
核心概念
- Info 文档:Texinfo 格式的超文本文件,通常存android储在
/usr/share/info
。 - 节点(Node):Info 文档的基本单元,类似章节或页面。
- 超链接:通过菜单或交叉引用连接节点,支持跳转。
- 索引:提供关键词快速定位功能。
- 交互模式:默认启动交互式界面,类似文本浏览器。
- 命令行模式:支持非交互式查询,输出特定节点或段落。
退出状态:
- 成功:返回 0。
- 失败(如文档不存在):返回非 0。
核心特点
- 结构化文档:分层组织,适合深入学习。
- 交互导航:支持菜单、索引和超链接。
- 跨平台:GNU 标准,兼容 Linux、BSD、MACOS。
- 搜索功能:支持全文和索引搜索。
- 定制输出:可提取特定节点或格式化输出。
- 开源:与 GNU 生态紧密集成。
基本语法
info [选项] [主题] [节点]
参数说明
- 主题:查询的文档或程序名(如
bash
、gcc
)。 - 节点:文档中的具体节点(如
Commands
),可选。
选项:
-f, --file=FILE
:指定 Info 文件路径。-n, --node=NODE
:直接打开指定节点。-o, --output=FILE
:输出到文件。-w, --where
:显示文档路径。--apropos=STRING
:搜索相关文档。--index-search=STRING
:搜索索引。-h, --help
:显示帮助。--version
:显示版本。
输出行为
- 交互模式:启动文本界面,显示文档内容。
- 非交互模式:输出指定节点或搜索结果到 stdout。
- 错误:文档不存在或选项无效时,输出到 stderr。
注意事项
依赖 Texinfo:
确保安装 texinfo
包:
sudo apt install texinfo # Ubuntu sudo dnf install texinfo # CentOS
文档位置:
- 默认在
/usr/share/info
,可通过INFOPATH
扩展。
键盘导航:
- 交互模式需熟悉快捷键(如
n
、p
、q
)。
与 man 区别:
info
更详细,适合学习;man
更简洁,适合快速参考。
网络限制:
- 依赖本地文档,无需联网。
安全性:
- 仅加载可信 Info 文件。
info 的常见用途
应用场景
- 学习 GNU 工具:深入了解
bash
、gcc
等工具用法。 - 开发参考:查询
libc
或make
的详细文档。 - 系统管理:获取系统工具(如
coreutils
)配置说明。 - 脚本开发:查找 Shell 内置命令细节。
- 教育培训:为初学者提供结构化学习资源。
- 调试问题:通过索引定位功能或错误。
基础用法与示例
准备工作
以下示例假设运行在 Bash shell(如 androidUbuntu 24.04,当前时间为 2025年6月12日周四下午3:27 CST)。测试环境为标准 Linux 系统(如 Ubuntu、CentOS),确保 info
和 texinfo
已安装(info --version
)。示例涉及常见 GNU 工具(如 bash
、coreutils
)的文档查询,使用交互和非交互模式。命令在终端运行,假设 /usr/share/info
包含必要文档。
检查 info
info --version
输出:
info (GNU texinfo) 7.1
检查 Texinfo
dpkg -l | grep texinfo # Ubuntu rpm -q texinfo # CentOS
验证文档
ls /usr/share/info | head -n 5
输出:
bash.info.gz coreutils.info.gz gcc.info.gz glibc.info.gz make.info.gz
示例 1:查看 bash 文档
命令
info bash
说明
- 以交互模式打开
bash
Info 文档。 - 显示顶级节点,包含子主题菜单,如“Commands”或“Variables”。
输出(交互模式)
File: bash.info, Node: Top, Next: Introduction, Up: (dir) Bash Reference Manual ******************** This manual is the reference for Bash, the GNU Bourne-Again Shell... * Menu: * Introduction:: An introduction to the shell. * Definitions:: Some definitions used in the rest of this manual. * Basic Shell Features:: The basic features of the shell. ... --:-- (bash)Top
导航
n
:下一节点。p
:上一节点。u
:返回父节点。q
:退出。
示例 2:直接访问特定节点
命令
info bash 'Shell Variables'
说明
- 打开
bash
文档中的“Shell Variables”节点。
输出(交互模式)
File: bash.info, Node: Shell Variables, Next: Bash Variables, Up: Variables 5.2 Shell Variables ================== Variables are used to store data in the shell... * Menu: * Bourne Shell Variables:: Variables recognized by Bourne shells. * Special Parameters:: Parameters with special meaning. ...
示例 3:非交互式输出
命令
info bash 'Shell Variables' -o /tmp/variables.txt cat /tmp/variables.txt | head -n 10
说明
- 将“Shell Variables”节点输出到
/tmp/variables.txt
。
输出
Shell Variables *************** Variables are used to store data in the shell... * Bourne Shell Variables: Variables recognized by Bourne shells. * Special Parameters: Parameters with special meaning. ...
示例 4:搜索相关文档
命令
info --apropos grep
说明
- 搜索与
grep
相关的文档。
输出
"(coreutils)grep invocation" -- grep "(grep)Top" -- grep "(regex)Top" -- Regular Expressions ...
示例 5:查找索引
命令
info bash --index-search PATH
说明
- 在
bash
文档索引中搜索“PATH”。
输出(交互模式)
File: bash.info, Node: Bourne Shell Variables, Up: Shell Variables 5.2.1 Bourne Shell Variables ---------------------------- `PATH` The search path for commands...
示例 6:显示文档路径
命令
info --where bash
说明
- 显示
bash
Info 文件路径。
输出
/usr/share/info/b编程客栈ash.info.gz
常用选项与功能
文档查询
选项 | 描述 |
---|---|
-f FILE | 指定 Info 文件 |
-n NODE | 打开特定节点 |
--apropos=STRING | 搜索相关主题 |
--index-search=STRING | 搜索索引 |
示例
info -f /usr/share/info/gcc.info.gz
输出控制
选项 | 描述 |
---|---|
-o FILE | 输出到文件 |
--subnodes | 包含子节点 |
--output=- | 输出到 stdout |
示例
info bash --subnodes -o /tmp/bash_full.txt
环境配置
变量 | 描述 |
---|---|
INFOPATH | Info 文件搜索路径 |
PAGER | 输出分页器(如 ljavascriptess ) |
示例
export INFOPATH=/custom/info:$INFOPhttp://www.devze.comATH info mydoc
高级用法
概述
info
的高级用法涉及脚本化、自定义 Info 文件、与其他工具结合以及自动化文档任务,适合开发者和管理员。
1. 自动化文档提取
脚本
#!/bin/bash TOPICS=("bash" "gcc" "make") for topic in "${TOPICS[@]}"; do info "$topic" --subnodes -o "/tmp/${topic}_doc.txt" echo "已提取 $topic 文档" done
说明
- 提取多个主题的完整文档。
输出
已提取 bash 文档 已提取 gcc 文档 已提取 make 文档
2. 创建自定义 Info 文件
Texinfo 源文件 (/tmp/example.texi)
\input texinfo @setfilename example.info @settitle 示例手册 @node Top @top 示例手册 这是一个示例 Info 文档。 @menu * 第一章:: 第一章内容。 @end menu @node 第一章 @chapter 第一章 第一章的内容。 @end texinfo
命令
makeinfo --info /tmp/example.texi -o /tmp/example.info info -f /tmp/example.info
说明
- 创建并查看自定义 Info 文件。
输出(交互模式)
File: example.info, Node: Top, Next: 第一章, Up: (dir) 示例手册 ******** 这是一个示例 Info 文档。 * Menu: * 第一章:: 第一章内容。
3. 与 grep 结合
命令
info bash --subnodes | grep -i "environment variable"
说明
- 在
bash
文档中搜索“environment variable”。
输出
5.2 Shell Variables Environment variables are used to... * PATH: The search path for commands. ...
4. 脚本化索引搜索
脚本
#!/bin/bash TOPIC=$1 KEYWORD=$2 info "$TOPIC" --index-search="$KEYWORD" -o /tmp/result.txt if [ $? -eq 0 ]; then cat /tmp/result.txt | head -n 10 else echo "在 $TOPIC 中未找到 $KEYWORD" fi
示例
./script.sh bash PATH
说明
- 搜索索引中的关键词并输出结果。
输出
`PATH` The search path for commands...
5. 自定义 INFOPATH
命令
mkdir /tmp/custom_info cp /tmp/example.info /tmp/custom_info/ export INFOPATH=/tmp/custom_info:$INFOPATH info example
说明
- 配置自定义 Info 目录。
输出(交互模式)
File: example.info, Node: Top, Next: 第一章, Up: (dir) ...
使用 info 时的注意事项
文档可用性:
确保安装 Info 文件:
sudo apt install bash-doc # Ubuntu
导航学习曲线:
- 熟悉快捷键(如
n
、p
、m
、q
)。
文件压缩:
- Info 文件可能是
.gz
格式,自动处理。
Man 作为备选:
无 Info 文档时尝试 man
:
man bash
环境变量:
检查 INFOPATH
:
echo $INFOPATH
高级技巧与实战案例
概述
以下是高级技巧和实战案例,展示 info
在复杂场景中的应用。
案例 1:开发者参考脚本
脚本
#!/bin/bash echo "输入主题(如 bash、gcc):" read topic info "$topic" --subnodes -o "/tmp/${topic}_ref.txt" gzip "/tmp/${topic}_ref.txt" echo "文档已保存为 /tmp/${topic}_ref.txt.gz"
说明
- 保存压缩的文档以供离线使用。
输出
输入主题(如 bash、gcc): bash 文档已保存为 /tmp/bash_ref.txt.gz
案例 2:自动化索引报告
脚本
#!/bin/bash TOPIC="coreutils" KEYWORDS=("ls" "cp" "mv") for keyword in "${KEYWORDS[@]}"; do echo "在 $TOPIC 中搜索 $keyword:" info "$TOPIC" --index-search="$keyword" -o "/tmp/${keyword}.txt" cat "/tmp/${keyword}.txt" | head -n 5 done
说明
- 为多个关键词生成报告。
输出
在 coreutils 中搜索 ls: `ls` List directory contents... 在 coreutils 中搜索 cp: `cp` Copy files and directories...
案例 3:安全 Info 访问
脚本
#!/bin/bash INFO_FILE=/tmp/example.info if [ -O "$INFO_FILE" ]; then info -f "$INFO_FILE" else echo "不可信的 Info 文件" exit 1 fi
说明
- 仅加载用户拥有的 Info 文件。
输出
不可信的 Info 文件
案例 4:文档同步
脚本
#!/bin/bash DEST=/tmp/info_backup mkdir -p "$DEST" cp /usr/share/info/*.info.gz "$DEST" for file in "$DEST"/*.info.gz; do info -f "$file" --subnodes -o "${file%.gz}.txt" done echo "备份完成,位于 $DEST"
说明
- 备份 Info 文件并转为文本。
输出
备份完成,位于 /tmp/info_backup
案例 5:动态查询工具
脚本
#!/bin/bash echo "输入主题和关键词(如 bash PATH):" read topic keyword info "$topic" --index-search="$keyword" --output=- | less
说明
- 交互式关键词搜索工具。
输出
`PATH` The search path for commands... (按 q 退出)
总结
info
是 Linux 系统中访问 GNU 结构化文档的强大工具,适合学习和参考。本文从基础到高级,结合详细示例和注意事项,全面介绍了 info
的功能。无论是探索 bash
特性、创建自定义 Info 文件还是自动化文档任务,info
都能提供可靠支持。
以上为个人经验,希望能给大家一个参考,也希望大家多多支持编程客栈(www.devze.com)。
精彩评论