[linux] 非常重要的一部分 man命令

man命令是Linux系统中用于查看命令、函数和配置文件文档的工具,提供关于系统命令的详细说明。用户可以通过在终端输入man加上命令名来获取帮助信息。手册页分为多个章节,如1代表用户命令,2代表系统调用等。使用man命令可以查看命令的用法、参数和示例。此外,man命令还支持搜索和使用不同的分页程序显示内容。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

当你在Linux终端中遇到不熟悉的命令或程序,想了解它们是做什么用的、怎么使用,或者需要了解某个配置文件的格式和作用时,man命令就派上用场了。

 什么是man命令呢?

在Linux中,man命令是用来查看系统文档的工具,它可以让你找到和理解系统上的各种命令、函数和配置文件。这些系统文档被称为"手册页"(manual pages)。手册页提供了关于特定命令或文件的详细说明,帮助你正确地使用它们。

man 手册页被设计成独立的文档,不能引用其它手册页面。这与支持超链接的 Info 文档 形成鲜明对比,GNU正在将 man 手册替换成 info 文档。

手册页的默认格式是troff,使用man宏软件包(着重展现)或mdoc宏软件包(着重语义)。可以把手册页排版成PostScriptPDF和其他各种格式进行查看或打印。

如何使用 man 命令呢?

man命令的使用很简单。你只需要在终端输入man后面跟着要查找的命令或文件的名称,就可以看到相关的手册页了。例如,如果你想查看ls命令的手册页,只需要在终端输入: 

man ls

语法

man(选项)(参数)

 

选项

  • -a:在所有的man帮助手册中搜索;
  • -f:等价于whatis指令,显示给定关键字的简短描述信息;
  • -P:指定内容时使用分页程序;
  • -M:指定man手册搜索的路径。

参数

  • 数字:指定从哪本man手册中搜索帮助;
  • 关键字:指定要搜索帮助的关键字。

数字代表内容

1:用户在shell环境可操作的命令或执行文件;

2:系统内核可调用的函数与工具等

3:一些常用的函数(function)与函数库(library),大部分为C的函数库(libc)

4:设备文件说明,通常在/dev下的文件

5:配置文件或某些文件格式

6:游戏(games)

7:惯例与协议等,如Linux文件系统,网络协议,ASCII code等说明

8:系统管理员可用的管理命令

9:跟kernel有关的文件

如果未指定章节,man 会默认按照上述章节的顺序查找手册页。

举例来说,如果你想查看 ls 命令的手册页,你可以使用以下命令:

man ls

我们输入man ls,它会在最左上角显示“LS(1)”,在这里,“LS”表示手册名称,而“(1)”表示该手册位于第一节章,同样,我们输man ifconfig它会在最左上角显示“IFCONFIG(8)”。也可以这样输入命令:“man [章节号] 手册名称”。

man是按照手册的章节号的顺序进行搜索的,比如:

man sleep

只会显示sleep命令的手册,如果想查看库函数sleep,就要输入:

man 3 sleep

如果你对这种语法感到困惑的话,可以采用如下的格式:

man passwd.3

手册页将在终端中显示,你可以使用箭头键进行滚动,按下 键退出手册页查看。

安装

man-db 提供了 man 命令,less 是 man 的默认分页器。

Untitled

man-pages 提供了 Linux man 页面的内容。

Untitled

下面是一些语言的翻译版本:

快捷键(less

在手册页阅读界面中,可以使用快捷键来帮助阅读。

由于手册页的显示是使用操作系统 Shell 环境中的默认 PAGER 来完成的,所以快捷键遵循相应 PAGER 的功能映射。

大多数系统中现在默认采用 less 作为默认 PAGER,因此请参考 less 命令全知全会

布局

所有的手册页遵循一个常见的布局,其为通过简单的ASCII文本展示而优化,而这种情况下可能没有任何形式的高亮或字体控制。一般包括以下部分内容:

  • NAME(名称)

    该命令或函数的名称,接着是一行简介。

  • SYNOPSIS(概要)

    对于命令),正式的描述它如何运行,以及需要什么样的命令行参数。对于函数,介绍函数所需的参数,以及哪个头文件包含该函数的定义。

  • DESCRIPTION(说明)

    命令或函数功能的文本描述。

  • EXAMPLES(示例)

    常用的一些示例。

  • SEE ALSO(参见)

    相关命令或函数的列表。

常用命令

列出所有章节

有时候我们对某主题很感兴趣,但却并不知道该主题有哪些章节可以被查询,这时候就可以用 -aw 参数进行查询:

man -aw printf

典型的结果可能是这样:

/usr/share/man/man1/printf.1.gz
/usr/share/man/man1/printf.1posix.gz
/usr/share/man/man3/printf.3.gz
/usr/share/man/man3/printf.3posix.gz

但你或许更喜欢 whatis 返回的结果:

$ whatis printf
printf (1)           - format and print data
printf (3)           - formatted output conversion
printf (1posix)      - write formatted output
printf (3posix)      - print formatted output

它更直观。

whatis 等价于 man -f

$ man -f printf
printf (1)           - format and print data
printf (3)           - formatted output conversion
printf (1posix)      - write formatted output
printf (3posix)      - print formatted output

一次查阅所有章节

如果要一次性查阅某个主题的所有章节,可以用 -a 参数,这会令 man 依次显示所有章节:

man -a printf

当你看完一个章节并按 q 退出之后,man 会显示:

--Man-- next: printf(3) [ view (return) | skip (Ctrl-D) | quit (Ctrl-C) ]

简单地回车(按下 Enter 键)就可以继续阅读下一个章节。你也可以用 Ctrl-C 终止 man 返回到 Shell 提示符状态。

搜索手册页

如果用户压根儿不知道要查阅的手册的名称,该怎么办呢?没事,通过 -k 或者 --apropos 参数就可以按给定关键词搜索相关手册。例如,要查阅有关密码的手册(“password”):

$ man -k password
chage (1)            - change user password expiry information
chgpasswd (8)        - update group passwords in batch mode
chpasswd (8)         - update passwords in batch mode
...
pam_unix (8)         - Module for traditional password authentication
passwd (1)           - change user password
passwd (1ssl)        - compute password hashes
passwd (5)           - the password file
passwd2des (3)       - RFS password encryption
...
pwd.h (7posix)       - password structure
...
shadow (5)           - shadowed password file
shadowconfig (8)     - toggle shadow passwords on and off
smbpasswd (5)        - The Samba encrypted password file
smbpasswd (8)        - change a user's SMB password
...
xdecrypt (3)         - RFS password encryption
xencrypt (3)         - RFS password encryption

man -k 会筛选主题名称以及简短描述文字来尝试匹配给定的关键字。

现在你可以开始搜索了。 例如,要查阅有关密码的手册(“password”),可以使用下面的命令:

$ man -k password
$ man --apropos password
$ apropos password

全文检索某个关键字

如果你想全文搜索的话,你可以用-K选项:

$ man -K sprintf

其它功能

在浏览器中显示手册页

man -Hfirefox printf

此功能可能需要 groff 命令能够在 PATH 路径中可被搜索到。所以你也许需要显式地安装 groff

sudo apt-get install groff

指定分页程序(PAGER)

我们提到过显示主题内容使用的是通过环境变量 PAGER 指定的分页程序,默认时为 less。但你可以显式地指定其它分页程序作为显示工具,这是通过命令行参数 -P 来指定的:

man -P more printf

转换为纯文本、网页或 PDF

纯文本

man printf | col -b > printf.txt

网页

首先,安装软件包 man2html

然后使用它转换 man 手册页:

$ man free | man2html -compress -cgiurl man$section/$title.$section$subsection.html > ~/man/free.html

此外,man2html 还可以把 man 页转换为便于打印的文本文件:

$ man free | man2html -bare > ~/free.txt

另一种方式是直接通过 groff 来做:

zcat `man -w printf` | groff -mandoc -T html > printf.html

PDF

将手册页转换为 PDF:

man -t printf | ps2pdf - printf.pdf

man pages 是可以打印的,遵循 troff 格式,本来就是打印设置语言,安装 ghostscript 后,可以用下面命令将 man 页面转换为 PDF man -t <manpage> | ps2pdf - <pdf>.

注意这里仅能使用 Times 字体,没有超链接,有些手册是转为终端设计,PS 或 PDF 格式看起来不太正常。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值