Linux 自带的帮助命令是最准确、最可靠的资料。笔者不止一次发现通过其他途径搜索到的信息都不准确,甚至是错误的。所以,虽然 Linux 自带的帮助命令是英文的,但是我们要静下心来慢慢学习。
main 是最常见的帮助命令,也是 Linux 最主要的帮助命令,其基本信息如下。
- 命令名称:man。
- 英文原意:format and display the on-line manual pages。
- 所在路径:/usr/bin/man。
- 执行权限:所有用户。
- 功能描述:显示联机帮助手册。
命令格式
[root@localhost ~]# man [选项]命令
选项:
- -f:査看命令拥有哪个级别的帮助
- -k: 査看和命令相关的所有帮助
man 命令比较简单,我们举个例子:
[root@localhost -]# man ls
#获取ls命令的帮助信息
这就是 man 命令的基本使用方法,非常简单。但是帮助命令的重点不是命令如何使用,而是帮助信息应该如何使用。这些信息较多,我们通过下面一小节来详细讲解。
man命令的使用方法
还是查看 ls 命令的帮助,我们看看这个帮助信息的详细内容。
[root@localhost -]# man ls
该命令会输出以下信息:
(点此查看高清大图)
虽然不同命令的 man 信息有一些区别,但是每个命令 man 信息的整体结构皆如演示这样。在帮助信息中,我们主要査看的就是命令的格式和选项的详细作用。
不过大家请主意,在 man 信息的最后,可以看到还有哪些命令可以查看到此命令的相关信息。这是非常重要的提示,不同的帮助信息记录的侧重点是不太一样的。所以,如果在 man 信息中找不到想要的内容,则可以尝试看其他相关帮助命令。
man命令的快捷键
man 命令的快捷键可以参考表 1。
快捷键 | 作 用 |
---|---|
上箭头 | 向上移动一行 |
下箭头 | 向下移动一行 |
PgUp | 向上翻一页 |
PgDn | 向下翻一页 |
g | 移动到第一页 |
G | 移动到最后一页 |
q | 退出 |
/字符串 | 从当前页向下搜索字符串 |
?字符串 | 从当前页向上搜索字符串 |
n | 当搜索字符串时,可以使用n键找到下一个字符串 |
N | 当搜索字符串时,使用N键反向查询字符串。也就是说,如果使用“/字符串”方式搜索, 则N键表示向上搜索字符串;如果使用“?字符串”方式搜索,则N键表示向下搜索字符串 |
man命令的帮助级别
不知道大家有没有注意到,在执行 man 命令时,命令的开头会有一个数字标识这个命令的帮助级别。例如:
[root@localhost -]# man ls
LS(1) User Commands LS(1)
#这里(1)就表示这是 ls 的 1 级别的帮助信息
这些命令的级别号代表什么含义呢?我们通过表 2 来说明。
级 别 | 作 用 |
---|---|
1 | 普通用户可以执行的系统命令和可执行文件的帮助 |
2 | 内核可以调用的函数和工具的帮助 |
3 | C语言函数的帮助 |
4 | 设备和特殊文件的帮助 |
5 | 配置文件的帮助 |
6 | 游戏的帮助(个人版的Linux中是有游戏的) |
7 | 杂项的帮助 |
8 | 超级用户可以执行的系统命令的帮助 |
9 | 内核的帮助 |
我们来试试,ls 命令的帮助级别是 1,我们已经看到了。那么我们找一个只有超级用户才能执行的命令,如 useradd 命令(添加用户的命令),来看看这个命令的帮助:
[root@localhost ~]# man useradd U
SERADD(8) System Management Commands USERADD(8)
#我们可以看到,默认useradd命令的帮助级别是8,因为这是只有超级用户才可以执行的命令
命令拥有哪个级别的帮助可以通过”-f”选项来进行査看。例如:
[root@localhost -]# man -f ls
ls(1) – list directory contents
#可以看到ls命令只拥有1级别的帮助
ls 是一个比较简单的 Linux 命令,所以只有 1 级别的帮助。我们再査看一下 passwd 命令(给用户设定密码的命令)的帮助:
[root@localhost ~]# man -f passwd
passwd (1) – update user’s authentication tokens
#passwd命令的帮助
passwd (5) – password file
#passwd配置文件的帮助
passwd[sslpasswd] (1ssl) – compute password hashes
#这里是SSL的passwd的帮助,和passwd命令并没有太大关系
passwd 是一个比较复杂的命令,而旦这个命令有一个相对比较复杂的配置文件 /etc/passwd。所以系统既给出了 passwd 命令的帮助,也给出了 /etc/passwd 配置文件的帮助。大家可以使用如下命令查看:
[root@localhost ~]# man 1 passwd
#查看passwd命令的帮助
[root@localhost ~]# man 5 passwd
#查看/etc/passwd配件的帮助
至于 useradd 和 passwd 命令,我们会在后续章节中详细讲解,这里只是用这个例子说明 man 命令的不同帮助级别。
man 命令还有一个”-k”选项,它的作用是査看命令名中包含指定字符串的所有相关命令的帮助。例如:
[root@localhost ~]# man -k useradd
luseradd(1) – Add an user
useradd(8) – create a new user or update default new user information
useradd [adduser] (8) – create a new user or update default new user information
useradd_selinux (8) -Security Enhanced Linux Policy for the useradd processes
#这条命令会列出系统中所有包含useradd字符串的命令,所以才会找到一些包含”useradd”字符串,但是和我们要査找的useradd无关的命令。
如果我们使用”man-k ls”命令,则会发现输出内容会多出几页,那是因为很多命令中都包含”ls”这个关键字。这条命令适合你只记得命令的几个字符,用来査找相关命令的情况。
在系统中还有两个命令。
- whatis:这个命令的作用和 man -f 是一致的。
- apropos:这个命令的作用和 man -k 是一致的。
不过这两个命令和 man 基本一致,所以了解就好。不过 Linux 的命令很有意思,想知道这个命令是干什么的,可以执行 whatis 命令;想知道命令在哪里,可以执行 whereis 命令;想知道当前登录用户是谁,可以执行 whoami 命令。
如果执行以上两个命令报错,那是因为 whatis 数据库没有建立。只要手工执行以下命令,重新建立 whatis 数据库即可。