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

相关推荐
崇子嵘10 分钟前
上云方案硬件部分分析
linux
小嘉丶学长14 分钟前
Day13 · 列表与元组
linux·运维·服务器·开发语言·python
zuiyuewentian36 分钟前
借助 AI 在 Win11 上搭建 Rocky Linux:用 Visual Studio 直接调试 Linux 服务
linux·运维·visual studio
牢姐与蒯40 分钟前
WSL2 迁移教程:把Ubuntu+WSL2从C盘挪到别的盘
linux·运维·服务器·网络·ubuntu·1024程序员节
垆边人似月.42 分钟前
RDMA 文件传输踩坑(二):为什么 `sleep()` 不能保证接收端准备好了?
linux·服务器·网络·rdma
DYWorker0011 小时前
第 1-10 课: 横切设施:锁、RCU、安全与观测怎么选?
linux
臻一1 小时前
rk3568---ftp无法连接
linux·ftp·3568
自由彩虹2 小时前
靶场通关16--victim1
linux·服务器·网络·安全·web安全·网络安全
叼烟扛炮2 小时前
Linux 学习笔记(三十九):网络基石——TCP/IP 模型与 UDP 实战
linux·运维·网络·笔记·学习·tcp/ip
闲云野鹤在人间2 小时前
头秃修炼手册:StorageClass+StatefulSet+ETCD 全套渡劫笔记
linux·数据库·笔记·云原生·kubernetes·etcd