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

基本用法
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也是一个很好的例子:
(图片来源网络,侵删)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: 退出。
apropos 或 man -k
当你不知道确切的命令名,但知道它和某个功能相关时,这两个命令非常有用,它们会搜索手册页的名称和简介,并给出匹配的命令。

-
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 高手的必经之路。
