查找所有带有 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。如果要将简短描述中的搜索与命令名称上的模式结合起来,可以过滤aproposwith的结果grep。要限制为用户命令(即第 1 部分)并且不显示管理员命令、C 库函数等,请传递-S 1.如果您同时需要用户命令和管理员命令,请传递-S 1:8

apropos symbolic | grep '^wh'

man要使用 mandb( Linux 上最常见的实现)搜索整个手册页,请使用-K(大写K,而不是小写kapropos。如果您安装了很多手册页,这可能需要很长时间;考虑传递--regex选项以将搜索限制为单行描述与正则表达式匹配的手册页。

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

答案3

man -k '^symbolic$'

这将列出应用程序名称以及符号一词所在的页码。如果您想要任何以符号开头的内容,请去掉 $。

相关内容