如果你使用了某个命令但不记得它的确切名称,您可以在终端中使用ctrl+r
键盘快捷键并通过Shell的历史进行反向搜索。
如果您在系统使用过此命令,这可能会起作用。但是,如果您在其他Linux系统使用过它,或者只是在某个论坛,网站见过它时该怎么办。
现在有一个专用的Linux命令,可让您在系统使用字符串进行搜索所有可用的Linux命令。
apropos
命令允许您在手册页的名称和描述搜索命令。在许多情况下,这应该足以帮助您找到您正在寻找的命令。
在本教程中,我们将说明如何在Linux使用apropos
命令搜索所有可用的Linux命令。
apropos 命令详解
使用apropos
命令很简单,这是apropos
命令的语法形式apropos [options] keyword
。
[options]
是apropos命令的选项,可选参数。keyword
是你要搜索命令名称或者是正则表达式。
假设您正在搜索与CPU相关的命令。您可使用apropos
命令并使用CPU
关键词进行搜索。
apropos cpu
chcpu (8) - configure CPUs
......
taskset (1) - set or retrieve a process's CPU affinity
apropos命令它为您包含关于CPU所有可用命令的名称和手册页简短描述。默认情况下,搜索不区分大小写,关键词可以是正则表达式。
这就是为什么您会看到很多匹配项,例如CPU、CPUID等。如果您想要完全匹配,您可以使用apropos
命令的-e
选项。
apropos -e cpu
lscpu (1) - display information about the CPU architecture
msr (4) - x86 CPU MSR access device
sched (7) - overview of CPU scheduling
taskset (1) - set or retrieve a process's CPU affinity
多个关键词搜索
如果您提供多个关键字,apropos
命令将返回与至少一个与指定关键字匹配的记录。
如果你需要统计搜索结果的记录,可以将apropos
命令的搜索结果通过管道传递给wc命令。
例如命令apropos network pro | wc -l
搜索network和pro关键词,输出包含307个记录与network或pro匹配。
apropos network pro | wc -l
如果您的搜索词包含空格,可以在关键词周围使用双引号包起来,apropos
命令搜索将会搜索包含空格关键词。
默认情况下,apropos
命令会按关键词出现顺序进行搜索,您可以使用apropos
命令的-a
选项以任何顺序匹配所有关键字。
apropos "network pro"
apropos -a network pro
仅搜索命令
你会经常发现apropos
命令返回大量的搜索结果,而且不是所有的都是命令。这是因为它在整个手册页中进行搜索。
如果您熟悉手册页,您就会知道第1节有用户命令,第8节有系统命令。因此,当您搜索CPU时,它会显示所有的结果,注意每个命令后面的数字。
您只能从apropos
命令的搜索结果的信息细化结果,例如使用grep命令再次过滤结果的输出。
apropos network pro | grep "(1)"
结论
至此,你已经熟悉如何在Linux使用apropos命令。令人惊讶的是,没有多少人知道apropos命令的存在。