所以你使用了某个命令但不记得它的确切名称了?
您可以在终端中使用 ctrl+r 键盘快捷键并反向搜索 shell 历史记录。
如果您在同一系统上使用该命令,这可能会起作用。 但是,如果您在其他 Linux 系统上使用过它,或者只是在某个论坛或网站上遇到过它怎么办?
这里的好处是有一个专用的 Linux 命令,可让您在系统上的可用命令中使用字符串进行搜索。
用 apropos 搜索 Linux 命令
apropos 命令可以让你 在手册页名称和描述中搜索关键字。
在许多情况下,这应该足以帮助您找到您正在寻找的命令。
使用 apropos 命令很简单:
apropos [options] keyword
这是一个 example. 假设您正在寻找与 CPU 相关的命令。 您使用 apropos
命令与 CPU
关键词:
apropos cpu
它为您提供了名称中或手册页简短描述中包含 CPU 的所有命令。
[email protected]:~# 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
默认情况下,搜索不区分大小写,关键字可以是正则表达式。 这就是为什么您会看到很多匹配项,例如 CPU、CPUID 等。
如果您想要完全匹配,您可以使用该选项 -e
:
[email protected]:~# 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 将返回与至少一个给定关键字匹配的所有条目。
正如您在下面看到的 example,有 307 个条目匹配 network 或 pro。
[email protected]:~# apropos network pro | wc -l
307
如果您的搜索词包含多个单词,您可以在它们周围使用引号来搜索带有空格的整个关键字。
[email protected]:~# apropos "network pro"
mtr-packet (8) - send and receive network probes
以上 example 要求您将所有关键字放在一起。 您可以使用 -a
选项并具有以任何顺序匹配所有关键字的条目。
[email protected]:~# apropos -a network pro
ip-netns (8) - process network namespace management
mtr-packet (8) - send and receive network probes
仅搜索用户或系统命令
您经常会发现 apropos 命令返回一个巨大的输出,并且并非所有这些都是命令。
这是因为它在整个手册页的所有部分中进行搜索。
如果您熟悉手册页,您就会知道第 1 节有用户命令,第 8 节有系统命令。 这是一个快速回忆:
部分 | 描述 |
---|---|
1 | 用户命令 |
2 | 系统调用 |
3 | C 库函数 |
4 | 设备和特殊文件 |
5 | 文件格式和约定 |
6 | 游戏等 |
7 | 杂项 |
8 | 系统管理工具和守护进程 |
因此,当您搜索 CPU 时,它会显示所有部分的结果。 注意每个“命令”后面的数字。
[email protected]:~# 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
您只能从特定部分细化搜索和列表条目:
[email protected]:~# apropos -s 1,8 cpu
chcpu (8) - configure CPUs
lscpu (1) - display information about the CPU architecture
taskset (1) - set or retrieve a process's CPU affinity
有一些方法可以在 Linux 命令行中获得帮助。 apropos 命令就是其中之一,令人惊讶的是没有多少人知道它。
我希望你从这篇文章中学到了一些新东西。 请继续关注更多。