我想查找以 . 开头的命令的所有手册页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
with的结果grep
。要限制为用户命令(即第 1 部分)并且不显示管理员命令、C 库函数等,请传递-S 1
.如果您同时需要用户命令和管理员命令,请传递-S 1:8
。
apropos symbolic | grep '^wh'
man
要使用 mandb( Linux 上最常见的实现)搜索整个手册页,请使用-K
(大写K
,而不是小写k
)apropos
。如果您安装了很多手册页,这可能需要很长时间;考虑传递--regex
选项以将搜索限制为单行描述与正则表达式匹配的手册页。
man -K -S 1:8 --regex 'change.*file' symbolic
答案3
man -k '^symbolic$'
这将列出应用程序名称以及符号一词所在的页码。如果您想要任何以符号开头的内容,请去掉 $。