当前位置: 代码网 > 服务器>服务器>Linux > Linux之info指令用法

Linux之info指令用法

2025年08月06日 Linux 我要评论
linux info 指令info 是 linux 系统中用于查看 gnu 软件文档的命令行工具,提供交互式、结构化的方式访问详细帮助信息。与 man 命令相比,info 文档更全面,组织更模块化,支

linux info 指令

info 是 linux 系统中用于查看 gnu 软件文档的命令行工具,提供交互式、结构化的方式访问详细帮助信息。与 man 命令相比,info 文档更全面,组织更模块化,支持超链接导航,适合深入学习 gnu 工具和库的用法。作为 gnu 项目的一部分,info 广泛应用于 linux 发行版(如 ubuntu、centos、arch linux),为开发者、系统管理员和用户提供强大的技术参考。

什么是 info 指令?

概述

info 是 linux 命令行工具,用于浏览以 info 格式编写的 gnu 软件文档。

info 文档是 gnu 项目开发的超文本文档系统,基于 texinfo 格式,涵盖 gnu 工具(如 gccbash)、库(如 libc)及系统的详细说明。相比 man 页面注重简洁参考,info 文档更像结构化的电子书,包含章节、子章节、索引和交叉引用,适合系统性学习。

info 通过交互式界面或直接查询访问文档,支持导航、搜索和定制化输出,是 linux 用户获取技术信息的重要工具。

核心概念

  • info 文档:texinfo 格式的超文本文件,通常存储在 /usr/share/info
  • 节点(node):info 文档的基本单元,类似章节或页面。
  • 超链接:通过菜单或交叉引用连接节点,支持跳转。
  • 索引:提供关键词快速定位功能。
  • 交互模式:默认启动交互式界面,类似文本浏览器。
  • 命令行模式:支持非交互式查询,输出特定节点或段落。

退出状态

  • 成功:返回 0。
  • 失败(如文档不存在):返回非 0。

核心特点

  • 结构化文档:分层组织,适合深入学习。
  • 交互导航:支持菜单、索引和超链接。
  • 跨平台:gnu 标准,兼容 linux、bsd、macos。
  • 搜索功能:支持全文和索引搜索。
  • 定制输出:可提取特定节点或格式化输出。
  • 开源:与 gnu 生态紧密集成。

基本语法

info [选项] [主题] [节点]

参数说明

  • 主题:查询的文档或程序名(如 bashgcc)。
  • 节点:文档中的具体节点(如 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 扩展。

键盘导航

  • 交互模式需熟悉快捷键(如 npq)。

与 man 区别

  • info 更详细,适合学习;man 更简洁,适合快速参考。

网络限制

  • 依赖本地文档,无需联网。

安全性

  • 仅加载可信 info 文件。

info 的常见用途

应用场景

  • 学习 gnu 工具:深入了解 bashgcc 等工具用法。
  • 开发参考:查询 libcmake 的详细文档。
  • 系统管理:获取系统工具(如 coreutils)配置说明。
  • 脚本开发:查找 shell 内置命令细节。
  • 教育培训:为初学者提供结构化学习资源。
  • 调试问题:通过索引定位功能或错误。

基础用法与示例

准备工作

以下示例假设运行在 bash shell(如 ubuntu 24.04,当前时间为 2025年6月12日周四下午3:27 cst)。测试环境为标准 linux 系统(如 ubuntu、centos),确保 infotexinfo 已安装(info --version)。示例涉及常见 gnu 工具(如 bashcoreutils)的文档查询,使用交互和非交互模式。命令在终端运行,假设 /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/bash.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

环境配置

变量描述
infopathinfo 文件搜索路径
pager输出分页器(如 less

示例

export infopath=/custom/info:$infopath
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

导航学习曲线

  • 熟悉快捷键(如 npmq)。

文件压缩

  • 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 都能提供可靠支持。

以上为个人经验,希望能给大家一个参考,也希望大家多多支持代码网。

(0)

相关文章:

版权声明:本文内容由互联网用户贡献,该文观点仅代表作者本人。本站仅提供信息存储服务,不拥有所有权,不承担相关法律责任。 如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 2386932994@qq.com 举报,一经查实将立刻删除。

发表评论

验证码:
Copyright © 2017-2025  代码网 保留所有权利. 粤ICP备2024248653号
站长QQ:2386932994 | 联系邮箱:2386932994@qq.com