man

需要使用某个命令,却忘记了用法?代码写了一半,想不起某个系统调用的用法?很不幸,这种囧事几乎每天都有……

没事,Google 一下呗。

除此之外,还有更便捷的方式:运行 man 命令查看 手册页 ( Manual pages )。手册页是 Linux/Unix 软件文档的一种常用形式,涵盖:命令、系统调用、库函数等方方面面。

以查看 socket 系统调用手册为例,命令行下运行:

  1. fasion@ubuntu:~/lnp$ man socket

回车按下后,手册来了:

../_images/5dfc3c544562c605f94c8949f87ff6b6.png

如上图,系统调用需要引入的 头文件参数 类似及含义, 返回值 等等一目了然。

注意到, man 提供了 less 终端分页器,在文档较长时非常有用。按 j 往下滚动,按 k 往上滚动;按 <ctrl>-f 向下翻页,按 <ctrl>-b 向上翻页;按 gg 回到开头,按 G 跳到结尾处。vim 用户应该非常熟悉!

如果忘记了 man 命令的用法,还可以用 man 查自己的手册:

  1. fasion@ubuntu:~/lnp$ man man

章节

Linux 下,手册通常分为 8 个章节( Section ),见表格-1:

表格-1 手册页章节
章节说明
1一般命令
2系统调用
3库函数,涵盖C标准函数库
4特殊文件(通常是/dev中的设备文件)和驱动程序
5文件格式和约定
6游戏和屏保
7杂项
8系统管理命令和守护进程
9内核例程

不同的章节,可能有同名的手册。printf 就是一例,章节 1 提供 printf 命令的手册;章节 3 提供 printf 库函数的手册。这种情况下,如果直接运行 man printf ,显示的是命令 printf 的手册。对于 C 库函数,需要指定章节:

  1. fasion@ubuntu:~/lnp$ man 3 printf