|
| 1 | +--- |
| 2 | +title: 查看 Linux 命令帮助信息 |
| 3 | +date: 2018/09/26 |
| 4 | +categories: |
| 5 | + - linux |
| 6 | +tags: |
| 7 | + - linux |
| 8 | + - command |
| 9 | +--- |
| 10 | + |
| 11 | +# 查看 Linux 命令帮助信息 |
| 12 | + |
| 13 | +> Linux 中有非常多的命令,想全部背下来是很困难的事。所以,我认为学习 Linux 的第一步,就是了解如何快速检索命令说明。 |
| 14 | +> |
| 15 | +> 关键词:`help`, `whatis`, `info`, `which`, `man` |
| 16 | +
|
| 17 | +<!-- TOC depthFrom:2 depthTo:3 --> |
| 18 | + |
| 19 | +- [查看 Linux 命令帮助信息的要点](#查看-linux-命令帮助信息的要点) |
| 20 | +- [命令概述](#命令概述) |
| 21 | + - [查看 Shell 内部命令 - help](#查看-shell-内部命令---help) |
| 22 | + - [查看命令的简要说明 - whatis](#查看命令的简要说明---whatis) |
| 23 | + - [查看命令的详细说明 - info](#查看命令的详细说明---info) |
| 24 | + - [查找命令的绝对路径 - which](#查找命令的绝对路径---which) |
| 25 | + - [查看命令的帮助手册 - man](#查看命令的帮助手册---man) |
| 26 | +- [参考资料](#参考资料) |
| 27 | + |
| 28 | +<!-- /TOC --> |
| 29 | + |
| 30 | +## 查看 Linux 命令帮助信息的要点 |
| 31 | + |
| 32 | +- 查看 Shell 内部命令的帮助信息 - 使用 `help` |
| 33 | +- 查看命令的简要说明 - 使用 `whatis` |
| 34 | +- 查看命令的详细说明 - 使用 `info` |
| 35 | +- 查看命令的位置 - 使用 `which` |
| 36 | +- 查看命令的帮助手册(包含说明、用法等信息) - 使用 `man` |
| 37 | +- 只记得部分命令关键字 - 使用 `man -k` |
| 38 | + |
| 39 | +> 注:推荐一些 Linux 命令中文手册: |
| 40 | +> |
| 41 | +> - [Linux 命令大全](http://man.linuxde.net/) |
| 42 | +> - [linux-command](https://github.com/jaywcjlove/linux-command) |
| 43 | +
|
| 44 | +## 命令概述 |
| 45 | + |
| 46 | +### 查看 Shell 内部命令 - help |
| 47 | + |
| 48 | +> help 命令用于查看 Shell 内部命令的帮助信息。而对于外部命令的帮助信息只能使用 man 或者 info 命令查看。 |
| 49 | +> |
| 50 | +> 参考:http://man.linuxde.net/help |
| 51 | +
|
| 52 | +### 查看命令的简要说明 - whatis |
| 53 | + |
| 54 | +> whatis 用于查询一个命令执行什么功能。 |
| 55 | +> |
| 56 | +> 参考:http://man.linuxde.net/whatis |
| 57 | +
|
| 58 | +示例: |
| 59 | + |
| 60 | +```sh |
| 61 | +# 查看 man 命令的简要说明 |
| 62 | +$ whatis man |
| 63 | + |
| 64 | +# 查看以 loca 开拓的命令的简要说明 |
| 65 | +$ whatis -w "loca*" |
| 66 | +``` |
| 67 | + |
| 68 | +### 查看命令的详细说明 - info |
| 69 | + |
| 70 | +> info 是 Linux 下 info 格式的帮助指令。 |
| 71 | +> |
| 72 | +> 参考:http://man.linuxde.net/info |
| 73 | +
|
| 74 | +示例: |
| 75 | + |
| 76 | +```sh |
| 77 | +# 查看 man 命令的详细说明 |
| 78 | +$ info man |
| 79 | +``` |
| 80 | + |
| 81 | +### 查找命令的绝对路径 - which |
| 82 | + |
| 83 | +> which 命令用于查找并显示给定命令的绝对路径,环境变量 PATH 中保存了查找命令时需要遍历的目录。which 指令会在环境变量$PATH 设置的目录里查找符合条件的文件。也就是说,使用 which 命令,就可以看到某个系统命令是否存在,以及执行的到底是哪一个位置的命令。 |
| 84 | +> |
| 85 | +> 参考:http://man.linuxde.net/which |
| 86 | +
|
| 87 | +示例: |
| 88 | + |
| 89 | +```sh |
| 90 | +which pwd # 查找命令的路径 |
| 91 | +``` |
| 92 | + |
| 93 | +说明:which 是根据使用者所配置的 PATH 变量内的目录去搜寻可运行档的!所以,不同的 PATH 配置内容所找到的命令当然不一样的! |
| 94 | + |
| 95 | +```sh |
| 96 | +[root@localhost ~]# which cd |
| 97 | +cd: shell built-in command |
| 98 | +``` |
| 99 | + |
| 100 | +cd 这个常用的命令竟然找不到啊!为什么呢?这是因为 cd 是 bash 内建的命令!但是 which 默认是找 PATH 内所规范的目录,所以当然一定找不到的! |
| 101 | + |
| 102 | +### 查看命令的帮助手册 - man |
| 103 | + |
| 104 | +> man 命令是 Linux 下的帮助指令,通过 man 指令可以查看 Linux 中的指令帮助、配置文件帮助和编程帮助等信息。 |
| 105 | +> |
| 106 | +> 参考:http://man.linuxde.net/man |
| 107 | +
|
| 108 | +示例: |
| 109 | + |
| 110 | +```sh |
| 111 | +$ man date # 查看 date 命令的帮助手册 |
| 112 | +$ man 3 printf # 查看 printf 命令的帮助手册中的第 3 类 |
| 113 | +$ man -k keyword # 根据命令中部分关键字来查询命令 |
| 114 | +``` |
| 115 | + |
| 116 | +#### man 要点 |
| 117 | + |
| 118 | +在 man 的帮助手册中,可以使用 page up 和 page down 来上下翻页。 |
| 119 | + |
| 120 | +man 的帮助手册中,将帮助文档分为了 9 个类别,对于有的关键字可能存在多个类别中, 我们就需要指定特定的类别来查看;(一般我们查询 bash 命令,归类在 1 类中)。 |
| 121 | + |
| 122 | +man 页面的分类(常用的是分类 1 和分类 3): |
| 123 | + |
| 124 | +1. 可执行程序或 shell 命令 |
| 125 | +2. 系统调用(内核提供的函数) |
| 126 | +3. 库调用(程序库中的函数) |
| 127 | +4. 特殊文件(通常位于 /dev) |
| 128 | +5. 文件格式和规范,如 /etc/passwd |
| 129 | +6. 游戏 |
| 130 | +7. 杂项(包括宏包和规范,如 man(7),groff(7)) |
| 131 | +8. 系统管理命令(通常只针对 root 用户) |
| 132 | +9. 内核例程 [非标准] |
| 133 | + |
| 134 | +前面说到使用 whatis 会显示命令所在的具体的文档类别,我们学习如何使用它 |
| 135 | + |
| 136 | +```sh |
| 137 | +$ whatis printf |
| 138 | +printf (1) - format and print data |
| 139 | +printf (1p) - write formatted output |
| 140 | +printf (3) - formatted output conversion |
| 141 | +printf (3p) - print formatted output |
| 142 | +printf [builtins](1) - bash built-in commands, see bash(1) |
| 143 | +``` |
| 144 | + |
| 145 | +我们看到 printf 在分类 1 和分类 3 中都有;分类 1 中的页面是命令操作及可执行文件的帮助;而 3 是常用函数库说明;如果我们想看的是 C 语言中 printf 的用法,可以指定查看分类 3 的帮助: |
| 146 | + |
| 147 | +```sh |
| 148 | +$ man 3 printf |
| 149 | +``` |
| 150 | + |
| 151 | +## 参考资料 |
| 152 | + |
| 153 | +https://linuxtools-rst.readthedocs.io/zh_CN/latest/base/01_use_man.html |
0 commit comments