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目录下的文档

相关推荐
Arthurmoo24 分钟前
Linux系统之MySQL数据库基础
linux·数据库·mysql
李洋-蛟龙腾飞公司42 分钟前
HarmonyOS NEXT应用元服务常见列表操作分组吸顶场景
linux·运维·windows
链上Sniper1 小时前
智能合约状态快照技术:实现 EVM 状态的快速同步与回滚
java·大数据·linux·运维·web3·区块链·智能合约
晨曦丿2 小时前
双11服务器
linux·服务器·网络
李迟2 小时前
在Linux服务器上使用kvm创建虚拟机
java·linux·服务器
A_New_World3 小时前
Linux性能分析工具
linux
鹏大师运维3 小时前
在银河麒麟V10 SP1上手动安装与配置高版本Docker的完整指南
linux·运维·docker·容器·麒麟·统信uos·中科方德
QMCY_jason3 小时前
linux 内存占用排查 vm.nr_hugepages
linux·运维·服务器
cui_win3 小时前
【基础】Golang语言开发环境搭建(Linux主机)
linux·golang·运维开发
ZPC82103 小时前
ubuntu 6.8.0 安装xenomai3.3
linux·运维·ubuntu