Chinaunix首页 | 论坛 | 博客
  • 博客访问: 2000123
  • 博文数量: 369
  • 博客积分: 10093
  • 博客等级: 上将
  • 技术积分: 4271
  • 用 户 组: 普通用户
  • 注册时间: 2005-03-21 00:59
文章分类

全部博文(369)

文章存档

2013年(1)

2011年(2)

2010年(10)

2009年(16)

2008年(33)

2007年(146)

2006年(160)

2005年(1)

分类: LINUX

2007-04-28 22:36:31

首先向大家道个谦,为未能即时补上剩余的部分。好了,废话少说,书接上文

man命令的基本格式是:

man [section] name


其中section(区号:1-9)被方括号([])括起来,表示这个字段是可选的,它标示了man将在哪个区(section)搜索由name指定的文档,当区号被省略的时候,man将按区号从小到大的顺序搜索所有的区,直到找到相关文档或者失败。区段按照传统分为以下几个:

1 命令
用户可以执行的命令,包括shell内建的命令和其他外部命令等。如ls,cd和chmod。

2 系统调用
必须由内核执行的功能。是内核留给用户空间程序的一类接口。如open,read和socket。

3 库调用
大多数libc程序库。如fopen,fread和system。他和系统调用都是UNIX下的C程序员最关心的部分,阅读他们你将得到某个函数的具体细节,包括注意事项,甚至是BUG。

4 特殊文件
/dev/目录下的文件,他们通常是块设备文件、字符设备文件、有名管道(pipe)文件或者是UNIX域套接字文件,Linux下还包括系统内存映像文件(mem)、内核内存映像文件(kmem)和系统端口(port)。

5 文件格式和惯例
类似/etc/passwd的纯文本文件(一般为配置为文件)的格式。如果你碰巧忘记了某个配置文件的格式,以这个文件的文件名为参数,man一下吧!

6 游戏
UNIX为人们想得真周到,也难怪,史上第一个UNIX系统就是Ken Thompson为了玩“星际旅行”游戏而“发明”的。这个也没啥好解释的。

7 惯例和其他
关于标准文件系统层、网络协议、ASCII和其他的字符编码,还有其他的东西的描述。一句话:无法归类到其他区的乱七八糟们。不过你不能小瞧这个区,它可能包含库或一类命令的教程或者是综述,比如说pthreads和epoll。

8 系统管理命令
类似mount的只有系统管理员(root)才能执行的命令。

9 内核例程
这是一个被遗弃的区。曾经有人想把Linux内核文档放在这里,但事实上,内核只有少部分被文档化了,并且他们都已过期。由于文档较源码滞后,所以内核开发人员的最好文档就是内核源码本身。P.S.:开源世界里,很多软件压根就没有文档,即使有,能做到和源码同步的也不多。

以上是对每个区的简单介绍,更详细的内容,请您自己去看相关的手册页(intro)吧。比如要看第1区段的详细介绍:

xiaosuo@gentux ~ $ man 1 intro


如果是其他区段,把上面命令中的第一个参数1换成您想看的区段就可以了。

手册页是由一个个段组成的,并且每个段都有标题引领,接下来将介绍其中的一些段:

名称[NAME]
关于命令的一句话描述,通常都是一针见血的那种。

概要[SYNOPSIS]和用法[USAGE]
命令格式或函数原型的描述,如果是函数原型,它还会给出应用此函数必须包含的头文件,这对于程序员来说比较方便。

说明[DESCRIPTION]和选项[OPTIONS]
详细的说明文档,通常是比较细节的部分,有的时候还伴随着原理和实现。

环境[ENVIRONMENT]和文件[FILES]
分别表示影响程序执行的环境变量和与程序相关的文件。

返回值[RETURN VALUE]、退出状态[EXIT STATUS]和错误[ERRORS]
命令或函数的执行结果和其诱因,判断命令或函数的结果是每个程序都应该保持的严谨作风,所以要特别留意上面这些字段。

注意[NOTES][LINUX NOTES]、诊断[DIAGNOSTICS]、常见文题解答[FAQ][QUESTIONS AND ANSWERS]、安全[SECURITY]和臭虫[BUGS]等
上面这些段都是需要我们多加留心的地方,如果一篇文档中有以上内容,你必须把它读完并理解。相对于被奉为圣经(Bible)的《UNIX环境高级编程》(APUE)来说,以上字段中的内容也许更符合当前的环境,更详细具体。

示例[EXAMPLES]
很多人都对这个段更感兴趣,也许是因为这种说明方式更加直接吧!

符合[CONFORMING TO]
说明这个实现符合什么标准或约定。除非你不想你的程序有任何可移植性,或者你是当前系统的铁杆粉丝(fans),否则从长远考虑,作为程序员你就应该关注此段。对C程序员来说,C和POSIX标准比较可靠,当然,实际的跨平台(这里指UNIX品牌内,并不包括Windows系统)开发远比这个要复杂得多。

作者[AUTHOR]
程序或文档的相关作者(含联系方式)或邮件列表,让你可以有地方询问相关问题、提交BUG、感谢或者是抱怨。

请参阅[SEE ALSO]
当你感觉正在看的东西不太符合你的需求时,不妨翻到最后(这个段通常放在最后),看看这个段的内容,也许它会给你带来惊喜。

再谈谈手册页的阅读技巧。man程序本身并没有提供方便阅读超过一页内容的分页程序,它是通过调用外部的分页程序(如less,more等,默认是less)来实现分页阅读的,这充分符合ESR所提到的功能上“正交”的UNIX程序设计原则,同时也带来了极大的灵活性。你可以通过环境变量(PAGER)或者是命令行参数(-P)按照自己的喜好来指定分页程序。个人还是偏爱man默认的less,比较强大(虽然平时用的内容都比较基本),并且它的热键绑定和vim一样传承了ed的传统,用起来比较舒适。

一些常用热键:

h 帮助信息
j 前进一行
k 后退一行
空格或f 向前翻页
b 向后翻页
r 刷屏
g 跳转到文件的第一行
G 跳转到文件的最后一行

?string 向后搜索字符串string

/string 向前搜索字符串string

q 退出


终于写完了...
阅读(2059) | 评论(1) | 转发(0) |
0

上一篇:我是“纯爷们”

下一篇:五一快乐

给主人留下些什么吧!~~