[实践Ok]linux man使用方法 和centos6.3安装中文man包,自己写man帮助文件的方法。

jackxiang 2012-7-21 21:21 | |
https://github.com/man-pages-zh/manpages-zh:
yum install man-pages-zh-CN


首先要:yum install man  ,因为用的是centos6.3的最小安装,没有,否则后面配置都无效果。
http://code.google.com/p/manpages-zh/downloads/list
man 1是shell命令,man 2是系统调用,man 3是库函数
GNU GCC 提供了一份关于 MAN 格式的 C++ 标准库的文档,可以在其镜像点
ftp://gcc.gnu.org/pub/gcc/libstdc++/doxygen/
ftp://gcc.gnu.org/pub/gcc/libstdc++/doxygen/libstdc++-man.4.4.0.tar.bz2

找一个最新日期的下载。展开包之后将 man/man3 中的所有文件拷贝到系统上已经存在的一个 man/man3( cp man3/* /usr/share/man/man3/.)(cp -Rf man3/* /usr/local/zhman/share/man/zh_CN/man3/) 目录中即可使用。
在/usr/share/man/manX/
其中‘X’代表的是数字,也就是MAN的类别。


1)对于找不到的命令,man会报错:
[jing@CentOS locale]$ man abc
Cannot open the message catalog "man" for locale "zh_CN.UTF-8"
(NLSPATH="/usr/share/locale/%l/LC_MESSAGES/%N")
实践Ok:http://www.jackxiang.com/post/5711/
解决URL:http://www.2cto.com/os/201111/111711.html
[实践OK]将en下的man复制过来,先凑合用用:
cp /usr/share/locale/en/LC_MESSAGES/man /usr/share/locale/zh/LC_MESSAGES/
http://www.jackxiang.com/post/5711/



GNU GCC 提供了一份关于 MAN 格式的 C++ 标准库的文档,可以在其镜像点(http://gcc.gnu.org/mirrors.html)中下载。具体的路径是:ftp://gcc.gnu.org/pub/gcc/libstdc++/doxygen/libstdc++-man.4.4.0.tar.bz2,可找一个最新日期的下载。展开包之后将 man/man3 中的所有文件拷贝到系统上已经存在的一个 man/man3 (/usr/share/man/man3/.)目录中即可使用,我的位置是:/man/libstdc++-man-4.4.0/man3# cp * /usr/share/man/man3/.。

可首先 man C++Intro 阅读 Introduction to the GNU libstdc++-v3 man pages。

对于 cout,你需要知道它是 std::ostream 类的一个对象,所以应该 man std::ostream。

摘自
http://bbs.chinaunix.net/thread-869423-1-1.html


这两天学习<linux设备驱动程序开发详解>中的异步通知,其中有一个fcntl()函数,就是找不到,很气愤,在网上搜,也没有好的解决办法,
最终,一个网友给我做了解答:是因为fcntl()是标准库,在内核源码中是找不到的,只能在系统中查找到,你可以用这个命令来实现:man fcntl

所以,我才重新看看man的用法,发现确实有这么多的用处,咳,整理如下:
什么是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


来源:http://www.cnblogs.com/google4y/archive/2011/10/08/2201807.html



wget http://manpages-zh.googlecode.com/files/manpages-zh-1.5.1.tar.gz
tar zxvf manpages-zh-1.5.1.tar.gz
cd manpages-zh-1.5.1
./configure   --disable-zhtw
make && make install


修改语言配置
[root@www ~]# cat /etc/sysconfig/i18n
#LANG="en_US.UTF-8"
LANG="zh_CN.utf8"
SYSFONT="latarcyrheb-sun16"

修改完推出控制台  重新登陆以刷新环境变量
[root@www ~]# echo $LANG
zh_CN.utf8


如果输出是zh_CN.utf8的话说明中文环境切换成功

man ls  查询ls的话会是中文

PS:有些命令还是英文的

煮酒品茶:脚本一个

------------------------------------------------------------------------


#/bin/bash

#shell by cwtea.blog.51cto.com

wget http://manpages-zh.googlecode.com/files/manpages-zh-1.5.1.tar.gz

tar zxvf manpages-zh-1.5.1.tar.gz

cd manpages-zh-1.5.1

./configure   --disable-zhtw

make && make install

mv /etc/sysconfig/i18n /etc/sysconfig/i18n.old

echo -e "LANG=\"zh_CN.utf8\"">>/etc/sysconfig/i18n

echo -e "SYSFONT=\"latarcyrheb-sun16\"">>/etc/sysconfig/i18n

echo $LANG

echo "Input #man ls -option# go to chinese help"

--------------------------------------------------------------------------






自写linux下的简单man帮助文件:
写一个函数的帮助文件,如果只是为了自己方便(不要求严格的格式,自己能看懂就行,别拿出来让别人难以理解)的话,是相当简单的,看一下MAN文件就大致了解了。
在/usr/share/man/manX/
其中‘X’代表的是数字,也就是MAN的类别。
***************************************
Linux下最通用的领域及其名称及说明如下:

领域 名称 说明
1 用户命令, 可由任何人启动的。
2 系统调用, 即由内核提供的函数。
3 例程, 即库函数。
4 设备, 即/dev目录下的特殊文件。
5 文件格式描述, 例如/etc/passwd。
6 游戏, 不用解释啦!
7 杂项, 例如宏命令包、惯例等。
8 系统管理员工具, 只能由root启动。
9 其他(Linux特定的), 用来存放内核例行程序的文档。
n 新文档, 可能要移到更适合的领域。
o 老文档, 可能会在一段期限内保留。
l 本地文档, 与本特定系统有关的。
*****************************************
一般普通的函数是在man3目录下。
你建一个文件,文件名为“你的函数名.类别”,比如叫“hello.3",然后在里边写内容,最好是看看别的MAN文件的格式和语法。
例:
#echo abcd1234>/usr/share/man/man3/hello.3
#man hello
打包可以执行如下命令:
#gzip /usr/ share/man/man3/hello.3
#man hello

作者:jackxiang@向东博客 专注WEB应用 构架之美 --- 构架之美,在于尽态极妍 | 应用之美,在于药到病除
地址:http://jackxiang.com/post/5427/
版权所有。转载时必须以链接形式注明作者和原始出处及本声明!


最后编辑: jackxiang 编辑于2019-4-26 14:38
评论列表
发表评论

昵称

网址

电邮

打开HTML 打开UBB 打开表情 隐藏 记住我 [登入] [注册]