如果你使用了某个命令但不记得它的确切名称,您可以在终端中使用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命令的存在。