我使用过的Linux命令之man - 显示在线手册页
我使用过的Linux命令之man - 显示在线手册页
本文链接:http://codingstandards.iteye.com/blog/971078 ? (转载请注明出处)
用途说明man命令是个常用的命令,如果你稍微熟悉Unix/Linux系统的话,它用来显示在线手册页,是获取命令、函数、配置文件等的帮助信息的重要手段,另外一个手段是info命令。manpage就是手册页,它有一定的编写格式,Linux系统在文档方面是做得相当不错的,这给我们使用Linux提供了方便。shell内置命令的手册页,显示的是bash全部内置命令的手册页,可以采用help命令来获取内置命令的帮助信息。
?
常用参数格式:man <cmd>
显示<cmd>命令的手册页。默认情况下,man命令使用less作为显示文档的命令。
?
手册页的操作指令:
按q退出,这个最重要,因为Ctrl+C都没法退出来
按下箭头可以往后一行
按回车或者上箭头可以往前一行
按End键可以翻到最后一页
按Home键可以翻到第一页
按空白键或者PgDn键可以往后翻一页
按PgUp键可以往前翻一页
输入/keyword回车可以搜索keyword
输入?keyword回车可以往前搜索keyword
按n可以往前或往后搜索下一个
?
格式:man -k <cmd>
格式:apropos <cmd>
显示与<cmd>有关的手册页列表。
?
格式:man 1 <cmd>
显示<cmd>命令的手册页。
?
格式:man 2 <syscall>
显示系统调用<syscall>的手册页。
?
格式:man <section> <name>
显示<name>指定章节<section>的手册页,其中<section>包括
1、Standard commands (标准命令)
2、System calls (系统调用)
3、Library functions (库函数)
4、Special devices (设备说明)
5、File formats (文件格式)
6、Games and toys (游戏和娱乐)
7、Miscellaneous (杂项)
8、Administrative Commands (管理员命令)
?
使用示例示例一 显示man的手册页[root@jfht ~]# man man
man(1)????????????????????????????????????????????????????????????????? man(1)
NAME
?????? man - format and display the on-line manual pages
SYNOPSIS
?????? man? [-acdfFhkKtwW] [--path] [-m system] [-p string] [-C config_file] [-M pathlist] [-P pager] [-B browser] [-H
?????? htmlpager] [-S section_list] [section] name ...
DESCRIPTION
?????? man formats and displays the on-line manual pages.? If you specify section, man only looks in that? section? of
?????? the? manual.? name is normally the name of the manual page, which is typically the name of a command, function,
?????? or file.? However, if name contains a slash (/) then man interprets it as a file specification, so that you can
?????? do man ./foo.5 or even man /cd/foo/bar.1.gz.
?????? See below for a description of where man looks for the manual page files.
OPTIONS
?????? -C? config_file
????????????? Specify the configuration file to use; the default is /etc/man.config.? (See man.config(5).)
?????? -M? path
????????????? Specify? the? list? of? directories? to search for man pages.? Separate the directories with colons.? An
????????????? empty list is the same as not specifying -M at all.? See SEARCH PATH FOR MANUAL PAGES.
?????? -P? pager
????????????? Specify which pager to use.? This option overrides the MANPAGER? environment? variable,? which? in? turn
????????????? overrides the PAGER variable.? By default, man uses /usr/bin/less -is.
?????? -B???? Specify? which browser to use on HTML files.? This option overrides the BROWSER environment variable. By
????????????? default, man uses /usr/bin/less-is,
?????? -H???? Specify a command that renders HTML files as text.? This? option? overrides? the? HTMLPAGER? environment
????????????? variable. By default, man uses /bin/cat,
?????? -S? section_list
????????????? List is a colon separated list of manual sections to search.? This option overrides the MANSECT environ-
????????????? ment variable.
?????? -a???? By default, man will exit after displaying the first manual page it finds.? Using this option forces man
:q
[root@jfht ~]#
?
示例二 显示C函数printf的手册页[root@jfht ~]# man printf
PRINTF(1)??????????????????????? User Commands?????????????????????? PRINTF(1)
NAME
?????? printf - format and print data
SYNOPSIS
?????? printf FORMAT [ARGUMENT]...
?????? printf OPTION
DESCRIPTION
?????? Print ARGUMENT(s) according to FORMAT.
?????? --help display this help and exit
?????? --version
????????????? output version information and exit
?????? FORMAT controls the output as in C printf.? Interpreted sequences are:
?????? "???? double quote
?????? \NNN?? character with octal value NNN (1 to 3 digits)
?????? \\???? backslash
?????? \a???? alert (BEL)
?????? \b???? backspace
?????? \c???? produce no further output
?????? \f???? form feed
?????? \n???? new line
?????? \r???? carriage return
?????? \t???? horizontal tab
?????? \v???? vertical tab
:q
注:上面显示的是命令printf的手册页,但不是C函数printf的手册页。
[root@jfht ~]# man 3 printf
PRINTF(3)????????????????? Linux Programmer’s Manual???????????????? PRINTF(3)
NAME
?????? printf, fprintf, sprintf, snprintf, vprintf, vfprintf, vsprintf, vsnprintf - formatted output conversion
SYNOPSIS
?????? #include <stdio.h>
?????? int printf(const char *format, ...);
?????? int fprintf(FILE *stream, const char *format, ...);
?????? int sprintf(char *str, const char *format, ...);
?????? int snprintf(char *str, size_t size, const char *format, ...);
?????? #include <stdarg.h>
?????? int vprintf(const char *format, va_list ap);
?????? int vfprintf(FILE *stream, const char *format, va_list ap);
?????? int vsprintf(char *str, const char *format, va_list ap);
?????? int vsnprintf(char *str, size_t size, const char *format, va_list ap);
DESCRIPTION
?????? The? functions? in? the? printf() family produce output according to a format as described below. The functions
?????? printf() and vprintf() write output to stdout, the standard output stream; fprintf() and vfprintf() write? out-
?????? put to the given output stream; sprintf(), snprintf(), vsprintf() and vsnprintf() write to the character string
?????? str.
?????? The functions vprintf(),? vfprintf(),? vsprintf(),? vsnprintf()? are? equivalent? to? the? functions? printf(),
?????? fprintf(),? sprintf(),? snprintf(), respectively, except that they are called with a va_list instead of a vari-
?????? able number of arguments. These functions do not call the va_end macro. Consequently, the value of ap is? unde-
?????? fined after the call. The application should call va_end(ap) itself afterwards.
?????? These eight functions write the output under the control of a format string that specifies how subsequent argu-
?????? ments (or arguments accessed via the variable-length argument facilities of stdarg(3)) are converted? for? out-
?????? put.
?? Return value
?????? Upon? successful? return,? these? functions return the number of characters printed (not including the trailing
?????? ’\0’ used to end output to strings).? The functions snprintf() and vsnprintf() do? not? write? more? than? size
?????? bytes? (including? the? trailing ’\0’).? If the output was truncated due to this limit then the return value is
?????? the number of characters (not including the trailing ’\0’) which would have been written to the final string if
[root@jfht ~]#
?
示例三 查找与kill有关的手册页[root@jfht ~]# man -k kill
kill???????????????? (1)? - terminate a process
kill???????????????? (1p)? - terminate or signal processes
kill???????????????? (2)? - send signal to a process
kill???????????????? (3p)? - send a signal to a process or a group of processes
kill [builtins]????? (1)? - bash built-in commands, see bash(1)
killall????????????? (1)? - kill processes by name
killchar [curs_termattrs] (3x)? - curses environment query routines
killpg?????????????? (2)? - send signal to a process group
killpg?????????????? (3)? - send signal to all members of a process group
killpg?????????????? (3p)? - send a signal to a process group
killwchar [curs_termattrs] (3x)? - curses environment query routines
mysql_waitpid??????? (1)? - kill process and wait for its termination
mysql_zap??????????? (1)? - kill processes that match a pattern
pkill [pgrep]??????? (1)? - look up or signal processes based on name and other attributes
pthread_kill???????? (3p)? - send a signal to a thread
skill??????????????? (1)? - send a signal or report process status
snice [skill]??????? (1)? - send a signal or report process status
tgkill?????????????? (2)? - Send signal sig to one specific thread, tgid
tkill??????????????? (2)? - send a signal to a single process
xkill??????????????? (1x)? - kill a client by its X resource
yes????????????????? (1)? - output a string repeatedly until killed
[root@jfht ~]#
?
问题思考1. manpage是由哪些部分组成的?
2. manpage的语法规则如何,以及如何变成man手册页?
?
相关资料【1】飞诺网 linux man的使用
http://dev.firnow.com/course/6_system/linux/Linuxjs/2008109/149569.html
【2】Linux公社 Linux man章节分类以及查询
http://www.linuxidc.com/Linux/2010-12/30881.htm
【3】三二一@小鱼 (9)linux man usage
http://blog.csdn.net/livelylittlefish/archive/2009/08/26/4487971.aspx
【4】我使用过的Linux命令之apropos - 根据关键字搜索命令
http://codingstandards.iteye.com/blog/776024
【5】我使用过的Linux命令之help - 显示Bash内建命令的帮助信息
http://codingstandards.iteye.com/blog/804620
【6】我使用过的Linux命令之type - 显示命令的类型
http://codingstandards.iteye.com/blog/831504
?
返回 我使用过的Linux命令系列总目录
?