我和男人之间有问题:
如何显示手册页的各个部分?如何找出手册页提供了哪些部分?根据是
man man
-S
我需要获取手册页可用“部分”列表的参数。但是,如果我尝试显示git
、ls
或pwd
with 的可用部分:man -S git
。我希望有一个列表,但我得到的只是:您想要什么手册页?我还有第二个问题:如何显示手册页的简短版本/预览?解决这个问题也是我的任务。我找不到听起来像我想做的事情的参数。
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-Help
PowerShell 中的功能。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
答案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$