在命令行模式中,man
是“manual”(手册)的缩写,是Linux/Unix系统中查看命令、系统调用、库函数等详细帮助信息的核心工具,通过man
,用户可以快速获取工具的使用方法、参数说明、示例等内容,是命令行操作必备的技能,以下从基本用法、手册章节结构、常用选项、内部操作技巧及进阶配置等方面详细说明如何使用man
。
基本用法
最简单的man
使用方式是直接输入 man
加上需要查询的目标名称,例如查看 ls
命令的手册:
man ls
执行后会进入手册页浏览界面,显示 ls
命令的详细说明,若目标不存在手册(如自定义脚本或部分新工具),系统会提示“No manual entry for [目标]”。
手册章节结构
man
手册按内容类型分为9个章节,不同章节可能包含同名条目(如 printf
同时存在于第1章“用户命令”和第3章“库函数”),默认情况下,man
会显示优先级最高的章节(通常为第1章),若需指定章节,需在目标前添加章节号。
man 1 printf # 查看printf命令(用户命令) man 3 printf # 查看printf库函数(C库函数)
各章节的具体含义如下表所示:
章节号 | 章节名称 | 描述 | 示例 |
---|---|---|---|
1 | 用户命令(User commands) | 可直接由用户执行的命令或shell脚本 | man ls 、man cd |
2 | 系统调用(System calls) | 内核提供的函数,如文件操作、进程控制等 | man 2 open 、man 2 fork |
3 | 库函数(Library functions) | C标准库或其他库提供的函数(如stdio.h 、string.h 中的函数) |
man 3 printf 、man 3 strlen |
4 | 设备和特殊文件(Devices and special files) | /dev 目录下的设备文件(如硬盘、终端等) |
man 4 tty 、man 4 null |
5 | 配置文件格式(File formats and conventions) | 系统配置文件的格式说明(如/etc/passwd 、crontab ) |
man 5 passwd 、man 5 crontab |
6 | 游戏(Games) | 游戏或娱乐程序(较少使用) | man 6 fortune |
7 | 杂项(Miscellaneous) | 宏定义包、约定、文件系统结构等(如man 7 hier 说明Linux目录结构) |
man 7 hier 、man 7 signal |
8 | 系统管理命令(System administration commands) | 系统管理员使用的命令(如systemctl 、fdisk ) |
man 8 systemctl 、man 8 fdisk |
9 | 内核例程(Kernel routines) | 内核相关的非标准函数(较少使用,多见于内核开发) | man 9 bootparam |
常用选项
man
命令本身支持多种选项,方便快速定位或筛选手册信息,常用选项如下表:
选项 | 全称 | 功能描述 | 示例 |
---|---|---|---|
-k |
--apropos |
按关键字搜索手册页名称及描述(等同于apropos 命令) |
man -k "copy file" |
-f |
--whatis |
显示目标手册页的简短描述(等同于whatis 命令) |
man -f ls |
-a |
--all |
显示所有匹配章节的手册页(而非仅第一个) | man -a printf |
-w |
--where |
仅显示手册页的路径(不显示内容) | man -w ls |
-h |
--help |
显示man 命令自身的帮助信息 |
man -h |
-C |
--config-file |
指定自定义的man 配置文件(默认为/etc/man.config ) |
man -C ~/.manrc ls |
手册页内部操作技巧
进入手册页后,实际是通过分页器(默认为less
,支持以下快捷键操作:
操作键 | 功能描述 |
---|---|
j / |
向下滚动一行 |
k / |
向上滚动一行 |
空格 /Page Down |
向下翻一页 |
b /Page Up |
向上翻一页 |
向下搜索“关键词”(支持正则表达式) | |
向上搜索“关键词” | |
n |
跳到下一个搜索结果(与搜索方向同向) |
N |
跳到上一个搜索结果(与搜索方向反向) |
G |
跳到手册页末尾 |
1G /gg |
跳到手册页开头 |
q |
退出手册页 |
进阶配置与技巧
-
更新手册数据库:若新安装的软件手册无法通过
man -k
搜索到,需更新手册数据库(以root用户执行):mandb # 适用于Debian/Ubuntu系统 makewhatis # 适用于CentOS/RHEL系统
-
修改分页器:默认分页器为
less
,可通过环境变量PAGER
修改(如改为more
):export PAGER=more # 临时修改(当前会话有效) echo 'export PAGER=more' >> ~/.bashrc # 永久修改(需重新加载配置)
-
自定义搜索路径:若手册页位于非标准目录(如
/opt/man
),可通过MANPATH
环境变量添加:export MANPATH=$MANPATH:/opt/man
-
查看无手册的命令帮助:部分命令(如shell内置命令
cd
、echo
)没有独立手册页,可通过help
命令查看:help cd # 查看cd命令的帮助 help -d cd # 仅查看cd命令的简短描述
FAQs
问题1:为什么有些命令用man
查不到手册?
解答:可能的原因有三种:① 命令是新安装的,手册数据库未更新,需执行mandb
或makewhatis
更新;② 命令本身未提供man手册(如部分第三方工具或自定义脚本),可尝试通过命令 --help
查看简短帮助;③ 命令是shell内置命令(如cd
、alias
),需用help 命令
查看帮助。
问题2:man
手册页中的语法符号(如[]
、、)代表什么意思?
解答:这些是手册页中常见的语法约定:[]
表示可选参数(如ls [选项] [文件]
中的“选项”和“文件”均可省略);表示“或”(用于分隔多个互斥参数,如ls -a|-l
表示使用-a
或-l
);表示参数可重复出现(如rm 文件...
表示可删除多个文件);<>
表示必选参数(现代手册较少使用,通常通过加粗或下划线体现)。
原创文章,发布者:酷番叔,转转请注明出处:https://cloud.kd.cn/ask/13919.html