有没有一种简单的方法可以快速查看手册页的简要摘要:仅是说明或简介?我没有看到执行此操作的选项/标志,是否有其他工具可以为您执行此操作?
答案1
这浓缩摘要OP提到的可能是姓名部分,这是经过特殊处理的mandb
或makewhatis
(准备数据whatis
和apropos
。
按照惯例,这是这些工具中的一行(尽管由于实际联机帮助页的长度,它可能会被换行)。另外(仍然是惯例),主题(左侧)和简短描述之间有一个破折号。
进一步阅读(Linux):
- Linux 手册页
man(1)
使用此数据有多个有用的选项:
man -k
打印函数
搜索关键字的简短描述和手册页名称打印函数作为正则表达式。打印出所有匹配项。相当于apropos printf
。
man -f
邮件
查找 引用的手册页smail
并打印出找到的任何内容的简短描述。相当于whatis smail
。
该apropos
列表提供了更多结果,因为它显示了简短描述中该行的任何部分的匹配项。例如,apropos printf
可能会显示
asprintf (3) - print to allocated string
dprintf (3) - print to a file descriptor
fprintf (3) - formatted output conversion
fwprintf (3) - formatted wide-character output conversion
printf (1) - format and print data
printf (3) - formatted output conversion
snprintf (3) - formatted output conversion
sprintf (3) - formatted output conversion
swprintf (3) - formatted wide-character output conversion
vasprintf (3) - print to allocated string
vdprintf (3) - print to a file descriptor
vfprintf (3) - formatted output conversion
vfwprintf (3) - formatted wide-character output conversion
vprintf (3) - formatted output conversion
vsnprintf (3) - formatted output conversion
vsprintf (3) - formatted output conversion
vswprintf (3) - formatted wide-character output conversion
vwprintf (3) - formatted wide-character output conversion
wprintf (3) - formatted wide-character output conversion
XtAsprintf (3) - memory management functions
但whatis
查找具有给定主题名称的页面:
printf (1) - format and print data
printf (3) - formatted output conversion
- Linux 手册页
man-pages(7)
描述了结构。
其他系统可能有所不同:
- OSX 手册页
man(1)
,选项-k
相当于apropos
。反过来,apropos
描述说“apropos 搜索一组数据库文件,其中包含关键字关键字单词的系统命令的简短描述,并将结果显示在标准输出上。”,而其姓名部分说“apropos - 在 Whatis 数据库中搜索字符串”。 - OSX 手册页
manpages(5)
给出了联机帮助页的结构。
虽然每种情况下的程序都可以具有与和man
相对应的选项,但单独的程序在各种类 Unix 系统中更常用。apropos
whatis
有趣的是,POSIX 只有man
(和-k
选项),与 不匹配whatis
。理由中指出
这
-f
考虑过该选项,但由于实现差异,它没有包含在 POSIX.1-2008 的本卷中。
此外,POSIX 不使用该术语恰到好处,但描述了它。同样,POSIX 并不(至少在该部分中)尝试描述各个联机帮助页的结构,也不尝试将它们组织成各个部分。这些是依赖于系统的功能。
答案2
这几个函数显示小节并提取特定小节,我确信它们可以改进:
使用:
mansubs <命令>
manedit <命令> <小节>
mansubs() {
man "$1" |col -bx|awk '/^[A-Z ]+$/ {print}'
}
manedit() {
man "$1" |col -bx|awk -v S="$2" '$0 ~ S {cap="true"; print} $0 !~ S && /^[A-Z ]+$/ {cap="false"} $0 !~ S && !/^[A-Z ]+$/ {if(cap == "true")print}'
}
例如:
$ mansubs grep
NAME
SYNOPSIS
DESCRIPTION
OPTIONS
REGULAR EXPRESSIONS
ENVIRONMENT VARIABLES
EXIT STATUS
COPYRIGHT
BUGS
SEE ALSO
NOTES
$ manedit grep SYNOPSIS
SYNOPSIS
grep [OPTIONS] PATTERN [FILE...]
grep [OPTIONS] [-e PATTERN | -f FILE] [FILE...]
答案3
取决于你所说的“描述”的意思,man
有一个选项:
-f, --whatis
Equivalent to whatis. Display a short description from the man‐
ual page, if available. See whatis(1) for details.
所以:
$ man -f man
man (7) - macros to format man pages
man (1) - an interface to the on-line reference manuals
man (1p) - display system documentation
$ whatis man
man (7) - macros to format man pages
man (1) - an interface to the on-line reference manuals
man (1p) - display system documentation
答案4
如果您指的是进入命令行开关之前手册页的描述部分
man <command> | col -b > /tmp/randomtempfile
然后使用grep
andsed
您可以从 中提取所需的信息randomtempfile
。据我所知,man 没有显示摘要页面的选项。