转载:http://www.gentoo.org/doc/zh_cn/man-guide.xml#doc_chap2

http://blog.csdn.net/andyelvis/article/details/4044938

使用man命令技巧

Gentoo man手册指南

内容:        1. 简介2. 使用man结构

1.              简介

man程序

每一个人在他的linux人生中都使用过它。它就是man命令。尽管man程序本身的结构看起来非常简单,然而,它除了滚动手册页之外,还有一些其他额外的功能。希望这篇文档能为你点亮man的那些功能。

Man结构

手册页主要报存在/usr/share/man目录下。 其实,只要是列在MANPATH环境变量的路径中的手册页,man都能够找到。Gentoo一般将MANPATH变量保存在/etc/env.d中。在这些目录中,保存了一些结构为manX的文件夹。其中X表示章节号。一个标准的man布局可能如下所示:

代码 1.1: 标准man结构

$ ls /usr/share/man | grep man
man0p
man1
man1p
man2
man3
man3p
man4
man5
man6
man7
man8
man9
mann

实际的章节号显示的很标准,但是注意这里有一个mann和几个man#p文件夹。下表列举了上面man目录,以及其中包含了什么:

man目录 描述
man0p 和其他有目录名中有p的目录一样,这个p表示POSIX。在这个目录下的手册页描述各种POSIX头文件的功能。  
man1 这一章节介绍标准命令。大部分程序将其手册页放在这里。因此,这一章节将会是最大的。  
man1p 这一章节描述POSIX版本的命令。因为这里只描述基本的命令,因此会比man1小很多。  
man2 这一章节描述Linux内核系统调用。
man3 这一章节描述标准的c函数库。
man4 这一章节描述特殊的设备。这些设备通常是面向内核的,不过Xorg-X11在这里也有一项。  
man5 这一章节描述一些特定文件的结构以及程序将使用哪些文件。读者们可能对以下参考比较熟悉,man 5 portage是对portage文件结构的一些描述,还有man 5 make.conf是对make.conf文件结构的描述。  
man6 这一章节介绍游戏和一些特殊玩具。
man7 这一章节描述一些标准和一些杂项。标准包括比如字符集,SQL语句,ISO标准以及正则表达式。  
man8 这一章节描述管理员命令(通常由root用户执行的那些命令)。  
man9 这一章节很少。应该是包含内核一些部分的文档。  
mann 这一章节主要包含Tcl/Tk的一些文档。n表示新的(new)。  

  

首先第一行 MKDIR(1),显然,MKDIR是命令的大写,那么为什么有个(1)呢,那是因为man手册页有如下的规定:

Section 名称 说明
l 本地文档 与本特定系统有关的
1 用户命令 可由任何人启动的
2 系统调用 即由内核提供的函数
3 例程 即库函数
4 设备 即/dev目录下的特殊文件
5 文件格式描述 例如/etc/passwd
6 游戏 不用解释啦
7 杂项 例如宏命令包、惯例等
8 系统管理员工具 只能由root启动
9 其他(Linux特定的) 用来存放内核例行程序的文档
n 新文档 可能要移到更适合的领域
o 老文档 可能会在一段期限内保留

MKDIR(1)表示该命令属于Section 1,为用户命令,类似的man apt-get会看到APT-GET(8),表示apt-get命令为系统管理工具。

“NAME”部分是该命令的名字和简单的解释,显然,在命令行中要执行该命令要使用到它的名称。

“SNOPSIS”是摘要部分,简要解释该命令如何使用,比如mkdir的摘要: mkdir [OPTION] DIRECTORY…,读到这里便需要讲解一下了:

“OPTIONS”左右有”[“和”]”,表示这些参数并不必须,但是可以使用。对应的DIRECTORY两边没有”[]”,就是必须要加的参数了。 另外,它们后面都有”…” ,表示这些参数可以重复使用多次。至于OPTIONS具体怎么用,就要看DESCRIPTION部分了。下面举几个简单的例子,并配合例子解释:

尽管不是全部的细节,这里列举了大部分人感兴趣的手册页。然而,当你想了解某个章节是干什么的,查查这张表格是最快捷的方法了。下一章介绍如何通过man遍历这里介绍的man结构。

2.              使用man结构

浏览man结构

现在我们知道了标准的man结构。我们开始通过命令查看。有时候我们希望减小我们的查找手册页的范围。第一种方法是通过指定章节。比如找出对man中的章节的描述,我们可以使用man 章节号 intro:

代码 2.1: 使用man intro找到章节号的描述

$ man 3 intro
(为了适合这个文档,我们稍微修改了一下输出)
INTRO(3)               Linux Programmer's Manual                INTRO(3)NAMEintro - Introduction to library functionsDESCRIPTIONThis chapter describes all library functions excluding the libraryfunctions described in chapter 2, which implement system calls.There are various function groups which can be identified by aletter which is appended to the chapter number:
....

遗憾的是,这样做不一定行!幸运的是,我们可以通过另外一种方法查找那些可能有多个返回结构的命令(比如一个库调用和系统命令有相同的命令时)。我们用-K参数,比如:

代码 2.2: 使用man -K查找字符串

$ man -K sleep
/usr/share/man/man0p/time.h.0p.gz? [ynq] n
/usr/share/man/man0p/unistd.h.0p.gz? [ynq] n
/usr/share/man/man2/alarm.2.gz? [ynq] n
/usr/share/man/man2/pause.2.gz? [ynq] n
/usr/share/man/man2/futex.2.gz? [ynq] n
/usr/share/man/man2/nanosleep.2.gz? [ynq] y
/usr/share/man/man2/semop.2.gz? [ynq] q

有时候输出结果可能会很多。这时候最好指定更确切的关键字。现在我们知道怎么找到手册页了。接下来的章节介绍怎么查看手册页。

查看手册页

查看手册页有两种方法。方法一,man [手册页名字]。方法二,man [章节] [手册页名字]。我们以bc为例子。我们可以查看到第一篇关于bc的手册页(章节号将会是1,因为这是章节号最小的包含bc命令的章节):

代码 2.3: 查看默认手册页

$ man bc
bc(1)                                            bc(1)NAMEbc - An arbitrary precision calculator language
...

然而,如果我们要找POSIX版的呢?那么我可以用第二种形式:

代码 2.4: 查看特定章节中的手册页

$ man 1p bc
BC(P)        POSIX Programmer's Manual           BC(P)NAMEbc - arbitrary-precision arithmetic language
...

手册页显示如上。现在我们查看到了手册页,接下来是怎么在上面工作。下一章介绍如何浏览和搜索。

浏览和搜索手册页

浏览手册页非常简单。使用向上和向下键一行一行翻阅。使用向上翻页和向下翻页键一页一页翻阅。注意,使用这样的浏览指令是假设环境变量PAGER设成了默认的less。less还有其他一些浏览命令。不过方向键一般足够了。

代码 2.5: 另外的less浏览键

  e  ^E  j  ^N  CR  *  前进一行(或N行)y  ^Y  k  ^K  ^P  *  后退一行(或N行)f  ^F  ^V  SPACE  *  前进一个窗口(或N行)b  ^B  ESC-v      *  后退一个窗口(或N行)z                 *  前进一个窗口(将窗口设置到N)w                 *  后退一个窗口(将窗口设置到N)ESC-SPACE         *  前进一个窗口,在文件末尾不停止d  ^D             *  前进半个窗口(将这半个窗口设置到N)u  ^U             *  后退半个窗口(将这半个窗口设置到N)ESC-)  RightArrow *  向左半个屏幕宽(或N个位置)ESC-(  LeftArrow  *  向右半个屏幕宽(或N个位置)F                    一直前进,像"tail -f"一样

搜索更加有趣。最基本的搜索指令是 /字符串和?字符串。 第一个版本向前搜索,第二个版本向后搜索。 这里的字符串是正则表达式字符串,在nman 7 regex中有描述。 我们以搜索emerge的-D为例,首先找出emerge的手册页:

代码 2.6: 找出emerge的手册页

$ man emerge

然后,在屏幕上,按/就能显示出向前搜索的提示。我们输入搜索字符串:

代码 2.7: 显示向前搜索提示

     gracefully handles updating installed packages to newer releases as well.It handles both source and binary packages, and it can be used to createbinary packages for distribution.EBUILDS, TBZ2S, CLASSES AND DEPENDENCIES
/\-D

注意: \符号使用来换码-符号。\一般用作正则表达式的一部分。

这将搜索手册页,然后将锁定到被搜索的项:

代码 2.8: 向前搜索结果

  --deep (-D)When used in conjunction with --update, this flag forces emerge to consider the entiredependency tree of packages, instead of checking only the immediate dependencies ofthe packages.  As an example, this catches updates in libraries that are not directlylisted in the  dependencies of a package.

如果你你搜索到结果之后还想再继续搜索同样的字符串,只要再次按/键,然后回车(即,不要再输入搜索字符串)就可以了。 这将默认搜索上一次使用的搜索字符串。现在已经找到我们搜索的选项的手册页,上面解释了选项含义。 再比如man 5 portage手册页。上面列了使用到的文件并解释了其用途。向前搜索几次就能找到结果,不过也有一个简单的方法 来处理这个问题。用第二个搜索方法向后搜索。我们用这个方法查找package.unmask的描述。首先显示man 5 portage手册页:

代码 2.9: 显示man 5 portage手册页

$ man 5 portage

然后按SHIFT+g,将把你带到手册页末尾:

代码 2.10: 按SHIFT+g之后到达手册页末尾

SEE ALSOemerge(1), ebuild(1), ebuild(5), make.conf(5)Portage 2.0.51        Jan 2004            PORTAGE(5)
lines 418-442/442 (END)

现在,我们继续用?字符串方法向后搜索选项。首先按?键显示出搜索提示,然后输入package.unmask回车,我们这样查询:

代码 2.11: 指定我们的搜索

SEE ALSOemerge(1), ebuild(1), ebuild(5), make.conf(5)Portage 2.0.51        Jan 2004           PORTAGE(5)
?package.unmask

然后按回车显示出搜索结果:

代码 2.12: 我们的搜索结果

  package.unmaskJust like package.mask above, except here you list packages you want to unmask.Useful for overriding the global  package.mask  file (see below).  Note thatthis does not override packages that are masked via KEYWORDS.
...

搜索完成!注意,和使用/一样,用?搜索时,不输入搜索字符串会默认用上一次搜索字符串。

结论

这一章总结man指导。希望这篇指导点亮手册页浏览的一线曙光,并给有经验的用户一点新的提示。 喜欢用其他方法浏览手册页的用户也可以用以下工具:

  • app-text/man2html - 一个将手册页转成html的程序
  • app-text/tkman - 一个基于tk的手册页浏览器

KDE的网页浏览器Konqueror也能用来浏览手册页。只要在地址条上输入man:。

打印

最简单的办法,以mkdir为例:

man -t mkdir > mkdir_man.ps

可以直接打印ps,打算发给别人打印的话,转换成pdf也比较方便:

ps2pdf mkdir_man.ps mkdir_man.pdf

转载于:https://www.cnblogs.com/blueyunchao0618/archive/2013/04/15/3022397.html

Gentoo man手册指南相关推荐

  1. 编写用户帮助/操作手册指南

    背景: 用户操作手册是一份指导用户使用产品或服务的重要手册. 一个新系统,需要写用户操作手册,该从何下笔?本篇是一篇教你编写用户帮助/操作手册的指南- 首先,先来看一个反例 : 这个是我入职的时候,我 ...

  2. php新人怎么领带,职场穿搭礼仪手册指南

    职场穿搭礼仪手册指南 "什么场合穿什么衣服,什么职业穿什么样的衣服"这是我进入职场学会的第一课,也是个人形象管理中最重要的一个原则.律师给大众的印象一直是严谨.这种严谨是由内向外的 ...

  3. prototype使用学习手册指南之Position.js

    Position是prototype中定义的一个对象,提供了操作DOM中与位置相关的方法,要很好的理解元素在页面中的位置,具体代码如下,按照代码说说,其中英文是作者的注释,中文的才是偶的说明或翻译英文 ...

  4. Luat模块应用手册-指南-Luat二次开发教程指南-功能开发教程-长连接超低功耗方案

    目录 简介 什么是超低功耗 能降低多少功耗 什么时候用 哪个版本才支持 实现方法 主要命令 示例 实现原理 两种心跳包 实现代码 常见问题 相关资料以及购买链接 相关开发板购买链接 简介 什么是超低功 ...

  5. Luat模块应用手册-指南-luat二次开发教程-功能开发教程-HTTP

    关键词:HTTP,POST,GET 目录 http 简介 API说明 实现流程 示例 执行HTTP请求的回调函数 HTTP请求函数 常见问题 是否支持HTTPS 为什么频繁请求会失败 为什么POST ...

  6. Luat模块应用手册-指南-Luat二次开发教程指南-功能开发教程-虚拟AT

    目录 简介 实现方法 示例 常见问题 相关资料以及购买链接 测试源码 相关开发板购买链接 简介 虚拟AT 也叫 VAT , 'V' 的英文就是 virtual 虚拟的意思; ,传统的AT 是上位机何下 ...

  7. 2021github仓库操作流程手册指南

    文章目录 1.git操作 2.git简介 3.git 安装 4.git使用 1.git 初始化 2.git设置用户信息 3.git 项目的拉取 1.创建仓库 2.本地初始化 3.查看当前是否存在自己的 ...

  8. 黑猴子的家:新生婴儿手册指南

    第一步 宝宝离开母体 丈夫签字,进手术室,进行剖腹产或者顺产 第二步 宝宝NICU 婴儿从妈妈肚子里面出来后,婴儿体重如果不到5斤,缴费进NICU,去办理住院手续,押金1万到3万都可以,基本上也就花完 ...

  9. 在虚拟机中安装gentoo简化步骤(基于官方手册)

    **************************第1部分-关于如何安装gentoo linux************************** 1-1.本步骤中只包含官方手册中最必须的内容,如 ...

最新文章

  1. CentOS7(64位)下运行IPython3出错解决办法
  2. pandas为dataframe添加新的数据行(rows)、在dataframe后面纵向添加一行数据(数据为列表list形式)、列有不匹配将会使用NA值进行填补
  3. java面试浦发_记一次凉凉的浦发面试
  4. android textwatcher 延时,Java-防止两次在android的textwatcher中运行
  5. 判断事件源的另一方法
  6. 编码方式 / ASCII、UNICODE、UTF-8、ANSI
  7. 11 为了进一步_浅聊小米11发布会
  8. C#LeetCode刷题之#344-反转字符串​​​​​​​(Reverse String)
  9. 洛谷 P1396 营救
  10. hive和mysql传输数据类型_hive的数据类型
  11. 5.MySQL优化---索引优化专题
  12. java中display1_关于displaytag1.1的两种分页
  13. android p 小米6,小米6还能再战几年!将升级Android P
  14. Bootstrap可视化布局系统
  15. linux常用之必备基础命令一
  16. 以太坊Solidity编程中你不知道的单位
  17. 理解JPEG图像压缩算法,DCT变换
  18. Python27 No module named PIL解决方法
  19. Python坦克大战小游戏(三):背景
  20. CF寒假补题集——1.21

热门文章

  1. document中输出html字符串流,HTML DOMDocument从段落后面的标签中获取字符串
  2. c语言中prime的作用,C语言判断素数prime
  3. java 命名内部类_如何把java SWT程序中的匿名内部类改写成命名内部类?
  4. android网络转圈,android基于dialog加载时转圈圈很好的demo
  5. matlab graphic,Matlab图形系统,Matlab Graphic System,音标,读音,翻译,英文例句,英语词典...
  6. python语言变量随时声明_2. Go语言五种变量创建的方法
  7. h3c 链路聚合测试_良无磐石固,虚名复何益?- 链路聚合协议互通测试
  8. 1062 最简分数(PAT乙级 C++)
  9. 什么是四路串口服务器?
  10. 【渝粤教育】国家开放大学2019年春季 1362应用语言学 参考试题