要想 Linux 命令行玩的溜,还得 apropos!此文运维必看!

玩 Linux 的朋友有没有这种体会,就是 Linux 非常棒,但是就是命令多,记不住,有时候碰到不会的命令还得百度或者谷歌,极大的影响了工作效率。
有没有一种办法,能够在记不住某个命令或者记不全某个命令的时候不用上网查或者翻手册就能找到这个命令?
答案是:当然有!
下面就给大家介绍一下对于记性不太好的朋友的福音命令:apropos
apropos 基本介绍
apropos 在所有手册页中搜索带有在命令行中传递给它的关键字的命令,这些关键字可以是命令名称的一部分或与其功能描述相关,当不带参数使用时,apropos 命令的功能与 man -k 命令完全相同。
apropos 语法
比如想看下跟 cpu 相关命令的有哪些:
apropos 参数
apropos 有以下参数:

我们分别来解释一下:
-d:打印调试信息
-v:打印详细的警告消息
-r:正则表达式
-w:通配符
-e:精确匹配关键词
-a:显示与所有提供的关键字匹配的命令
-l:在输出中生成完整的行
-s:仅搜索给定的 man 部分
-m:访问其他操作系统的 man
-M:指定 man 路径
-L:本地环境变量
-C:使用自定义配置文件
-h:打印帮助信息并退出
-V:显示版本信息
下面我们结合例子介绍几个比较重要的参数!
案例
查看 find 相关的命令有哪些?
输出:

我们可以很清晰的看到跟 find 相关的命令有这么多,并且命令后面还有一些简单的解释。
这个时候我想精确的查找 find 命令怎么办?
那当然用-e
参数了:

这样列举出来的都是跟 find 相关的命令,是不是很简单?
多个命令
上面的例子是针对的是单个命令,那么如果遇到多个命令怎么办?
举个例子:

这个时候将显示至少一个匹配的关键词的所有命令。
再观察一下下面的命令:

apropos 后面跟着引号,引号内关键词用空格间隔,会列举出与之匹配的命令,假如不匹配就无法查出任何命令:

刚刚说了apropos find which
命令会将包含 find 或者 which 所有的命令都会列举出来,假如我们只想列举与它们都相关的命令,应该怎么输入呢?
加个-a
参数,只是它们没有交集:

还是上面的apropos 'network tool'
,这个时候我们加上-a
的参数:

不知道大家有没有注意到一个现象,就是通过 apropos 命令匹配到的命令,假如描述文字太长的话就会被省略,比如:

git-sparse-checkout (1)
这项描述太长,末尾被省略了,但是此时我们想要看全一点的描述怎么办?
加上-l
参数即可!
即:

总结
apropos 命令对于经常使用 Linux 的工程师简直就是福音,大家在记忆模糊的情况下,这条命令可以很快的帮助你找到你想要的命令。希望大家可以好好练习一下,有了这个神器,真的会方便好多!
版权声明: 本文为 InfoQ 作者【wljslmz】的原创文章。
原文链接:【http://xie.infoq.cn/article/e80658c0dc9033a803761ec36】。未经作者许可,禁止转载。
评论