如何在Linux终端中获取命令帮助
一、命令执行方式以及命令文件的路径
一般Linux中的命令都带有帮助文件。
shell中的命令一般是这样执行的:当用户在终端上输入命令并按回车后,系统内核会在当前用户的环境变量PATH中去读取环境变量的值,变量的值就是命令的路径,命令路径不只一个,于是系统会从这些路径中从左至右的顺序匹配要查找的命令文件,直到找到并执行为止;当这个命令被执行过已后,系统会把这个命令对应的文件路径保存在系统的哈希表中,以便下次用户执行命令时更快速的查找,查看当前用户的 hash 表。可以执行系统内置命令 hash 显示当前用户的哈希表。
要想获取命令文件的存储路径可以使用命令 which:
1 | # which 命令名 |
二、Linux内置命令与外部命令
在bash shell中,Linux的命令分为两种:一种是系统shell自带的命令(builtin),这些我们叫作内置命令,通过执行 help 命令就能查看到当前系统所有内置命令;二是外部命令,即在文件系统上的某位置有一个与命令名称对应的可执行文件。
三、命令帮助文档的获取方式
<一>、内置命令获取帮助文档的方式:
判断一个命令是否是Linux内置的,可以用type命令,只有Linux的内置命令才能使用 help 命令获得帮助。
1 2 | # type cd 输出: cd is a shell builtin |
说明这个命令是系统自带的内置命令,那么就可以使用 help命令来获取帮助。
1 | # help 命令名 |
<二>、外部命令获取帮助文档的方式:
(1) 第一种办法是使用 --help
1 | 格式: # 命令名 --help |
1 | 例如: # mkdir --help |
(2) 想要获取命令的完整帮助可以使用 man 命令
1 2 | 格式: # man 命令名 例如: # man mkdir |
man命令是调用了less工具显示文档,man的具体的操作方法和less是一样的。
man命令常用快捷键:
空格键:向文件尾部翻一屏;
b:向文件首部翻一屏;
回车键:向文件尾部翻一行;
k:向文件首部翻一行;
Ctrl+d:向文件尾部翻半屏;
Ctrl+u:向文件首部翻半屏;
1G:回到项部;
/keyword:向文件尾部搜索;
?keyword:向文件首部搜索;
n :跟搜索命令相同的方向(下一个);
N :跟搜索命令相反的方向(上一个);
q :退出;
man命令打印出的文档中的段落相关说明:
NAME: 简短的指令,数据名称的说明;
SYNOPSIS: 简短的指令下达语法(syntax)简介;
DESCRIPTION:较为完整的说明;
OPTIONS:针对SYNOPSIS部分中,有列举的所有可用的选项说明;
COMMANDS:当这个程序(软件)在执行的时候,可以在此程序(软件)中下达的指令;
FILES:这个程序或数据所使用或参考或连结到的某些档案;
SEE ALSO:可以参考的,跟这个指令或数据有相关的其他说明;
EXAMPLE:一些可以参考的范例;
BUGS:是否有相关的漏洞;
一般看看EXAMPLE,再看看OPTIONS就可以,如果还不能解决问题,再SEE ALSO。
使用帮助中命令格式中的字符意义:
[]:可选的部分;
{a|b}:分组,a和b作为一个使用单元来使用;
|: 或者,只能选其一;
<>:必不能少的部分;
...:同类的内容可以出现多个;
man命令分段机制:
man命令可以加一个数字参数(1~8)查看相关命令的其它信息
数字"1":可执行命令或shell命令
数字"2": 系统调用(functions provided by the kernel)
数字"3":C语言库函数
数字"4":设备或特殊文件(通常在/dev下)
数字"5":文件格式和规则(例如/etc/passwd)
数字"6":游戏
数字"7":杂项(宏、包及其他杂项)
数字"8":系统管理员相关的命令(通常只给root)
数字"9":跟kernel有关的文件
例如,使用man查看 passwd 命令5段的帮助内容
1 | # man 5 passwd |
查看某关键字在哪些段落中有使用帮助,可以使用;
1 | # whatis passwd //提示:如果whatis的数据尚未生成,可以使用makewhatis手动进行; |
或者
1 2 | # man -f passwd //精确匹配和whatis结果一样 # man -k passwd //模糊查找 |
输出:
1 2 3 | passwd (1) - update user's authentication tokens passwd (5) - password file passwd [sslpasswd] (1ssl) - compute password hashes |
(3) info 命令可以获取在线帮助文档,通常 info 命令是作为 man 命令的补充
1 | # info passwd |
(4) 应用程序自带的帮助文档,通常在存放在目录 /usr/share/doc
(5) Linux发行版官方文档
(6) 通过google搜索