Gentoo man手册指南

转载: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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/360826.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Java 8 Lambda表达式教程

问候! :) 离开几个月后,我决定恢复风格:)。 我注意到我以前有关新的Date / Time API的一篇文章非常受欢迎,因此这次我将把本篇文章专门介绍Java 8的另一个新功能: Lambda Expressions 。 功能编程 Lambda表达式是Java编程语言最…

React 父组件(hooks)调用子组件(calss)方法

父组件&#xff08;hooks&#xff09; let richTextRef {};<RichText getRichText{getRichText} content{content} onRef{ref > richTextRef ref} />子组件&#xff08;class&#xff09; componentDidMount () > {this.props.onRef && this.props.onRe…

[HDU] 2553 N皇后问题-简单深搜

题目链接&#xff1a; http://acm.hdu.edu.cn/showproblem.php?pid2553 方法&#xff1a; 1.可以用对称的思想&#xff0c;即&#xff1a;如果N是偶数&#xff0c;则只计算第一个皇后分别放在第一行的位置1到N/2这N/2个情况的结果和&#xff0c;最后再乘以2。如果是奇数&#…

您真的了解@WebService吗?

SOAP Web服务无论如何都不是最先进的技术-尽管它仍然存在&#xff0c;但是基于REST的Web服务却提供了激烈的竞争。 无论如何–这绝对不是REST vs SOAP帖子&#xff01; 我观察到了一些实例&#xff0c;至少可以说&#xff0c;使用基于Java的SOAP Web服务的方式不太理想。 我认…

全局使用dva dispatch

// 第一种 这个umi2还可以 umi3就不可以了 window.g_app._store.dispatch({type: login/logout,});// 第二种 调用dispatch(所有models都可以) getDvaApp()._store.dispatch({type: login/logout,});

[转]JQuery.Ajax之错误调试帮助信息

本文转自&#xff1a;http://blog.csdn.net/lampsunny/article/details/8053967 下面是Jquery中AJAX参数详细列表&#xff1a; 参数名 类型 描述 url String (默认: 当前页地址) 发送请求的地址。 type String (默认: "GET") 请求方式 ("POST&quo…

将策略插入JBoss Apiman

JBoss apiman项目 本周刚刚发布了1.0.3.Final 。 它主要是一个错误修复版本&#xff0c;仅进行了一些相对较小的改进。 自从我上次写博客以来&#xff0c;其中的一个特殊功能就是对插件的支持。 这些插件可以轻松添加到系统中&#xff0c;以提供其他功能。 将策略添加为插件 当…

Error: Module “xxx“ does not exist in container. / antd pro v5启用qiankun报错 / 同时使用mfsu和qiankun报错

一、问题描述 我们用antd pro v5搭建前端项目&#xff0c;启用qiankun微前端模式&#xff0c;终端报错如下&#xff1a; Uncaught (in promise) Error: Module “xxx” does not exist in container. while loading “xxx” from webpack/container/reference/mf 经过排查&…

双链表

问题&#xff1a;在分配空间时&#xff0c;遇到问题 定义一个结构体&#xff1a; typedef struct dLinkListNode{ int data; struct dLinkListNode *prior; struct dLinkListNode *next;}*dLinkList,dListNode; dList(dLinkList)malloc(sizeof(dListNode));与dList(dLinkList)m…

paip.C#.NET多线程访问 toolStripStatusLabel

paip.C#.NET多线程访问 toolStripStatusLabel 作者Attilax &#xff0c; EMAIL:1466519819qq.com toolStripStatusLabel控件比较特殊&#xff0c;无法定义invoke来线程调用。。只好使用原生委托..代码稍微多一些.. delegate void clsC417(); xxx() { …

antd Table/ProList中rowClassName用法(补充记录)

rowClassName{setRowClassName}const setRowClassName (record) > {return record.id currentRecord ? styles.checkstyle : ;};

每个客户使用Jersey处理的Cookie

许多REST服务会将cookie用作身份验证/授权方案的一部分。 这是一个问题&#xff0c;因为默认情况下&#xff0c;旧的Jersey客户端将使用单例CookieHandler.getDefault &#xff0c;大多数情况下&#xff0c;该示例将为null&#xff0c;如果不为null&#xff0c;则在多线程服务器…

domino从Excel导入数据

HTML部分—————————————————————————————————————————————— 1 <table style"WIDTH: 99%; BORDER-COLLAPSE: collapse" class"linkeytable"> 2 <tbody> 3 <tr> 4 <td width"15%&qu…

uniapp 微信小程序打包 vendor.js过大 导致打包超过2M

1、分包加载&#xff0c;小程序限制一个包2M&#xff0c;可以分9个子包&#xff0c;整包共计不能超出20M&#xff0c;这一步很简单&#xff0c;如果看文档感觉枯燥的可以参考uview框架的demo&#xff0c;因为这个demo就使用了小程序的分包机制&#xff0c;demo链接&#xff08;…

JVMTI标记如何影响GC暂停

这篇文章分析了为什么Plumbr Agents在某些情况下以及如何延长GC暂停的时间。 对基本问题进行故障诊断揭示了有关在GC暂停期间如何处理JVMTI标记的有趣见解。 发现问题 我们的一位客户抱怨说&#xff0c;附加了Plumbr代理后&#xff0c;应用程序的响应速度明显降低。 通过分析G…

[置顶] 状态压缩DP 简单入门题 11题

1.每一行用一个二进制数表示&#xff0c; 有些二进制数是题目中不合法的状态&#xff0c;我们可以预处理出一行合法状态的个数&#xff0c;在递推的过程中复杂度就会大大降低。 POJ 3254 Corn Fields codePOJ 3311 Hie with the Pie codeHDU 4539…

Css fade()函数降低颜色变量透明度

primary-color颜色变量 background-color: fade(primary-color, 20%);

使用Apache Hadoop计算PageRanks

目前&#xff0c;我正在接受Coursera的培训“ 挖掘海量数据集 ”。 我对MapReduce和Apache Hadoop感兴趣已有一段时间了&#xff0c;通过本课程&#xff0c;我希望对何时以及如何MapReduce可以帮助解决一些现实世界中的业务问题有更多的了解&#xff08;我在这里介绍了另一种解…

React 解决鼠标移入子元素触发父元素的mouseout事件

方法一、 用mouseleave/mouseenter代替mouseover/mouseout【最佳方法】 mouseover 与 mouseenter: mouseover > 不论鼠标指针穿过被选元素或其子元素&#xff0c;都会触发 mouseover 事件。 mouseenter > 只有在鼠标指针从元素外穿入被选元素&#xff08;到元素内&#…

分享一篇关于奇异值分解的文章[Eng]

原文地址&#xff1a;http://www.igvita.com/2007/01/15/svd-recommendation-system-in-ruby/ One day, a bunch of friends, who happened to be big Family Guy fans, decided to put together a site to rank and share their thoughts on the show. Soon thereafter they h…