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

Linux下如何获取帮助 - man、info等命令

2016-07-27 22:18 701 查看
总体来说我们可以通过如下方法获取到命令帮助whatiscommand
--helpman and
info本地帮助文档/usr/share/doc/ 官网在线文档其它网站和搜索 在获取帮助时,内部命令和外部命令获得帮助的方法也不同内部命令通过如下方法获得帮助:#help
COMMAND#man bash只有内部命令能够使用 help 命令名 的方式得到帮助
外部命令通过如下方法获得帮助:(1) #
COMMAND --help # COMMAND -h (2) 使用手册(manual) # man COMMAND (3) 信息页 # info COMMAND (4) 程序自身的帮助文档 README INSTALL ChangeLog (5) 程序官方文档 官方站点:Documentation (6) 发行版的官方文档 (7) Google
其他获取帮助的渠道:红帽知识库和官方在线文档。http://kbase.redhat.com http://www.redhat.com/docs http://access.redhat.com
或者通过一些搜索的方式。 http://tldp.org http://www.slideshare.net http://www.google.com

此处重点描述通过man命令获取帮助的一些方法。 当使用man帮助查找的命令或者文件重名时,我们可以使用whatis命令查看对应命令的帮助章节。这样说可能不太容易理解,我们看一下具体的情况。例如:centos中存在/etc/passwd这个文件,同时存在passwd这个命令,它们的关键字都叫passwd,所以我们使用man passwd查看passwd的帮助的时候,系统怎么判断我们是要查看/etc/passwd这个文件的帮助内容,还是要查看passwd这个命令的帮助内容呢?如果我们不告诉系统,系统是没有办法判断的,系统会默认返回一个帮助,这个帮助可能恰巧不是我们需要的,所以我们要明确告诉系统,我们要查看的帮助是/etc/passwd文件的,还是passwd命令的,但是问题来了,我们也不知道怎么区分这两个passwd,这个时候,就会用到man章节的概念,使用whatis命令查看对应命令的man帮助信息,确定对应命令的man章节号。 具体步骤如下
[root@cos68 ~]# whatis passwd
passwd               (1)  - update user's authentication tokens
passwd               (5)  - password file
passwd
[sslpasswd]   (1ssl)  - compute password hashes

使用whatis passwd命令,从返回结果可以查到,/etc/passwd这个文件对应的帮助章节号为第5章,passwd命令的帮助章节号为第1章,所以,如果我们要查看/etc/passwd这个文件的帮助时,可以使用如下命令查询:man 5
passwd注:使用makewhatis命令(centos6)或者mandb(centos7)命令生成相应的信息数据库 而如果我们不加章节号,直接使用man passwd查询,系统会默认返回passwd命令的帮助,所以,当我们需要查询/etc/passwd这个文件的相关帮助的时候,返回的结果就不是我们想要的。
当我们使用man命令得到帮助信息时,有没有想过这些信息存放在什么位置,存放在哪些文件中呢?man的帮助信息文件实际存放在/usr/share/man目录下。 可以看到/usr/share/man目录下有很多以man开头以数字结尾的目录,man后面的数字就代表了man的章节,man章节的概念前面已经提到过,man章节区分了帮助信息的类型,不同的帮助信息存放在不同的章节中,具体区分如下:1: 用户命令2: 系统调用3: C库调用4: 设备文件及特殊文件5: 配置文件格式6: 游戏7: 杂项8: 管理类的命令9:Linux 内核API 对应上面的描述,我们可以知道:/usr/share/man/man5目录中存放了配置文件格式的相关帮助/usr/share/man/man1目录中存放了用户命令的相关帮助这再一次印证了whatis passwd命令查询出的信息
[root@cos68 ~]# whatis passwd
passwd               (1)  - update user's authentication tokens
passwd               (5)  - password file
passwd
[sslpasswd]   (1ssl)  - compute password hashes

而每个man#目录下又有很多压缩文件,这些压缩文件就是对应命令的帮助内容文档。 比如,我们使用whereis命令查看ls命令的相关文件的位置[root@cos68 man]#
whereis lsls: /bin/ls
/usr/share/man/man1p/ls.1p.gz /usr/share/man/man1/ls.1.gz可以看到,ls命令对应的man帮助文件的实际位置就是/usr/share/man/man1/ls.1.gz当我们使用man ls查看ls的帮助的时候,就是查看/usr/share/man/man1/ls.1.gz这个文件中的内容
man的配置文件centos6中 我们可以查看man的配置文件[root@cos68 man]#
cat /etc/man.config 可以看到如下配置,MANPATH配置了man帮助文件的路径,也就是说man命令从如下目录中查找命令的帮助文件。MANPATH /usr/manMANPATH
/usr/share/manMANPATH
/usr/local/manMANPATH
/usr/local/share/manMANPATH
/usr/X11R6/man

如下配置代表各种帮助文件通过哪些命令进行解压缩。.gz /usr/bin/gunzip -c.bz2 /usr/bin/bzip2 -c -d.lzma /usr/bin/unlzma -c -d.z.Z /bin/zcat.F.Y

centos7中,man的配置文件名有所变化。
[root@cos72 ~]# cat /etc/man_db.conf

MANDATORY_MANPATH /usr/manMANDATORY_MANPATH /usr/share/manMANDATORY_MANPATH /usr/local/share/man可以看到如下配置,MANDATORY_MANPATH配置了man帮助文件的路径,也就是说man命令从如下目录中查找命令对应的帮助文件。

man命令的常用参数man -f cmd 显示命令的章节信息,相当于whatis命令。
man -k keyword 在帮助中搜索关键字,并显示出所有包含此关键字的帮助的章节信息,这个命令非常有用,我们经常会遇到一种情况,比如,我们想改用户口令,但是我又不知道哪个命令可以修改用户的口令,这个时候,我们猜测,既然是改口令,那么肯定跟password有关,于是,我们就输入man -k password,这个时候,我们就会得到很多提示,这些提示中都包含password关键字,而且这些提示都有对应的章节,从这些提示中,我们往往能够找到解决问题的方法。 如果通过man获取到的信息不是那么详细,我们还可以尝试使用info命令获取相关帮助。info帮助的信息排版类似网页,里面还有链接可以跳转到不同的具体描述信息页面。info
页面的结构就像一个网站,每一页中包含“节点”,“节点”以链接的形式存在,链接节点之前 会有*符号,*号开头的行证明此行文字是一个链接,光标移动到此行,按回车键可以进入对应的链接节点。 例如:我们使用info ls 命令获取ls命令的相关帮助信息,进入info页面以后看到一些信息,向下翻页,可以看到一些类似如下以星号开头的文字* Which files are
listed::* What information
is listed::* Sorting the
output::* Details about
version sort::* General output
formatting::* Formatting file
timestamps::* Formatting the
file names::这些都是节点链接,我们可以将光标移动到星号开头的一行,然后按回车键,即可进入到对应的节点查看具体的信息。 info的一些常用操作方向键, PgUp, PgDn 可以翻页Tab键 移动到下一个链接d 显示主题目录Home 显示主题首部Enter进入 选定链接n/p/u/l
进入下/前/上一层/最后一个链接s 文字 文本搜索q 退出 info
除了通过man或者info查看相关帮助,我们还可以到/usr/share/doc目录中查找对应程序或者命令的相关文档/usr/share/doc目录中也会有安装过的软件的相关帮助文档

本文出自 “学思行知” 博客,请务必保留此出处http://zz6547.blog.51cto.com/2571551/1830911
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: