什么是man手册
首先,man是manual的简称,中文说法可以是手册。
在Linux世界中,许多新手请教某条命令的用法时, 好多不耐心的老手通常会用一条命令来回答这位无助的新手,而这条命令通常就是man开头。无助的新手敲上这条命令一看究竟,在终端上顿时显示出来了一屏幕的英文,老手的意思是,自己看看手册吗,可是看手册也是有学问的,无助的新手甚至不知道怎么退出这条命令呢。下面我们就来讲解一下看man手册的学问。
一.介绍man的使用方法
1.手册页(Man Pages)
对于Linux初学者,不能将手册页当教程,因为它只是简明的参考资料.在你需要了解某一命令的功能以及相关的参数意义时可以用到它.
Linux man中的man就是manual的缩写,用来查看系统中自带的各种参考手册,但是手册页分为好几个部分,如下所示:(注:手册页,很重要的,一般我们也都没有用上,不过有时候,你就会发现你用上了)
1 Executable programs or shell commands
2 System calls (functions provided by the kernel)
3 Library calls (functions within program libraries)
4 Special files (usually found in /dev)
5 File formats and conventions eg /etc/passwd
6 Games
7 Miscellaneous (including macro packages and conventions), e.g. man(7), groff(7)
8 System administration commands (usually only for root)
9 Kernel routines [Non standard]
----------------------
解释一下,
1是普通的命令
2是系统调用,如open,write之类的(通过这个,至少可以很方便的查到调用这个函数,需要加什么头文件)
3是库函数,如printf,fread
4是特殊文件,也就是/dev下的各种设备文件
5是指文件的格式,比如passwd, 就会说明这个文件中各个字段的含义
6是给游戏留的,由各个游戏自己定义
7是附件还有一些变量,比如向environ这种全局变量在这里就有说明
8是系统管理用的命令,这些命令只能由root使用,如ifconfig
------------------------------------
n 新文档, 可能要移到更适合的领域。
o 老文档, 可能会在一段期限内保留。
l 本地文档, 与本特定系统有关的。
------------------------------------
在shell中输入 man+数字+命令/函数 即可以查到相关的命令和函数。若不加数字,那Linux man命令默认从数字较小的手册中寻找相关命令和函数。
例如:我们输入 man ls,它会在最左上角显示“LS(1)”,在这里,“LS”表示手册名称,而“(1)”表示该手册位于第一节章,同样,我们输入“man ifconfig”它会在最左上角显示“IFCONFIG(8)”。也可以这样输入命令:“man [章节号] 手册名称”。
man是按照手册的章节号的顺序进行搜索的,比如:man sleep,只会显示sleep命令的手册,如果想查看库函数sleep,就要输入:man 3 sleep
------------------------------------
man -f command 显示man程序的所有手册
例如:man -f kill
man n command 显示指定章节的手册
man -a command 显示所有章节的手册
man -w command 显示手册所在的路径
man -aw command 结合-a参数显示所有章节的手册路径
手册页一般由以下几部分组成:
NAME 命令名称 SYNOPSIS 命令的语法格式 DESCRIPTION 对命令功能的描述
OPEIONS 说明该命令所提供的选项和参数 EXAMPLES 对命令如何使用给出的例子 FILES 该手册页的默认位置
AUTHOR 该软件的作者 REPORTING BUGS 告诉用户将他们发现的BUGS通过邮件发送给开发者 COPYRIGHT 版权信息
SEEALSO 与该程序有关的其他程序
如:若是以mkdir为例的话,第一行中出现的MKDIR(1)表示该命令属于Section 1,为用户命令,类似的man
apt-get会看到APT-GET(8),表示apt-get命令为系统管理工具
man程序是基于less命令的因此less程序的操作命令都可以在man pages中使用.
在手册页的最下面一行,可以输入少量的命令(这些命令很重要,其实和Vi下面编辑程序的快捷键很一致的,哈哈 学会举一反三哦)信息的浏览和定位.见下表:
-------------------------------------------
按键 描述
-------------------------------------------
j ------》 向下滚动一行
k ------》 向上滚动一行
g ------》 跳转到手册的第一行
G ------》 跳转到手册的最后一行
/String + Enter ------》 在手册页中查找第一个Sting
n ------》 同方向查找的下一次匹配,可多次使用
N ------》 反方向查找的下一次匹配,可多次使用
h ------》 获得手册页的帮助
也可以使用如:ctrl+f,ctrl+b来翻一整屏
q------》退出手册页
练习,利用可以用man more 和man less 看看他们之间的区别
------------------------------------------
下面简单说明下more命令和less功能的区别:
more命令功能:让画面在显示满一页时暂停,此时可按空格健继续显示下一个画面,或按Q键停止显示。
less命令功能:less命令的用法与more命令类似,也可以用来浏览超过一页的文件。所不同的是less命令除了可以按空格键向下显示文件外,还可以利用上下键来卷动文件。当要结束浏览时,只要在less命令的提示符“: ”下按Q键即可。
它们功能上相近,只是从浏览习惯和显示方式上有所不同
二.如何安装中文的man包
中文man对英文不是很好的朋友来说,可以起到一点帮助作用。不过要学好linux,就不能太依赖这个东东,毕竟学好英语才是王道。
环境:centos 5.3,内核:2.6.18-194.el5 (注,我的电脑也是这个,呵呵)
官方网站:http://cmpp.linuxforum.net
这个是源码的:http://manpages-zh.googlecode.com/files/manpages-zh-1.5.1.tar.gz
现在下载安装包:
wget http://manpages-zh.googlecode.com/files/manpages-zh-1.5.1.tar.gz
操作步骤如下:
#tar zxvf manpages-zh-1.5.1.tar.gz
(注:我使用的加上了解压目录的命令 即又加上了:-C /tmp )
#cd manpages-zh-1.5.1
#./configure --prefix=/usr/local/zhman --disable-zhtw
#make
#make install
以上安装完成.请做如下操作:
#cd ~
#vi .bashrc
在.bashrc中增加:
alias cman='man -M /usr/local/zhman/share/man/zh_CN'
#source .bashrc //在命令行执行,为了使刚刚添加的alias生效
OK!现在就可以使用中文版的man了,在这里是cman,此时,你发现你可以用自带的man,还有安装有中文的cman了,是不是很爽呀。。。
如:
cman cd
cman ls
按照上面的说明我在centos5.4上测试成功,执行 cman ls 结果如下
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
|
[root@stu ~] # cman ls -p Display readline function names and bindings in such a way that they can be re- read . LS(1) LS(1) NAME ls , dir , vdir - 列目录内容 提要 ls [选项] [文件名...] POSIX 标准选项: [-CFRacdilqrtu1] GNU 选项 (短格式): [-1abcdfgiklmnopqrstuxABCDFGLNQRSUX] [-w cols] [-T cols] [-I pattern] [--full- time ] [-- format ={long,verbose,commas,across,verti- cal ,single-column}] [-- sort ={none, time ,size,extension}] [-- time ={atime,access,use,ctime,status}] [--color[={none,auto,always}]] [--help] [--version] [--] 描述( DESCRIPTION ) 程 序 ls 先列出非目录的文件项,然后是每一个目录中的“可显示”文件。如果没有选项之外的参数【译注:即文件名部分为空】出现,缺省为 "." (当前 目录)。选项“ -d ”使得目录与非目录项同样对待。除非“ -a ” 选项出现,文件名以“.”开始的文件不属“可显示”文件。 以当前目录为准,每一组文件(包括非目录文件项,以及每一内含文件的目录)分别按文件名比较顺序排序。如果“ -l ”选项存在,每组文件前显示一摘 要行: 给出该组文件长度之和(以 512 字节为单位)。 输出是到标准输出( stdout )。除非以“ -C ”选项要求按多列输出,输出将是一行一个。然而,输出到终端时,单列输出或多列输出是不确定的。可以 分别用选项“ -1 ” 或“ -C ”来强制按单列或多列输出。 -C 多列输出,纵向排序。 -F 每个目录名加“ / ”后缀,每个 FIFO 名加“ | ”后缀,每个可运行名加“ * ”后缀。 -R 递归列出遇到的子目录。 -a 列出所有文件,包括以 "." 开头的隐含文件。 -c 使用“状态改变时间”代替“文件修改时间”为依据来排序(使用“ -t ”选项时)或列出(使用“ -l ”选项时)。 -d 将目录名象其它文件一样列出,而不是列出它们的内容。 -i 输出文件前先输出文件系列号(即 i 节点号: i-node number)。 -l 列出(以单列格式)文件模式( file mode ),文件的链接数,所有者名 , 组名,文件大小(以字节为单位),时间信息,及文件名。缺省时,时间信息显示最近修改时间;可以以选项“ -c ”和“ -u ”选择显示其它两 种时间信息。对于设备文件,原先显示文件大小的区域通常显示的是主要和次要的号(majorand minor device numbers)。 -q 将文件名中的非打印字符输出为问号。(对于到终端的输出这是缺省的。) -r 逆序排列。 -t 按时间信息排序。 -u 使用最近访问时间代替最近修改时间为依据来排序(使用 “ -t ”选项时)或列出(使用“ -l ”选项时)。 -1 单列输出。 GNU 细节 如果标准输出是终端,将多列输出(纵向排序)。 dir ( 也被安装为命令 d ) 等同于“ ls -C ”;即,文件 缺省是多列输出,纵向排序。 vdir ( 也被安装为命令 v ) 等同于“ ls -l ”; 即,文件缺省是按长格式输出。 |