菜鸟科技网

Linux命令离线手册如何高效查阅与使用?

核心命令:man

man 命令是 "manual" 的缩写,是查看 Linux 系统手册页最标准、最强大的工具,几乎所有标准的 Linux 命令、系统调用、库函数等都有对应的 man 页面。

Linux命令离线手册如何高效查阅与使用?-图1
(图片来源网络,侵删)

基本用法

man [章节号] 命令名
  • man 命令名: 这是最常见的用法,想查看 ls 命令的手册:
    man ls

man 手册的章节

一个命令名可能出现在多个章节中,因为不同章节描述的是不同类型的东西,当你使用 man 命令时,它会默认显示找到的第一个匹配项。

章节号 内容类型 示例命令
1 用户命令 (User commands) ls, cd, grep, man
2 系统调用 (System calls) fork, open, write
3 库调用 (Library calls) printf, fopen, malloc
4 特殊文件 (Special files) /dev/null, /dev/sda
5 文件格式和约定 (File formats and conventions) /etc/passwd, /etc/group
6 游戏 (Games) banner, rain
7 杂项 (Miscellaneous) ascii, ioctl, pipe
8 系统管理命令和守护进程 (System admin) ifconfig, mount, systemd

如何指定章节? 如果同一个名字在不同章节都有,你需要指定章节号。

  • man 命令本身在第 1 章和第 7 章都有描述。

    • man 1 man: 查看 man 命令本身的使用方法。
    • man 7 man: 查看 man 手册页的格式和约定。
  • printf 也是一个很好的例子:

    Linux命令离线手册如何高效查阅与使用?-图2
    (图片来源网络,侵删)
    • man 1 printf: 查看 shell 内置的 printf 命令。
    • man 3 printf: 查看 C 语言库函数 printf()

man 页面内的操作

当你打开一个 man 页面后,你处于一个名为 less 的分页器中,常用操作如下:

键/命令 功能
空格f 向下翻一页
b 向上翻一页
j 向下移动一行
k 向上移动一行
g 跳转到文档开头
G 跳转到文档末尾
q 退出 man 页面
从上往下搜索关键词
从下往上搜索关键词
n 跳到下一个搜索结果
N 跳到上一个搜索结果
h 显示帮助信息

其他有用的离线手册工具

除了 man,还有一些工具可以提供不同形式的帮助信息。

info

info 是 GNU 项目提供的文档系统,通常比 man 页面更详细、结构化(类似网页的超链接),但界面不如 man 简洁。

  • 基本用法:
    info 命令名
  • info 页面内的操作:
    • n: 跳到下一个节点。
    • p: 跳到上一个节点。
    • u: 进入上层节点。
    • m: 打开菜单项。
    • q: 退出。

aproposman -k

当你不知道确切的命令名,但知道它和某个功能相关时,这两个命令非常有用,它们会搜索手册页的名称和简介,并给出匹配的命令。

Linux命令离线手册如何高效查阅与使用?-图3
(图片来源网络,侵删)
  • apropos:

    # 查找和 "copy" 相关的命令
    apropos copy
  • man -k (功能与 apropos 完全相同):

    # 查找和 "network" 相关的命令
    man -k network

whatis

whatis 会显示一个命令的一句话简介,非常适合快速回忆一个命令是做什么的。

  • 基本用法:
    whatis ls
    # 输出: ls (1) - list directory contents
    • (1) 表示它位于第 1 章(用户命令)。

type (Shell 内置命令)

type 命令不会显示手册,但它能告诉你一个命令到底是什么:是 Shell 内置命令、一个外部可执行文件,还是一个别名,这有助于你理解为什么有些命令的行为可能和预期不同。

  • 基本用法:

    type cd
    # 输出: cd is a shell builtin  (cd 通常是 shell 内置的)
    type ls
    # 输出: ls is /usr/bin/ls      (ls 是一个外部程序)
    type grep
    # 输出: grep is aliased to `grep --color=auto' (grep 是一个带参数的别名)

如何管理和安装离线手册

手册页默认位置

手册页通常存放在 /usr/share/man/ 目录下,并按章节分目录,如 /usr/share/man/man1/, /usr/share/man/man2/ 等。

安装缺失的手册页

你安装一个软件包后,发现没有 man 页,这可能是因为软件包的维护者没有打包 man 页,或者你安装的是一个“精简”版本。

在基于 Debian/Ubuntu 的系统上,你可以安装 manpages 包来获取基础的手册页。

# 安装基础手册页
sudo apt-get update
sudo apt-get install manpages
# 安装特定命令的手册页(如果存在单独的包)
# 为 nginx 安装手册页
sudo apt-get install nginx-doc

在基于 RedHat/CentOS 的系统上,情况类似。

查找手册页源代码(man-db

man 呟令本身也有一份手册页,它详细解释了手册页的格式、位置以及如何维护。

man man

其中有一个非常重要的信息:manpath 命令,它会列出系统当前搜索手册页的所有路径。

manpath
# 输出类似: /usr/local/share/man:/usr/share/man

你还可以使用 manpath -q 命令名 来查找某个命令的手册页具体存放在哪个文件里。

manpath -q ls
# 输出类似: /usr/share/man/man1/ls.1.gz

总结与最佳实践

场景 推荐命令 说明
查看一个命令的详细用法 man 命令名 最常用、最全面的方式。
忘记命令名,只记得功能 apropos 关键词man -k 关键词 强大的模糊搜索工具。
快速回忆一个命令是干什么的 whatis 命令名 一句话简介,快速高效。
想了解命令的本质(内置/外部) type 命令名 Shell 调试和学习的利器。
觉得 man 页面不够详细 info 命令名 GNU 项目的详细文档。
某个命令没有手册页 尝试安装 软件包-doc 很多软件会将文档单独打包。

核心建议:man 作为你日常使用 Linux 的习惯,当你遇到一个不熟悉的命令时,第一反应就应该是 man <command>,这是成为 Linux 高手的必经之路。

分享:
扫描分享到社交APP
上一篇
下一篇