Итак, вы использовали определенную команду, но уже не можете вспомнить ее точное название?
Вы можете использовать сочетание клавиш ctrl+r в терминале и выполнить обратный поиск по истории оболочки.
Это могло бы сработать, если бы вы использовали команду в той же системе. Но что, если вы использовали его в какой-то другой системе Linux или просто наткнулись на какой-то форум или веб-сайт?
Хорошо, что есть специальная команда Linux, которая позволяет выполнять поиск по строке среди доступных команд в вашей системе.
Команда apropos позволяет вам искать ключевое слово в имени и описании справочной страницы.
Во многих случаях этого должно быть достаточно, чтобы помочь вам найти нужную команду.
Использовать команду apropos просто:
apropos [options] keyword
Вот пример. Допустим, вы ищете команду, которая как-то связана с процессором. Вы можете использовать команду apropos с ключевым словом CPU:
apropos cpu
И он дает вам все команды, в названии которых есть CPU или в кратком описании его справочной страницы.
root@destroyers:~# 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:
root@destroyers:~# 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 вернет все записи, соответствующие хотя бы одному из заданных ключевых слов.
Как вы можете видеть в приведенном ниже примере, есть 307 записей, соответствующих либо network, либо pro.
root@destroyers:~# apropos network pro | wc -l 307
Если искомый термин содержит более одного слова, вы можете использовать кавычки вокруг них для поиска всех ключевых слов с пробелами.
root@destroyers:~# apropos "network pro" mtr-packet (8) - send and receive network probes
В приведенном выше примере требуется, чтобы все ключевые слова были вместе. Вы можете использовать опцию -a и показать записи, соответствующие всем ключевым словам в любом порядке.
root@destroyers:~# 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, он показывал результаты из всех разделов. Обратите внимание на номер после каждой «команды».
root@destroyers:~# 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
Вы можете уточнить поиск и список записей только из определенных разделов:
root@destroyers:~# 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 является одной из них, и на удивление мало кто о ней знает.
Надеюсь, вы узнали что-то новое из этой статьи. Оставайтесь с нами, чтобы узнать больше.