.. man FileName: man.rst Author: Fasion Chan Created: 2018-01-28 14:35:22 @contact: fasionchan@gmail.com @version: $Id$ Description: Changelog: === man === 需要使用某个命令,却忘记了用法? 代码写了一半,想不起某个系统调用的用法? 很不幸,这种囧事几乎每天都有…… 没事,`Google `_ 一下呗。 除此之外,还有更便捷的方式:运行 ``man`` 命令查看 `手册页 `_ ( ``Manual pages`` )。 手册页是 ``Linux/Unix`` 软件文档的一种常用形式,涵盖:命令、系统调用、库函数等方方面面。 以查看 ``socket`` 系统调用手册为例,命令行下运行: .. code-block:: shell-session :linenos: fasion@ubuntu:~/lnp$ man socket 回车按下后,手册来了: .. figure:: /_images/command-manual/man/5dfc3c544562c605f94c8949f87ff6b6.png 如上图,系统调用需要引入的 **头文件** , **参数** 类似及含义, **返回值** 等等一目了然。 注意到, ``man`` 提供了 ``less`` 终端分页器,在文档较长时非常有用。 按 ``j`` 往下滚动,按 ``k`` 往上滚动; 按 ``-f`` 向下翻页,按 ``-b`` 向上翻页; 按 ``gg`` 回到开头,按 ``G`` 跳到结尾处。 ``vim`` 用户应该非常熟悉! 如果忘记了 ``man`` 命令的用法,还可以用 ``man`` 查自己的手册: .. code-block:: shell-session :linenos: fasion@ubuntu:~/lnp$ man man 章节 ==== ``Linux`` 下,手册通常分为 ``8`` 个章节( ``Section`` ),见表格-1: .. csv-table:: 表格-1 手册页章节 :header: "章节", "说明" :widths: 10 40 "1", "一般命令" "2", "系统调用" "3", "库函数,涵盖C标准函数库" "4", "特殊文件(通常是/dev中的设备文件)和驱动程序" "5", "文件格式和约定" "6", "游戏和屏保" "7", "杂项" "8", "系统管理命令和守护进程" "9", "内核例程" 不同的章节,可能有同名的手册。 ``printf`` 就是一例,章节 ``1`` 提供 ``printf`` 命令的手册;章节 ``3`` 提供 ``printf`` 库函数的手册。 这种情况下,如果直接运行 ``man printf`` ,显示的是命令 ``printf`` 的手册。 对于 ``C`` 库函数,需要指定章节: .. code-block:: shell-session :linenos: fasion@ubuntu:~/lnp$ man 3 printf .. comments comment something out blow