LINUX

关注公众号 jb51net

关闭
操作系统 > LINUX >

Linux下man帮助命令使用全解析

刘伟_luvi

1.Linux提供了丰富的帮助手册,当你需要查看某个命令的参数时不必到处上网查找,只要man一下即可。

所有的手册页都属于一个特定的领域,用一个字符来表示。

Linux下最通用的领域及其名称及说明如下:

领域 名称 说明

1 用户命令, 可由任何人启动的。

2 系统调用, 即由内核提供的函数。

3 例程, 即库函数。

4 设备, 即/dev目录下的特殊文件。

5 文件格式描述, 例如/etc/passwd。

6 游戏, 不用解释啦!

7 杂项, 例如宏命令包、惯例等。

8 系统管理员工具, 只能由root启动。

9 其他(Linux特定的), 用来存放内核例行程序的文档。

n 新文档, 可能要移到更适合的领域。

o 老文档, 可能会在一段期限内保留。

l 本地文档, 与本特定系统有关的。


2.man的一些常用参数和用法


man -a cmd

打开所有领域内的同名帮助,例如 man fam ,你首先会进入一个fam(1M)的命令版fam帮助,你再按q键

就会进入FAM(3X),库函数版的帮助


man -aw cmd

显示所有cmd的所有手册文件的路径,如 man -aw fam 就是


/usr/share/man/man1/fam.1m.gz
/usr/share/man/man3/fam.3x.gz

 
man 领域代号 cmd

直接指定特定领域内搜索手册页,如 man 3 fam 直接进入库函数版的帮助


man -M cmd

指定手册文件的搜索路径,如 man -M /home/mysql/man mysql 显示的就是你安装的mysql的帮助,

而不是系统自带的旧版mysql的帮助


man cmd| col -b > cmd.txt

把man手册信息输出到文本文件

LANG=语言代号


man -w cmd

man 特定语言manpage文件的路径

查看特定语言版本的手册页

例如,要查看mplayer的中文man


shell> LANG=zh
shell> man -w mplayer
/usr/share/man/zh/man1/mplayer.1.gz

新开一个shell窗口(或在原窗口 shell> LANG=en_US.UTF-8)


shell> man /usr/share/man/zh/man1/mplayer.1.gz


3.ubuntu默认是没有安装c语言的库函数man手册的

(1).添加库函数手册
ubuntu默认是没有安装c语言的库函数man手册的,所以你在man perror 和sendto之类的函数时会显示没有相关文档的问题,这个问题让我郁闷了我好久。解决方法:


sudo apt-get install manpages-dev

(2).让man显示中文
ubuntu源里面已经包含了中文的man包,所以不用从其他地方down了,直接


sudo apt-get install manpages-zh

但是这样man默认显示的还不是中文,还需要以下两步
a.把中文man包转换成utf8格式的
新建一个脚本文件


gedit t.sh

把下面内容添加进去


#!/bin/bashcd /usr/share/man/zh_CN/for k in *docd $kfor i in *.gzdo j=`echo ${i%.gz}` gunzip $i iconv -f gb18030 -t utf8 $j >tmp mv tmp $j gzip $jdonecd ..done

然后


sudo ./t

b.修改man默认的语言


sudo gedit /etc/manpath.config

把里面的所有的 /usr/share/man 改成 /usr/share/man/zh_CN
保存后退出,然后你再试一下man ls
(3).让没有中文帮助的显示英文
做完上面第二部还不够,这时你再man 一下一些c语言函数(不要用printf,socket之类比较有名的函数,这些已经有中文帮助了)的时候就会发现竟然没有帮助,而刚才明明在第一步已经安装了啊。这是因为你上面 把/usr/share/man 改成 /usr/share/man/zh_CN的操作使man只在中文帮助中搜索,如果没有就直接放弃,因此还需要以下操作,才能让man在没有中文帮助的时候自动显示英文的帮助,如果英文的也没有,哪就真的没有了。


sudo gedit /etc/manpath.config

然后搜索你刚才改过的地方,然后在其后面添加同样的一行,只是后面的目录还用原来的/usr/share/man,比如在修改后的


MANPATH_MAP /bin /usr/share/man/zh_CN

再添加一行


MANPATH_MAP /bin /usr/share/man

如果发现安装过的系统中缺少很多手册页。
用以下命令搞定了


sudo apt-get install manpages
sudo apt-get install manpages-de
sudo apt-get install manpages-de-dev
sudo apt-get install manpages-dev