“五分钟学命令系列”之三十三《man命令》

大家在操作一些不太懂的命令时,都会用man来查阅一些命令的帮助信息。但大部分都是使用"man 命令名称"这样简单的格式。其实man还是有不少其他小技巧的。

 

0x01  具体范围定位

man命令后面可以加一个数字参数,表示具体的范围定位:

数字“1”表示用户命令

数字“2”表示系统调用

数字“3”表示C语言库函数

数字“4”表示设备或特殊文件

数字“5”表示文件格式和规则

数字“6”表示游戏及其他

数字“7”表示宏、包及其他杂项

数字“8”表示系统管理员相关的命令

当我们man write命令时,它可能代表了Linux里的用户命令或系统调用,如果我只是想了解write这个系统调用的作用,而对write命令的命令格式没有兴趣,那么我们就可以输入man 2 write来查看关于write系统调用的帮助信息了。

比如你输入man ls,你观察屏幕左上角会发现LS(1)的字样,这就说明这个ls是包含在“用户命令”之中的。

 

0x02  man信息存在哪

$manpath

/usr/local/share/man:/usr/share/man/overrides:/usr/share/man/en:/usr/share/man:/usr/man

用manpath命令就可以看到了,当你man的时候,man会到如上这些路径去寻找对应的帮助信息。如果没有的话,那么man会提示No manual entry for xxx

 

0x03  重新建立man的数据库

使用makewhatis命令就可以

 

0x04  搜索man数据中的关键词

既然有man数据库,我们就可以像搜索引擎那样搜出里面的关键字。

比如我要列出所有包含name字符串的man帮助信息,就可以用下面命令

$man -k name

其实,还有一个命令和man -k是一样的用法,就是apropos。所以我们完全可以用apropos name来代替man -k name。

apropos其实是一个脚本文件,它不是ELF可执行文件。所以你完全可以用vi /usr/bin/apropos看看它到底是如何实现的。

weinxin
聂扬帆博客
一个分享IT运维相关工作经验和实战技巧的个人博客

发表评论

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen:

目前评论:2   其中:访客  2   博主  0

  1. avatar 电动螺旋压力机 1

    您好,您的网站做的很不错,很漂亮,我已经收藏了,方便我随时访问.