man命令详解

本文详细介绍在Linux环境下如何获取命令的帮助信息,包括使用--help、man命令、info命令等多种方法,并深入解析man命令及其章节含义,适合Linux初学者及进阶用户。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

作为Linux系统工程师或者运维工程师,不管什么,只要是使用Linux系统的。一般都不可能将所有命令的选项极其使用方法全部的记下来,当然也没那么大的精力来背!那我们又该怎样正确的使用这些命令呢?肯定是想法获得命令的帮助信息了。那下面将几种可以获得命令帮助的方法给大家列出来。       

如何获得命令帮助:            

1、大多数外部命令都可以使用--help获取帮助;(有些可以使用-h获取帮助)            

2、内部命令可以使用:   #help COMMAND

3、查看命令的手册:       #man COMMAND            

4、查看命令的信息页:   #info COMMAND            

5、命令自身附带的文档:#/usr/share/doc/COMMAND-oversion            

6、RedHat Documentation 红帽官方文档(因为我们学习的是红帽Linux,所以列出这一项。你应该懂的)           

7、Google/Baidu        

上面这些都是我们遇到不懂的命令时可以获得解答的方法。不过对我们来说用man命令是最常用的方法。先扯点题外话,再来简单说下man命令。        

上面我们提到了内部命令和外部命令这两个概念,那什么是内部命令和外部命令?以及如何知道一个命令是内部命令还是外部命令呢?别急,下面就将其告诉大家。           

1、内部命令:当我们登录Linux系统时便处于某个shell中。而隶属于这个已经打开的shell程序的命令就是我们说的内部命令了;

      外部命令:在系统的某个路径一个与命令名称对应的可执行文件的命令。我们可以用wiche +  Command(命令名)查找命令的位置。            

2、我们使用type  +  COMMAND(命令名)可以来区分命令是内部命令或外部命令。 

从上图中我们可以知道cd命令是内部命令,而man命令是外部命令。具体怎么区分看内部命令和外部命令的定义便可知道了。 

上面我们还留了个问题,怎样查找哪儿些章节中有我们需要的信息呢?这就要使用我们的whatis命令了。只要在whatis后面加上命令名,就可以查找到哪儿些章节中有这些信息了!例如我们查找一下cat命令:      

上图是不是显示出来那儿些章节含有其的相关信息了!呵呵        当然,man命令的查找中也许没有你需要的信息。那就需要man的补充命令info命令了,不过都不常用就不再做介绍了。

说了不少题外话,回过来接着说我们的man命令:

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


Linux的man手册共有以下几个章节:

 

代號代表內容
1使用者在shell中可以操作的指令或可执行档
2系統核心可呼叫的函数与工具等
3一些常用的函数(function)与函数库(library),大部分是C的函数库(libc)
4装置档案的说明,通常在/dev下的档案
5设定档或者是某些档案的格式
6游戏(games)
7惯例与协定等,例如Linux档案系统、网络协定、ASCII code等等的說明
8系統管理員可用的管理指令
9跟kernel有关的文件

如:man 5 data


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、Standard commands       (标准命令)
2、System calls            (系统调用)
3、Library functions       (库函数)
4、Special devices         (设备说明)
5、File formats            (文件格式)
6、Games and toys          (游戏和娱乐)
7、Miscellaneous           (杂项)
8、Administrative Commands (管理员命令)
9 其他(Linux特定的), 用来存放内核例行程序的文档。

n 新文档, 可能要移到更适合的领域。
o 老文档, 可能会在一段期限内保留。
l 本地文档, 与本特定系统有关的。


例如:我们输入 man ls,它会在最左上角显示“LS(1)”,在这里,“LS”表示手册名称,而“(1)”表示该手册位于第一节章,同样,我们输入“man ifconfig”它会在最左上角显示“IFCONFIG(8)”。也可以这样输入命令:“man [章节号] 手册名称”。

man是按照手册的章节号的顺序进行搜索的,比如:
man sleep
只会显示sleep命令的手册,如果想查看库函数sleep,就要输入:
man 3 sleep

输入q退出

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


新安装了ubuntu 8.04版本,发现安装过的系统中缺少很多手册页。
用以下命令搞定了
sudo apt-get install manpages
sudo apt-get install manpages-de
sudo apt-get install manpages-de-dev
sudo apt-get install manpages-dev

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值