玩Linux的朋友有没有这种体会,就是Linux非常棒,但是就是命令多,记不住,有时候碰到不会的命令还得百度或者谷歌,极大的影响了工作效率。
有没有一种办法,能够在记不住某个命令或者记不全某个命令的时候不用上网查或者翻手册就能找到这个命令?
答案是:当然有!
下面就给大家介绍一下对于记性不太好的朋友的福音命令:apropos
apropos基本介绍
apropos在所有手册页中搜索带有在命令行中传递给它的关键字的命令,这些关键字可以是命令名称的一部分或与其功能描述相关,当不带参数使用时,apropos命令的功能与man -k命令完全相同。
apropos语法
apropos keywords
比如想看下跟cpu相关命令的有哪些:
apropos cpu
apropos参数
apropos有以下参数:
我们分别来解释一下:
- -d:打印调试信息
- -v:打印详细的警告消息
- -r:正则表达式
- -w:通配符
- -e:精确匹配关键词
- -a:显示与所有提供的关键字匹配的命令
- -l:在输出中生成完整的行
- -s:仅搜索给定的man部分
- -m:访问其他操作系统的man
- -M:指定man路径
- -L:本地环境变量
- -C:使用自定义配置文件
- -h:打印帮助信息并退出
- -V:显示版本信息
下面我们结合例子介绍几个比较重要的参数!
案例
查看find相关的命令有哪些?
apropos find
输出:
我们可以很清晰的看到跟find相关的命令有这么多,并且命令后面还有一些简单的解释。
这个时候我想精确的查找find命令怎么办?
那当然用-e参数了:
apropos find
这样列举出来的都是跟find相关的命令,是不是很简单?
多个命令
上面的例子是针对的是单个命令,那么如果遇到多个命令怎么办?
举个例子:
apropos find which
这个时候将显示至少一个匹配的关键词的所有命令。
再观察一下下面的命令:
apropos 'network add'
apropos后面跟着引号,引号内关键词用空格间隔,会列举出与之匹配的命令,假如不匹配就无法查出任何命令:
apropos 'network tool'
刚刚说了apropos find which命令会将包含find或者which所有的命令都会列举出来,假如我们只想列举与它们都相关的命令,应该怎么输入呢?
加个-a参数,只是它们没有交集:
还是上面的apropos 'network tool',这个时候我们加上-a的参数:
apropos -a network tool
不知道大家有没有注意到一个现象,就是通过apropos命令匹配到的命令,假如描述文字太长的话就会被省略,比如:
apropos which
git-sparse-checkout (1)这项描述太长,末尾被省略了,但是此时我们想要看全一点的描述怎么办?
加上-l参数即可!
即:
apropos -l which
总结
apropos命令对于经常使用Linux的工程师简直就是福音,大家在记忆模糊的情况下,这条命令可以很快的帮助你找到你想要的命令。希望大家可以好好练习一下,有了这个神器,真的会方便好多!