linux帮助命令:man、help和info

1,679 阅读4分钟

前言

在Linux中,有非常多的命令、系统调用、库函数等,对于一些用法我们不可能完全记住,这时我们就可以利用Linux自带的帮助指令,来帮助我们理解和使用这些命令。

正文

man命令

manmanual的缩写,表示用户手册、使用说明的意思,当我们对某个命令的用法不熟悉时,通过查看手册,可以快速得到解决。比如使用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 lsman作为一个命令,它也是有选项参数的。我们就可以使用man man来看看man它自己的用户手册:

image.png

这个页面的内容很多,我们来仔细看看。

手册页类型

在帮助手册的左上角和右上角都有一个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,如下图:

image.png

可以看到类型为1,它是shell命令,但是在/etc下面,有个passwd文件,属于配置文件,它和passwd命令重名,这时我们可以更加精确地指出类型,来进行查看手册:man 5 passwd,结果如下: image.png

这里我们可以发现就变成了该文件的帮助文档。

但是有时候我们只知道一个名字,却不知道其类型,我们可以使用man -a passwd来查看所有类型地帮助手册,可以选择性地跳过,找到你想查看的,效果如下:

image.png

这里我们在查看完shell命令的passwd,还可以继续查看ssl中的passwd命令。

help帮助

help帮助使用起来也有个非常值得注意的细节,首先需要知道一个概念:shell(命令解释器)自带的命令称为内部命令,其他命令是外部命令。

对于内部命令和外部命令,使用help帮助是不一样的,如下:

  • 内部命令使用help帮助:help cd
  • 外部命令使用help帮助:ls --help

那如何查看一个命令是内部命令还是外部命令呢,通过type,如下:

image.png

image.png

这里我们就知道cd是内部命令,而ls是外部命令,那这时想使用help帮助只能使用

help cd
ls --help

那我反过来可以吗,我们来试一下:

image.png

image.png

可以发现是行不通的。

info帮助

info帮助比help更详细,是作为help的补充,比如

info ls

但是info的帮助文档都是英文的,需要提高英语阅读能力。

总结

能正确且快速地使用帮助命令来查看帮助手册,在日常开发中非常重要,毕竟是官方文档,省去了查阅其他资料带来地时间消耗。