查看原文
其他

linux中如何快速获取帮助信息

守望先生 编程珠玑 2019-04-02


前言

对于一些新的或者不常用的命令和函数,我们常常需要查询使用方法或者参数详情,在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

手册内容

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

  • NAME 功能的简单描述

  • SYNOPSIS 语法格式

  • DESCRIPTION 描述

  • OPTIONS 选项

  • ERRORS 描述出错场景,这在排查错误时很有帮助

  • NOTES 注意事项

  • FILES 相关文件,例如对于man命令的FILES部分内容显示了它的配置文件位置等信息

  • EXAMPLES 使用示例,会提供一些简单的示例

  • BUGS 存在的bug,当遇到奇怪的问题时,不妨看看当前命令是否有已知的bug

基本查看

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

  • 空格 向下翻页

  • Home 回到第一页

  • End 跳到最后一页

  • /string 向前搜索string字符串

  • ?string 向后搜索string字符串

  • n 下一个匹配字符

  • N 上一个匹配字符

  • q 退出

工作流程简述

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命令,可以帮助我们快速的学会使用其他命令或函数的使用。


推荐阅读:

Linux中的文件查找技巧

你可能不知道的printf

什么是函数重载?

C语言入坑指南-被遗忘的初始化

一个命令帮你对文本排序

Linux常用命令-解压缩篇

关注公众号【编程珠玑】,第一时间获取更多原创技术文章


    您可能也对以下帖子感兴趣

    文章有问题?点此查看未经处理的缓存