前言
在Linux中,有非常多的命令、系统调用、库函数等,对于一些用法我们不可能完全记住,这时我们就可以利用Linux自带的帮助指令,来帮助我们理解和使用这些命令。
正文
man命令
man即manual的缩写,表示用户手册、使用说明的意思,当我们对某个命令的用法不熟悉时,通过查看手册,可以快速得到解决。比如使用man ls即可查看ls命令的帮助手册,但是这个手册一般是英文的,这里我们可以设置中文的man手册,当一些帮助文档没有中文时,就还是会显示英文,设置方法如下:
sudo apt-get install manpages-zh //下载中文帮助文档
sudo vim /etc/manpath.config //打开修改配置文件
//把里面所有的/usr/share/man替换为/usr/share/man/zh_CN
这样我们就可以愉快地查看中文文档了。
其实前面所说的man ls其实调用的是man 1 ls,man作为一个命令,它也是有选项参数的。我们就可以使用man man来看看man它自己的用户手册:
这个页面的内容很多,我们来仔细看看。
手册页类型
在帮助手册的左上角和右上角都有一个MAN(1)的显示,其中的1表示手册的章节号或者说是手册的类型。为什么需要这个呢?那是因为在Linux中,有很多关键字是重名的,它既可以是shell命令,也可能是一个系统调用,所以这里想要查看哪种类型,需要分开。
下表显示了几种类型:
| 章节号 | 手册类型 |
|---|---|
| 1 Commands | 默认类型,是查看可执行程序或者shell命令 |
| 2 System calls | 系统调用,必须由内核完成的函数或者功能,属于函数帮助文档 |
| 3 Library calls | 大多数的libc函数,属于函数帮助文档 |
| 4 Special files | /dev目录中的文件,属于文件帮助文档 |
| 5 File formats and conventions | /etc/passd等人类可读的格式数据,即配置文件,属于文档帮助文档 |
| 7 | 文件系统标准描述,网络协议等,比如就可以-7查看该文档 |
可以发现man不仅仅可以查看shell命令的帮助使用手册,还可以查看函数与文件的帮助文档,功能非常强大。
比如我想查看passwd这个shell命令的帮助文档,使用man passwd,如下图:
可以看到类型为1,它是shell命令,但是在/etc下面,有个passwd文件,属于配置文件,它和passwd命令重名,这时我们可以更加精确地指出类型,来进行查看手册:man 5 passwd,结果如下:
这里我们可以发现就变成了该文件的帮助文档。
但是有时候我们只知道一个名字,却不知道其类型,我们可以使用man -a passwd来查看所有类型地帮助手册,可以选择性地跳过,找到你想查看的,效果如下:
这里我们在查看完shell命令的passwd,还可以继续查看ssl中的passwd命令。
help帮助
help帮助使用起来也有个非常值得注意的细节,首先需要知道一个概念:shell(命令解释器)自带的命令称为内部命令,其他命令是外部命令。
而对于内部命令和外部命令,使用help帮助是不一样的,如下:
- 内部命令使用help帮助:
help cd。 - 外部命令使用help帮助:
ls --help
那如何查看一个命令是内部命令还是外部命令呢,通过type,如下:
这里我们就知道cd是内部命令,而ls是外部命令,那这时想使用help帮助只能使用
help cd
ls --help
那我反过来可以吗,我们来试一下:
可以发现是行不通的。
info帮助
info帮助比help更详细,是作为help的补充,比如
info ls
但是info的帮助文档都是英文的,需要提高英语阅读能力。
总结
能正确且快速地使用帮助命令来查看帮助手册,在日常开发中非常重要,毕竟是官方文档,省去了查阅其他资料带来地时间消耗。