найти все команды с wh, найти по части ключевого слова на странице руководства

найти все команды с wh, найти по части ключевого слова на странице руководства

Я хочу найти все страницы руководства для команд, начинающихся с wh. Но я не понимаю, почему следующее ключевое слово не работает.

  man -f "wh"

Также, если я поставлю

  man chmod

на странице руководства chmodесть слово "символический", поэтому я ставлю

  man -f "symbolic"

но chmodкоманда не отображается в результатах.

Короче говоря, как мне найти/искать команды или описание команды по содержимому внутри слова? Я знаю, как найти определенные слова после того, как я получу страницу руководства, используя /символ, но я хочу найти все страницы руководства с искомым словом.

решение1

Вы можете использовать -kпереключатель, чтобы найти все страницы руководства, которые содержат whв своем имени или кратком описании. Затем просто выполните grep для тех, которые начинаются с wh. Команда aproposэквивалентна man -k.

Пример

$ man -k wh | grep "^wh"
what (1p)            - identify SCCS files (DEVELOPMENT)
whatis (1)           - display manual page descriptions
whereis (1)          - locate the binary, source, and manual page files for a command
which (1)            - shows the full path of (shell) commands.
while (n)            - Execute script repeatedly as long as a condition is met
whiptail (1)         - display dialog boxes from shell scripts
whirlwindwarp (6x)   - crazy moving stars
whline (3x)          - create curses borders, horizontal and vertical lines
whline_set (3x)      - create curses borders or lines using complex characters and renditions
who (1)              - show who is logged on
who (1p)             - display who is on the system
whoami (1)           - print effective userid
whois (1)            - client for the whois service

Поиск по страницам руководства

Если вы настроены на поиск по страницам руководства, используя полнотекстовый поиск, вы можете использовать переключатель -K. Это заглавная буква K.

Пример

$ man -w -K symbolic | head -10
/usr/local/share/man/man1/mimeopen.1
/usr/local/share/man/man1/mimetype.1
/usr/local/share/man/man1/ptksh.1
/usr/share/man/man1/as.1.gz
/usr/share/man/man1/atop.1.gz
/usr/share/man/man1/atopsar.1.gz
/usr/share/man/man1/attr.1.gz
/usr/share/man/man1/autoreconf.1.gz
/usr/share/man/man1/bakefilize.1.gz
/usr/share/man/man1/bash.1.gz

Этот метод не дает вам ни имени страницы руководства, ни краткого описания. Он показывает только фактическое имя файла, в котором хранится страница руководства, которое обычно является именем команды.

решение2

man -f wh(синоним whatis) отображает краткое (однострочное) описание команды wh. Флаг -fуказывает manотображать только первую строку, а не всю страницу. Это не то, что вам нужно.

Команда apropos wh(синоним man -k wh) выводит список страниц руководства, краткое описание которых содержит строку wh. Если вы хотите объединить поиск в кратком описании с шаблоном в имени команды, вы можете отфильтровать результаты с aproposпомощью grep. Чтобы ограничиться пользовательскими командами (т. е. разделом 1) и не отображать команды администратора, функции библиотеки C и т. д., передайте -S 1. Если вам нужны как пользовательские, так и административные команды, передайте -S 1:8.

apropos symbolic | grep '^wh'

Для поиска по целым страницам man с помощью mandb (наиболее распространенная manреализация в Linux) используйте -K(заглавные K, а не строчные kдля apropos). Это может занять очень много времени, если у вас установлено много страниц man; рассмотрите возможность передачи параметра, --regexчтобы ограничить поиск страницами man, однострочное описание которых соответствует регулярному выражению.

man -K -S 1:8 --regex 'change.*file' symbolic

решение3

man -k '^symbolic$'

Это выведет название приложения и номер страницы, на которой находится слово symbolic. Избавьтесь от $, если хотите что-то, что начинается с symbolic.

Связанный контент