对于一些新的或者不常用的命令和函数,我们常常需要查询使用方法或者参数详情,在linux下我们不需要去网上查询,完全可以利用linux自带的手册查看帮助信息。这就是我们今天要介绍的man命令。
实际上man命令并非仅仅能查看命令或者函数的介绍,在linux中,有丰富的帮助手册信息,并且每一个手册都有一个编号。编号和对应内容如下:
编号 | 代表内容 |
---|---|
1 | 可执行程序或shell命令,如ls |
2 | 系统调用,如chdir |
3 | 库函数,如printf |
4 | 设备或特殊文件,如tty |
5 | 配置文件格式或约定 |
6 | 游戏 |
7 | 杂项 |
8 | 管理命令,通常只有root用户可以使用 |
9 | 内核例程 |
n | 内置命令,如cd |
对于内置命令,还可以使用help命令查看帮助手册,例如:
help cd
判断命令是什么类型可使用type命令,例如:
type cd
cd is a shell builtin
多数手册包含以下几部分内容:
手册的查看和less查看文本类似,可以参考Linux常用命令--文本查看篇或查看less命令的使用,这里介绍基本操作:
man命令所展示的帮助信息都是存在于linux系统中的,流程是怎样的呢?
1.搜索$PATH环境变量指定路径。
2.搜索/etc/manpath.config文件中MANPATH中指定的路径。
3.使用指定的解压工具进行解压处理。
4.使用文本查看命令显示手册内容。
配置文件的位置可通过查看FILES部分内容找到:
man man
FILES
/etc/manpath.config
man-db configuration file.
/usr/share/man
A global manual page hierarchy.
/usr/share/man/index.(bt|db|dir|pag)
A traditional global index database cache.
/var/cache/man/index.(bt|db|dir|pag)
An FHS compliant global index database cache.
这里简单说明一下manpath.config中的SECTION,它指定了优先输出的手册顺序。例如:
SECTION 1 n l 8 3 2 3posix 3pm 3perl 5 4 9 6 7
这里它最先显示的是1,即shell命令的帮助手册,其次是n,即内置命令的帮助手册。以此类推。当然,前提是这些手册都有。
我们也可以通过manpath命令查看man手册所在路径:
manpath
/usr/local/man:/usr/local/share/man:/usr/share/man:/usr/lib/jvm/java-8-oracle/man
一般的命令或者库函数的帮助手册都很好查看,但是如果你想查看write函数的帮助手册,使用下面的命令是看不到的:
man write
因为它既是一个用户命令也是一个系统调用名称,按照前面所设置的顺序,它会优先显示用户命令的帮助手册。因此,如果我们想直接查看作为系统调用(参考:系统调用和库函数的区别)的write的帮助手册,直接使用下面的方式即可:
man 2 write #2表明从系统调用手册中查找
如果仅仅是想查看手册在什么位置,可使用-w参数,例如:
man -w ls
/usr/share/man/man1/ls.1.gz
有时候我们需要查看包含某些关键字的手册,但是又不知道具体是那个手册,这个时候可以使用下面的方式:
man -k touch #查找包含touch关键字的手册(模糊匹配)
git-merge-tree (1) - Show three-way merge without touching index
synaptics (4) - touchpad input driver
syndaemon (1) - a program that monitors keyboard activity and disables...
touch (1) - change file timestamps
如果只想简单知道该命令的作用,可使用-f参数,例如:
man -f ls
ls (1) - list directory contents
使用-a参数即可,它会展示所有相关手册
man -a open
man命令是你最该学会使用的一个命令。借助man命令,可以帮助我们快速的学会使用其他命令或函数的使用。