myfreax

使用apropos搜索可用的Linux命令

如果你使用了某个命令但不记得它的确切名称,您可以在终端中使用ctrl+r键盘快捷键并通过shell的历史进行反向搜索

3 min read
By myfreax
使用apropos搜索可用的Linux命令
使用apropos搜索可用的Linux命令

如果你使用了某个命令但不记得它的确切名称,您可以在终端中使用ctrl+r键盘快捷键并通过shell的历史进行反向搜索。

如果您在同一系统上使用该命令,这可能会起作用。但是,如果您在其他Linux系统上使用过它,或者只是在某个论坛或网站上遇到过它怎么办?

这里的好处是有一个专用的Linux命令,可让您在系统上的可用命令中使用字符串进行搜索。

apropos命令允许您在手册页的名称和描述中搜索关键字在许多情况下,这应该足以帮助您找到您正在寻找的命令。

使用apropos命令很简单,这是apropos命令的语法形式apropos [options] keyword

这是一个例子。假设您正在寻找与CPU相关的命令。您将可使用apropos命令搜索CPU关键字的命令。

apropos cpu
root@myfreax.com:~# apropos cpu
chcpu (8)            - configure CPUs
......
taskset (1)          - set or retrieve a process's CPU affinity

它为您提供了名称中或手册页简短描述中包含CPU的所有命令。

默认情况下,搜索不区分大小写,关键字可以是正则表达式。这就是为什么您会看到很多匹配项,例如 CPU、CPUID 等。如果您想要完全匹配,您可以使用选项-e

root@myfreax.com:~# 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 network pro | wc -l的输出,有307个条目与network或pro匹配。

如果您的搜索词包含多个单词,您可以在它们周围使用引号来搜索带有空格的整个关键字。您可以使用该-a选项并让条目以任何顺序匹配所有关键字。

root@myfreax.com:~# apropos "network pro"
mtr-packet (8)       - send and receive network probes
#apropos -a network pro

仅搜索用户或系统命令

root@learnubuntu:~# apropos cpu
chcpu (8)            - configure CPUs
cpuid (4)            - x86 CPUID access device
cpuset (7)           - confine processes to processor and memory node subsets
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命令返回一个巨大的输出,而且不是所有的都是命令。这是因为它在整个手册页中进行搜索。

如果您熟悉手册页,您就会知道第1节有用户命令,第8节有系统命令。因此,当您搜索CPU时,它会显示所有部分的结果。注意每个命令后面的数字。

您只能从特定部分细化搜索和列表条目,你还可以使用grep命令再次过滤结果的输出。

有一些方法可以在 Linux 命令行中获得帮助。apropos命令就是其中之一,令人惊讶的是,没有多少人知道它。

Related Articles