首先向大家道个谦,为未能即时补上剩余的部分。好了,废话少说,书接
上文。
man命令的基本格式是:
其中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 退出
|
终于写完了...
阅读(2182) | 评论(1) | 转发(0) |