Linux基本指令篇 —— man指令

man命令****是Linux系统中最重要的命令之一,它是"manual"(手册)的缩写,用于查看Linux系统中命令、函数、配置文件等的详细说明文档。man命令是Linux系统管理员和开发者的必备工具,熟练掌握man命令可以大大提高工作效率,减少对互联网搜索的依赖。

目录

一、基本用法

二、man页面的章节

三、常用选项

-f:显示命令的简短描述(等同于whatis命令)

-k:搜索包含关键词的手册页(等同于apropos命令)

-a:显示所有匹配的手册页(默认只显示第一个找到的)

-w:显示手册页的路径

四、在man页面中的操作

五、指定章节查询

六、实际示例

七、自定义man页面

八、man页面的结构

九、替代方案


一、基本用法

bash 复制代码
man [选项] 命令/函数/配置文件

语法: man 选项 指令
功能: 查看指令的使用规则等


二、man页面的章节

Linux的man 手册通常分为 9 个章节(不同系统可能略有差异):

  1. 普通命令 - 用户可执行的基本命令

  2. 系统调用 - 如 open、write 等系统调用函数(可方便查询所需头文件)

  3. 库函数 - 如 printf、fread 等标准库函数

  4. 特殊文件 - /dev 目录下的各种设备文件

  5. 文件格式 - 说明配置文件的格式和字段含义(如 passwd 文件)

  6. 游戏相关 - 游戏程序的自定义内容

  7. 杂项 - 包含环境变量等附加说明(如 environ 全局变量),宏包和约定等

  8. 系统管理命令 - 仅供 root 用户使用的命令(如 ifconfig)

  9. 内核例程 - 非标准的内核例程


三、常用选项

-f:显示命令的简短描述(等同于whatis命令)

bash 复制代码
man -f ls


*

-k:搜索包含关键词的手册页(等同于apropos命令)

bash 复制代码
man -k network


*

-a:显示所有匹配的手册页(默认只显示第一个找到的)

bash 复制代码
man -a printf


*

-w:显示手册页的路径

bash 复制代码
man -w ls

四、在man页面中的操作

进入man页面后,可以使用以下快捷键进行导航:

快捷键 功能说明 补充说明
空格键 向下翻一页 最常用的翻页方式
b 向上翻一页 相当于 Page Up
Enter 向下滚动一行 精细阅读时使用
/关键词 向前(向下)搜索关键词 支持正则表达式(如 /^printf
?关键词 向后(向上)搜索关键词 从当前位置向上搜索
n 跳转到下一个匹配项 配合 /? 使用
N 跳转到上一个匹配项 配合 /? 使用
q 退出 man 页面 强制退出
h 查看帮助(显示所有可用命令) 会列出完整的快捷键说明
= 显示当前页面信息(行号/百分比) 了解阅读进度
:n 切换到下一个手册文件 仅在使用 man -a 时有效
:p 切换到上一个手册文件 仅在使用 man -a 时有效

五、指定章节查询

当要查询的内容可能存在于多个章节时,可以指定章节号:

bash 复制代码
man 2 open    # 查看系统调用open
man 3 printf  # 查看库函数printf

报错:系统没有安装第2章节的系统调用文档和第3章节的C库函数文档。

解决方法:需要安装开发相关的手册包,不同Linux发行版命令如下

对于CentOS/RHEL:

bash 复制代码
sudo yum install man-pages man-pages-overrides
sudo yum install glibc-doc

对于Ubuntu/Debian:

bash 复制代码
sudo apt update
sudo apt install manpages-dev manpages-posix-dev

安装完成后,这些系统调用和库函数的文档就可以正常查看了。


六、实际示例

  1. 查看ls命令的帮助:

    bash 复制代码
    man ls
  2. 查看passwd文件的格式说明:

    bash 复制代码
    man 5 passwd
  3. 查找所有与网络相关的手册页:

    bash 复制代码
    man -k network

七、自定义man页面

man页面的显示可以通过环境变量进行配置:

  • MANPATH:设置man页面的搜索路径

  • MANWIDTH:设置man页面的显示宽度

  • PAGER:设置用于查看man页面的分页程序(默认是less)

例如:

bash 复制代码
export MANWIDTH=80  # 设置每行显示80个字符

八、man页面的结构

一个典型的man页面包含以下部分:​​​​​

| 章节 | 说明 | 示例 |
|-----------------|---------------------|-----------------------------------------------------|---|
| NAME | 命令/函数名称及单行描述 | ls - list directory contents |
| SYNOPSIS | 命令语法格式(方括号[]表示可选) | ls [OPTION]... [FILE]... | |
| DESCRIPTION | 详细功能描述(可能包含参数、返回值等) | List information about the FILEs... |
| OPTIONS | 选项说明(通常以---开头) | -a, --all do not ignore entries starting with . |
| EXAMPLES | 典型使用示例(非所有手册都有) | $ ls -l /tmp $ ls --color=auto |
| SEE ALSO | 相关命令/函数参考(用逗号分隔) | printf(1), fopen(3), syscalls(2) |
| BUGS | 已知问题或限制(非所有手册都有) | The -z option may cause memory leaks |
| AUTHOR | 作者/维护者信息 | Written by John Doe and Jane Smith |


九、替代方案

除了man之外,Linux系统还有其他获取帮助的方式:

  1. --help选项:大多数命令都支持

    bash 复制代码
    ls --help
  2. info命令:GNU项目的超文本帮助系统

    bash 复制代码
    info ls
  3. 在线文档:如/usr/share/doc目录下的文档

相关推荐
A小辣椒1 天前
TShark:Wireshark CLI 功能
linux
A小辣椒1 天前
TShark:基础知识
linux
AlfredZhao1 天前
OCI 明明分配了 200G 系统盘,为什么 df 只看到 30G?
linux·oci
AlfredZhao2 天前
vi 删除指定范围的行,不用再反复按 dd
linux·vi
用户9718356334662 天前
银河麒麟 KY10 申威(SW64) 安装 nginx-1.16.1-2.p01.ky10.sw_64.rpm 详细步骤
linux
猪脚踏浪2 天前
linux 拷贝文件或目录到指定的位置
linux
摇滚侠3 天前
Linux CentOS7 rpm 安装 MySQL 5.7
linux·运维·mysql
bush43 天前
嵌入式linux学习记录十四、术语
linux·嵌入式
载数而行5203 天前
Linux 11 动态监控指令top
linux
不会C语言的男孩3 天前
Linux 系统编程 · 第 8 章:进程基础
linux·c语言