Linux常用命令-man

前言

对于一些新的或者不常用的命令和函数,我们常常需要查询使用方法或者参数详情,在linux下我们不需要去网上查询,完全可以利用linux自带的手册查看帮助信息。这就是我们今天要介绍的man命令。

基本介绍

实际上man命令并非仅仅能查看命令或者函数的介绍,在linux中,有丰富的帮助手册信息,并且每一个手册都有一个编号。编号和对应内容如下:

编号 代表内容
1 可执行程序或shell命令,如ls
2 系统调用,如chdir
3 库函数,如printf
4 设备或特殊文件,如tty
5 配置文件格式或约定
6 游戏
7 杂项
8 管理命令,通常只有root用户可以使用
9 内核例程
n 内置命令,如cd

对于内置命令,还可以使用help命令查看帮助手册,例如:

1
help cd

判断命令是什么类型可使用type命令,例如:

1
2
type cd 
cd is a shell builtin

手册内容

多数手册包含以下几部分内容:

  • NAME 功能的简单描述
  • SYNOPSIS 语法格式
  • DESCRIPTION 描述
  • OPTIONS 选项
  • ERRORS 描述出错场景,这在排查错误时很有帮助
  • NOTES 注意事项
  • FILES 相关文件,例如对于man命令的FILES部分内容显示了它的配置文件位置等信息
  • EXAMPLES 使用示例,会提供一些简单的示例
  • BUGS 存在的bug,当遇到奇怪的问题时,不妨看看当前命令是否有已知的bug

基本查看

手册的查看和less查看文本类似,可以参考《文本查看篇》或查看less命令的使用,这里介绍基本操作:

  • 空格 向下翻页
  • Home 回到第一页
  • End 跳到最后一页
  • /string 向前搜索string字符串
  • ?string 向后搜索string字符串
  • n 下一个匹配字符
  • N 上一个匹配字符
  • q 退出

工作流程简述

man命令所展示的帮助信息都是存在于linux系统中的,流程是怎样的呢?

1.搜索$PATH环境变量指定路径。

2.搜索/etc/manpath.config文件中MANPATH中指定的路径。

3.使用指定的解压工具进行解压处理。

4.使用文本查看命令显示手册内容。

配置文件的位置可通过查看FILES部分内容找到:

1
2
3
4
5
6
7
8
9
10
11
12
13
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,它指定了优先输出的手册顺序。例如:

1
SECTION 1 n l 8 3 2 3posix 3pm 3perl 5 4 9 6 7

这里它最先显示的是1,即shell命令的帮助手册,其次是n,即内置命令的帮助手册。以此类推。当然,前提是这些手册都有。

我们也可以通过manpath命令查看man手册所在路径:

1
2
manpath
/usr/local/man:/usr/local/share/man:/usr/share/man:/usr/lib/jvm/java-8-oracle/man

实例

查找指定章节手册

一般的命令或者库函数的帮助手册都很好查看,但是如果你想查看write函数的帮助手册,使用下面的命令是看不到的:

1
man write

因为它既是一个用户命令也是一个系统调用名称,按照前面所设置的顺序,它会优先显示用户命令的帮助手册。因此,如果我们想直接查看作为系统调用的write的帮助手册,直接使用下面的方式即可:

1
man 2 write  #2表明从系统调用手册中查找

查找手册所在位置

如果仅仅是想查看手册在什么位置,可使用-w参数,例如:

1
2
man -w ls
/usr/share/man/man1/ls.1.gz

查找包含关键字的手册

有时候我们需要查看包含某些关键字的手册,但是又不知道具体是那个手册,这个时候可以使用下面的方式:

1
2
3
4
5
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参数,例如:

1
2
man -f ls
ls (1) - list directory contents

查看所有手册

使用-a参数即可,它会展示所有相关手册

1
man -a open

总结

man命令是你最该学会使用的一个命令。借助man命令,可以帮助我们快速的学会使用其他命令或函数的使用。

守望 wechat
关注公众号[编程珠玑]获取更多原创技术文章
出入相友,守望相助!