您的位置:首页 > 运维架构 > Linux

Linux下man手册的用法

2017-08-13 10:38 429 查看
http://samuschen.iteye.com/blog/700944
http://blog.csdn href="http://lib.csdn.net/base/dotnet" target=_blank>.NET/qiuxin315/article/details/6799629

Linux的man很强大,该手册分成很多section,使用man时可以指定不同的section来浏览,各个section意义如下:

1 - commands

2 - system calls

3 - library calls

4 - special files

5 - file formats and convertions

6 - games for Linux

7 - macro packages and conventions

8 - system management commands

9 - 其他

解释一下, 

1是普通的命令

2是系统调用,如open,write之类的(通过这个,至少可以很方便的查到调用这个函数,需要加什么头文件)

3是库函数,如printf,fread

4是特殊文件,也就是/dev下的各种设备文件

5是指文件的格式,比如passwd, 就会说明这个文件中各个字段的含义

6是给游戏留的,由各个游戏自己定义

7是附件还有一些变量,比如向environ这种全局变量在这里就有说明

8是系统管理用的命令,这些命令只能由root使用,如ifconfig

想要指定section就直接在man的后面加上数字,比如 :

man 1 ls

man 3 printf

等等

对于像open,kill这种既有命令,又有系统调用的来说,man open则显示的是open(1),也就是从最前面的section开始,如果想查看open系统调用的话,就得man 2 open

1. man命令的搜索路径:

1:$PATH变量指定的路径 

2:/etc/man.config文件中MANPATH中指定的路径 

其中/etc/man.config中有如下内容:

MANPATH /usr/man 

MANPATH /usr/share/man 

MANPATH /usr/local/man 

MANPATH /usr/local/share/man 

MANPATH /usr/X11R6/man

所以,如果需要添加新的man page.则只需要将man page目录添加到/etc/man.config MANPATH项目既可。

2. 如果在以上8类man page中有重名项目,如何确定哪个优先显示:

在/etc/man.config中,有一项:MANSECT,用来指定显示优先级。

MANSECT  1:1p:8:2:3:3p:4:5:6:7:9:0p:n:l:p:o:1x:2x:3x:4x:5x:6x:7x:8x

如果没有指定具体显示哪一个,则按MANSECT顺选来显示。

例如:

#man printf

则会优先显示1.shell中用户可用的命令

可以使用#man -a printf查看其顺序。

其中3p的p,表示 POSIX。

3. 帮助文件格式:

man程序读取的帮助文件格式分为两大类. 

1. troff程序编写的源程序. 

2. 通过压缩工具压缩过的源程序.

man程序可以直接读取的格式,是第一大类,和第二大类中用gzip压缩的帮助文件. 

其它的压缩格式的处理,则在/etc/man.config中指定:

.gz  /usr/bin/gunzip -c 

.bz2  /usr/bin/bzip2 -c -d 

.z 

.Z  /bin/zcat 

.F 

.Y

/usr/share/man存放了绝大多数的帮助文件,而且都是压缩格式的帮助文件. 

/usr/local/share/man存放的都是以文本格式的帮助文件.

例如:使用gunzip -c /usr/share/man/man3/strcpy.3.gz的内容,

就与#man 3 strcpy 结果对应。

4. man 文件结构:

/usr/share/man中包括man1,man2,man3,man3p....man8等目录。其中man后的数字,就是对应前面知识点0中的list.

增加C++ 标准库 man page:

1.download

ftp://gcc.gnu.org/pub/gcc/libstdc++/doxygen/

2.解压缩,将man3目录copy到/usr/share/c++/man目录中。

3.在/etc/man.config中添加

MANPATH /usr/share/c++/man

然后使用:

#man std::iostream

成功。

另外:std man 也可以在

http://docsrv.sco.com/man/html.3C++std/下查看。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  linux