GNU/Linux 基础 — 帮助系统

前言

GNU/Linux 操作系统中,命令众多,相关配置文件的配置项也是相当多,因此我们借助帮助系统来帮助我们更好地玩转操作系统。

简短的选项说明

在 GNU/Linux 的世界中,命令主要划分为:

  • Shell 的内置命令
  • 非 Shell 的内置命令(即从非系统级软件包所释放出的命令)

若需要查看命令的简短选项说明,对于大多数命令而言,直接键入 --help-h 即可:

Shell > w --help

Shell > dnf -h

在有些软件或服务中,有主命令的帮助说明,也有次要的功能项命令说明:

# 查看主命令的选项说明
Shell > git --help

# 查看次要功能命令的选项说明
Shell > git add --help

Shell > docker run --help

Shell > dnf list --help

手册页

在 GNU/Linux 的世界中,手册页根据相关的主题被划分为 9 个类型,默认类型为 1:

  1. 可执行的程序或命令。
  2. 系统调用(内核给定的函数)。
  3. 库调用(库给定的函数)。
  4. 特殊文件(通常位于/dev中)。
  5. 文件格式和约定(配置文件如 /etc/passwd)。
  6. 游戏(例如基于角色的应用程序)。
  7. 杂项(如:man(7))。
  8. 系统管理命令 (通常只适用于 root)。
  9. 非标准的内核例程。

例如,若您需要查看命令 passwd 的手册页,可键入:

Shell > man passwd

若您需要查看 /etc/chrony.conf 这个配置文件的手册页,可键入:

Shell > man 5 chrony.conf

查看 Firewalld 中 pam_unix.so 模块可用的配置项:

Shell > man 8 pam_unix

help 命令

在 Bash 当中,有一些内置命令不能通过 man 进行查看。比如当您键入 man cd 时会显示所有 Bash 内置命令的手册页,若要针对每一个内置命令进行查看的话,则需要使用 help 命令,例如:

Bash > help cd

Bash > help alias

apropos 命令

apropos 命令允许您在这些手册页当中按照关键字进行搜索,例如:

Shell > apropos clear
clear (1)            - clear the terminal screen
clear_console (1)    - clear the console
clearenv (3)         - clear the environment
clearerr (3)         - check and reset stream status

常见选项如下表所示:

选项 说明
-r
–regex
使用正则表达式的模式匹配,这是默认的
-a
–and
所有关键字都同时匹配
-e
–exact
严格匹配而非模式匹配

比如在严格匹配的状态下,搜索包含 password 与 change 关键字的手册页:

Shell > apropos --exact password  -a change
chage (1)            - change user password expiry information
lchage (1)           - Display or change user password policy
lpasswd (1)          - Change group or user password

阅读手册页的内容

在手册页的内容当中,其内容被划分为多个标准或非标准结构:

  1. NAME 部分 – 简短的文字说明,通常为单行
  2. SYNOPSIS 部分 – 相关的语法或用法,例如命令的语法、配置文件的语法、函数的使用方法
  3. DESCRIPTION 部分 – 长的详细文字,例如介绍命令的特定功能、用法,配置文件的参数等。
  4. OPTIONS 部分 – 针对命令选项的说明内容
  5. DIRECTIVES 部分 – 配置文件的配置项或指令
  6. NOTES 部分 – 一些额外的特殊说明
  7. EXAMPLES 部分 – 示例的典型用法
  8. EXIT STATUS 部分– 命令执行后的返回值以及含义
  9. FILES 部分 – 直接或间接关联的文件
  10. ENVIRONMENT 部分 – 依赖的环境变量
  11. SEE ALSO 部分– 其他关联的参考文件或命令或杂项
  12. AUTHOR 部分– 作者
  13. COPYRIGHT 部分– 版权相关
  14. BUGS 部分– 已知问题或缺陷
  15. AVAILABILITY 部分– 通常用于说明某个命令、函数或工具在哪些系统、发行版或软件版本中可用,或者需要满足哪些依赖条件才能使用
  16. HISTORY 部分 – 重要的历史变更
  17. CONFIGURATION 部分 – 描述配置文件格式或参数的部分
  18. SECURITY 部分 – 说明命令的安全隐患或权限要求
  19. CAVEATS 部分 – 提示使用的限制或潜在危险
  20. TROUBLESHOOTING 部分 – 常见错误的解决方案
  21. VERSION NOTES 部分 – 标注功能变更或废弃情况
  22. COMPATIBILITY 部分 – 兼容性说明
  23. WARNINGS 部分 – 提示风险或需要注意的部分
  24. DIAGNOSTICS 部分 – 解释命令的错误代码或日志含义,用来辅助调试
  25. RESTRICTIONS 部分 – 命令的适用条件或权限要求(如特定的内核版本、特定的硬件等)
  26. AUTHOR NOTES 部分 – 开发者的未来计划或额外说明
  27. DEPRECATED 部分 – 标注废弃掉的命令

手册页中命令的格式标记:

  • "{ }" 表示是必需的;
  • "|" 表示或的意思;
  • "[ ]" 表示是可选的;
  • "…" 表示同样的对象可以有多个;
  • "< >" 表示是可以变化的;
  • 粗体表示必须按照原始样式输入;
  • 斜体或下划线则表示需要使用适当的值进行替换;
  • "[ | | ]" 表示两个或多个的选项,用户需要选择其中的任意一个。

本地手册页的按键操作

常用的有:

  • – 向上滚动一行
  • – 向下滚动一行
  • Page Down – 向下滚动一页
  • Page Up – 向上滚动一页
  • q – 退出手册页
  • g – 跳到手册页的第一行
  • G – 跳到手册页的最后一行
  • h – 手册页的帮助信息

在手册页中,/ 键可以进入到模式匹配,根据用户键入的字符串或正则表达式来搜索并匹配文字内容。键入了字符串或正则表达式且回车之后,使用者可以:

  • n – 搜索下一个匹配的字符串
  • N – 搜索上一个匹配的字符串

请注意!在手册页呈现的页面中,键入的 / 会不区分大小写进行搜索与匹配。

常见的正则表达式:

  • * – 匹配前一个字符的出现次数,可以是0次或任意次数
  • ? – 匹配前一个字符出现 0 次或 1 次
  • + – 匹配前一个字符出现 1 次或多次
  • ^ – 匹配特定的行开头,比如 ^ssh 将不区分大小写匹配以 ssh 开头的行
  • $ – 匹配特定的行结尾,比如 shell$
  • [ ] – 匹配括号中的任意单个字符,比如 [who] 将匹配 w 或 h 或 o。[0-9] 将匹配一个数字;[0-9][a-z] 将匹配由一个数字和一个小写字母组成的字符。
  • [^ ] – 匹配除括号中字符外的任何单个字符。例如 [^0-9] 将匹配任意单个非数字字符;[^a-z] 将匹配任意单个非字母的字符,因为手册页中不区分大小写。
  • | – 匹配管道符两边的任意一个,比如 host|shell
  • ( ) – 将括号里的字符串作为一个组合的整体。比如 ([a-z]+)[1-9]([a-z]*) 会匹配到 IPv4pkcs11X11SOCKS4 等字符串。

小技巧

大多数情况,我们的软件包都是从存储库里安装下来的,查阅手册时用 man 命令即可。

但是,如果是软件包源代码编译后进行安装的,手册页应该如何查看?

man <FILE-PATH><FILE-PATH> 中的文件是形如 xxx.1.gz 或 xxxx.5.gz 这样的文件。

Avatar photo

关于 陸風睿

GNU/Linux 从业者、开源爱好者、技术钻研者,撰写文档既是兴趣也是工作内容之一。Q - "281957576";WeChat - "jiulongxiaotianci",Github - https://github.com/jimcat8
用一杯咖啡支持我们,我们的每一篇[文档]都经过实际操作和精心打磨,而不是简单地从网上复制粘贴。期间投入了大量心血,只为能够真正帮助到您。
暂无评论

发送评论 编辑评论


				
|´・ω・)ノ
ヾ(≧∇≦*)ゝ
(☆ω☆)
(╯‵□′)╯︵┴─┴
 ̄﹃ ̄
(/ω\)
∠( ᐛ 」∠)_
(๑•̀ㅁ•́ฅ)
→_→
୧(๑•̀⌄•́๑)૭
٩(ˊᗜˋ*)و
(ノ°ο°)ノ
(´இ皿இ`)
⌇●﹏●⌇
(ฅ´ω`ฅ)
(╯°A°)╯︵○○○
φ( ̄∇ ̄o)
ヾ(´・ ・`。)ノ"
( ง ᵒ̌皿ᵒ̌)ง⁼³₌₃
(ó﹏ò。)
Σ(っ °Д °;)っ
( ,,´・ω・)ノ"(´っω・`。)
╮(╯▽╰)╭
o(*////▽////*)q
>﹏<
( ๑´•ω•) "(ㆆᴗㆆ)
😂
😀
😅
😊
🙂
🙃
😌
😍
😘
😜
😝
😏
😒
🙄
😳
😡
😔
😫
😱
😭
💩
👻
🙌
🖕
👍
👫
👬
👭
🌚
🌝
🙈
💊
😶
🙏
🍦
🍉
😣
Source: github.com/k4yt3x/flowerhd
颜文字
Emoji
小恐龙
花!
上一篇
下一篇