从“人”开始:几个问题

从“人”开始:几个问题

我和男人之间有问题:

  1. 如何显示手册页的各个部分?如何找出手册页提供了哪些部分?根据是man man -S我需要获取手册页可用“部分”列表的参数。但是,如果我尝试显示gitlspwdwith 的可用部分:man -S git。我希望有一个列表,但我得到的只是:您想要什么手册页?

  2. 我还有第二个问题:如何显示手册页的简短版本/预览?解决这个问题也是我的任务。我找不到听起来像我想做的事情的参数。

PS:我在 MacOS Sierra 上使用 shell

答案1

简单的答案:

手册页没有包含部分;部分包含手册页。

这是指您正在谈论的编号部分。可以有两个同名的手册页,但位于两个不同(编号)的部分,例如,printf.手册printf(1)页涵盖了命令行工具。手册printf(3)页涵盖了 C 函数调用。

您可以通过运行以下命令按顺序查看两个手册页:

man -a printf

当你退出第一个时,你就会看到第二个。

您可以通过运行以下命令来查看它出现在哪些部分,而无需打开其中任何一个部分:

man -aw printf

除了编号部分之外其中手册页存在,各个手册页也被划分视觉上具有单独的标题和子标题,例如“名称”、“概要”、“说明”等。

这些都是称为“节”,但“节”一词的用法与上述编号的节明显不同。

答案2

过去,在线手册(“在线”与“印刷”相对)曾经有八个部分,但后来添加了更多内容。这些部分是 1, 2, ..., 8,因此您可以输入类似的内容

man -S 4 xyz

获取第 4 节中 xyz 的手册页。

实际上,只有当多个部分中有相同关键字的手册页时,指定一个部分才重要。

例如:

man printf

产量

PRINTF(1)                                                         User Commands

NAME
       printf - format and print data

SYNOPSIS
       printf FORMAT [ARGUMENT]...
       printf OPTION

DESCRIPTION
       Print ARGUMENT(s) according to FORMAT, or execute according to OPTION
...

尽管

man -S 3 printf

产量

PRINTF(3)                                                   Linux Programmer's Manual

NAME
       printf, fprintf, dprintf, sprintf, snprintf, vprintf, vfprintf, vdprintf, vsprintf, vsnprintf - formatted output conversion

SYNOPSIS
       #include <stdio.h>

       int printf(const char *format, ...);
       int fprintf(FILE *stream, const char *format, ...);
       int dprintf(int fd, const char *format, ...);
       int sprintf(char *str, const char *format, ...);
       int snprintf(char *str, size_t size, const char *format, ...);
...

尝试man -S x intro使用x= 1,2,3,... 来获取各个部分的介绍。

有时你会发现类似这样的陈述:...fork(2)用于创建新流程;这之后通常是execl(3)...这表明 的手册页fork位于第 2 部分,而 的手册页execl位于第 3 部分。

如何显示手册页的简短版本/预览?

我不确定你的意思是什么。man不提供类似Get-HelpPowerShell 中的功能。whatis给你一个非常简短的描述,比如

whatis man
man                  (1)  - format and display the on-line manual pages
man                  (1p)  - display system documentation
man                  (7)  - macros to format man pages
man []               (1)  - format and display the on-line manual pages
man []               (1p)  - display system documentation
man []               (7)  - macros to format man pages
man []               (7)  - pages - conventions for writing Linux man pages
man-pages            (7)  - conventions for writing Linux man pages
man.conf []          (5)  - configuration data for man
man.conf [man]       (5)  - configuration data for man

答案3

-S 参数不执行您想要的操作。它用于指定您要查看哪些类别的手册页。

我不知道是否有一种自动显示手册页各部分的方法。我会使用 grep/sed/awk 等工具来解析手册页并提取我感兴趣的文本,即:

man ls|grep -v -e '^$' -e '^[[:space:]]'

上面的代码不是完整的解决方案。其一,它还打印手册页的页眉和页脚。我相信您可以对其进行修改以完全满足您的要求,或者提出更好的实现;)

同样,获取手册页“预览”的请求可以通过以下方式轻松完成管道输出人变成另一种工具。我会推荐为了那个任务。

答案4

[1.]

我希望有一个列表,但我得到的只是:您想要什么手册页?

-S不用于显示部分列表,而是要求您传递部分列表您想要的部分搜索顺序。例如

xb@dnxb:/tmp$ man -S=7,6,5,4,3,2 ls
No manual entry for ls
See 'man 7 undocumented' for help when manual pages are not available.
xb@dnxb:/tmp$ 

上图-S=7,6,5,4,3,2显示了该列表中从左到右的部分搜索顺序。如果手册ls包含第7节,它会显示它。如果没有,它将尝试搜索第 6 节,依此类推。如果此列表末尾不存在任何部分,则会显示“No Manual Entry for ls”即使第 1 节存在。但这是有效的,因为列表中的第 1 部分:

xb@dnxb:/tmp$ man -S=7,6,5,4,3,2,1 ls
xb@dnxb:/tmp$ 

尝试一下这两个来证明 的搜索顺序-S是从左到右:

xb@dnxb:/tmp$ man -S 1,1posix ls
xb@dnxb:/tmp$ man -S 1posix,1 ls
xb@dnxb:/tmp$ 

您也可以简单地传递确切的部分,而无需-S

xb@dnxb:/tmp$ man 5 ls
No manual entry for ls in section 5
See 'man 7 undocumented' for help when manual pages are not available.
xb@dnxb:/tmp$ man 1posix ls
xb@dnxb:/tmp$

默认的排序可以在这里找到(这个文件路径在 中描述man man),搜索顺序从左到右:

xb@dnxb:/tmp$ \grep SECTION /etc/manpath.config
# the default is 1, n, l, 8, 3, 0, 2, 5, 4, 9, 6, 7. Multiple SECTION
SECTION         1 n l 8 3 2 3posix 3pm 3perl 5 4 9 6 7
xb@dnxb:/tmp$ 

如何显示手册页的各个部分?如何找出手册页提供了哪些部分?

使用apropos [-e]whatis、 或man -k

xb@dnxb:/tmp$ apropos statvfs #OR man -k statvfs
fstatvfs (2)         - get filesystem statistics
fstatvfs (3)         - get filesystem statistics
fstatvfs (3posix)    - get file system information
statvfs (2)          - get filesystem statistics
statvfs (3)          - get filesystem statistics
statvfs (3posix)     - get file system information
statvfs.h (7posix)   - VFS File System information structure
sys_statvfs.h (7posix) - VFS File System information structure
xb@dnxb:/tmp$ apropos -e statvfs #OR whatis statvfs
statvfs (2)          - get filesystem statistics
statvfs (3)          - get filesystem statistics
statvfs (3posix)     - get file system information
xb@dnxb:/tmp$ 

[2.]

如何显示手册页的简短版本/预览?

我总是习惯--help查看手册的简短版本(免责声明:不完全等同),例如:

xb@dnxb:/tmp$ mplayer --help
Usage:   mplayer [options] [url|path/]filename

Basic options: (complete list in the man page)
 -vo <drv>        select video output driver ('-vo help' for a list)
 -ao <drv>        select audio output driver ('-ao help' for a list)
 vcd://<trackno>  play (S)VCD (Super Video CD) track (raw device, no mount)
 dvd://<titleno>  play DVD title from device instead of plain file
 -alang/-slang    select DVD audio/subtitle language (by 2-char country code)
 -ss <position>   seek to given (seconds or hh:mm:ss) position
 -nosound         do not play sound
 -fs              fullscreen playback (or -vm, -zoom, details in the man page)
 -x <x> -y <y>    set display resolution (for use with -vm or -zoom)
 -sub <file>      specify subtitle file to use (also see -subfps, -subdelay)
 -playlist <file> specify playlist file
 -vid x -aid y    select video (x) and audio (y) stream to play
 -fps x -srate y  change video (x fps) and audio (y Hz) rate
 -pp <quality>    enable postprocessing filter (details in the man page)
 -framedrop       enable frame dropping (for slow machines)

Basic keys: (complete list in the man page, also check input.conf)
 <-  or  ->       seek backward/forward 10 seconds
 down or up       seek backward/forward  1 minute
 pgdown or pgup   seek backward/forward 10 minutes
 < or >           step backward/forward in playlist
 p or SPACE       pause movie (press any key to continue)
 q or ESC         stop playing and quit program
 + or -           adjust audio delay by +/- 0.1 second
 o                cycle OSD mode:  none / seekbar / seekbar + timer
 * or /           increase or decrease PCM volume
 x or z           adjust subtitle delay by +/- 0.1 second
 r or t           adjust subtitle position up/down, also see -vf expand

 * * * SEE THE MAN PAGE FOR DETAILS, FURTHER (ADVANCED) OPTIONS AND KEYS * * *

MPlayer 1.3.0 (Debian), built with gcc-5.4.0 (C) 2000-2016 MPlayer Team
xb@dnxb:/tmp$ 

相关内容