如何在 Linux 中有效地浏览手册页
对于任何软件来说,良好的文档都是绝对必要的,这一原则也适用于 Linux 命令。
许多 Linux 发行版和开源社区都提供了可以通过 Internet 轻松访问的全面文档。
本文档提供了有关 Linux 命令的深入信息、说明和解释,确保用户拥有有效利用和理解可用的命令行工具所需的资源。
然而,在某些情况下,简洁的文档足以快速完成特定任务。在这种情况下,我们可以依靠通过“man”命令访问的内置系统文档。
“man”命令是“manual”的缩写形式,用作访问系统参考手册的界面。这些手册也称为“手册页”,包含各个命令的详细文档。
例如,mkdir、rmdir、dd 等命令的手册页提供了有关其各自功能和用法的详细文档。
man mkdir
man rmdir
man dd
人们应该熟悉“man”命令,以便从终端有效地使用 Linux。
man 命令语法
man 命令的语法很简单:
man [OPTIONS] ... ...
就像任何其他 Linux 命令一样,一对方括号 ([])
表示可选参数,而一对尖括号 (<>)
表示强制参数。
man 命令的各个部分
除了 shell 命令之外,Linux 还支持其他编程结构,例如系统调用、库调用、特殊文件等。为了更好的组织,每个编程构造都被归入一个称为“节”的专用组下。
让我们简单讨论一下每个人的部分:
- 第 1 部分 – 本部分包含可执行程序或 shell 命令的手册页。例如cut、gzip、uniq等。
- 第 2 部分 – 本部分包含系统调用的手册页。 Linux 内核使用系统调用来公开其功能。常见的系统调用有 –
open()
、read()
、write()
、close()
、lseek()
等 - 第 3 部分 – 此部分包含库调用的手册页。库调用是用户空间库提供的函数。例如,字符串库中的
strlen()
函数、标准输入/输出库中的fopen()
函数等。 - 第 4 节 – 此部分包含特殊文件的手册页。通常,这些文件位于
/dev
目录下。例如,/dev/null
、/dev/full
等。 - 第 5 节 – 此部分包含文件格式和约定的手册页。例如,/etc/hosts、/etc/shadow等。
- 第 6 节 – 此部分包含与游戏相关的手册页。
- 第 7 节 – 此部分包含其他命令的手册页。例如,man 和 groff。
在本初学者指南中,我们将深入研究“man”命令的复杂性,通过实际示例获得深入的知识。
1.查看Linux命令手册页
man 命令的主要用途之一是显示系统文档。 man 命令的有效参数是程序、实用程序或函数的名称。
为了理解这一点,让我们使用以下命令来查看 sleep 命令的手册页。
man sleep
在上面的输出中,我们可以看到 man 命令显示了有关 sleep 命令的详细信息。我们可以按 'q'
键退出手册页窗口并返回到终端。
如果你仔细观察的话,我们可以看到在左上角和右上角,在命令名称后面的括号里有一个数字。该数字代表手册页的部分。
例如,在上面的输出中,SLEEP(1) 用于表示手册页的 1 部分。
2. 浏览手册页
每个手册页都提供详尽的信息。例如,命令的描述以及所有支持的选项、退出代码、命令的作者、已知问题/错误等。
此类详细信息无法显示在单个终端窗口上,因此默认情况下 man 命令使用名为 less 的分页实用程序。
我们可以使用以下寻呼机命令来有效地浏览手册页:
- 向上箭头 – 在手册页中向前移动一行。
- 向下箭头 – 在手册页中向后移动一行。
- f 或 space – 在手册页中向前移动一个终端窗口。
- b – 在手册页中向后移动一个终端窗口。
- /pattern – 在手册页中向前搜索模式。
- ?pattern – 在手册页中向后搜索模式。
3. 从特定部分查看手册页
许多 Linux 命令都是以系统调用或库函数命名的。例如,chown 是一个 Linux 命令,也是一个系统调用。同样,sleep 是一个 Linux 命令,也是一个库函数。
默认情况下,man 命令搜索所有部分中的文档并显示第一个匹配部分中的页面。
例如,在前面的示例中,命令 - man sleep 仅显示第 1 部分中的手册页,即使手册页也出现在第 3 部分中。在这种情况下,我们可以使用指定节号作为 man 命令的命令行参数。
现在,让我们使用以下命令查看 sleep()
库函数的手册页:
man 3 sleep
在上面的命令中,man命令后面的数字3代表第3节。
4. 查看所有部分的手册页
在前面的示例中,我们了解了如何从默认部分以及特定部分查看手册页。然而,有时我们不知道手册页的其他部分可用。
在这种情况下,我们可以在命令中使用 -a
选项来查看所有部分的手册页。
man -a sleep
使用此选项,man 命令将一一显示所有手册页。因此,要查看下一个手册页,我们必须按 ‘q’
键退出当前手册页。
例如,按 'q'
键后将显示以下屏幕说明。
5. 手册页的搜索部分
在前面的示例中,我们了解了如何查看所有部分的手册页。然而,有时我们只是想知道特定手册页的哪些部分可用。
在这种情况下,我们可以使用 -f
选项来显示手册页的部分以及简短的描述。
man -f sleep
在上面的输出中,我们可以分别从第 3 部分和第 1 部分看到有关 sleep 的简洁信息。
6. 按关键字搜索手册页
有时,我们想在手册页的描述中搜索特定的关键字。在这种情况下,我们可以使用 -k
选项,它按关键字列出手册页。
现在,让我们列出所有出现单词 sleep 的手册页:
man -k sleep
7. 查找手册页的源位置
手册页是使用 gzip 命令压缩的纯文本文件,使用 -w
选项将打印手册页文件的位置。
man -a -w sleep
/usr/share/man/man1/sleep.1.gz
/usr/share/man/man3/sleep.3.gz
在上面的输出中,我们可以看到第 1 部分中的手册页文件位于 /usr/share/man/man1 目录下。同样,第 3 节中的手册页文件位于 /usr/share/man/man3 目录下。
8. 在 GNOME 帮助浏览器中查看手册页
到目前为止,我们仅在终端上显示所有手册页。不过,我们也可以使用 yelp 命令在 GNOME 帮助浏览器中查看它们。
yelp man:sleep
需要注意的是,此方法仅在 GNOME 桌面 GUI 可用时才有用。
9. 在 Web 浏览器中查看手册页
除此之外,我们还可以使用-H
选项在Web浏览器(例如Firefox浏览器)中查看手册页。
man -Hfirefox sleep
在某些系统上,我们可能会收到错误:
man: command exited with status 3: (cd /tmp/hmanQf1PgM && /usr/lib/man-db/zsoelim) | (cd /tmp/hmanQf1PgM && /usr/lib/man-db/manconv -f UTF-8:ISO-8859-1 -t UTF-8//IGNORE) | (cd /tmp/hmanQf1PgM && preconv -e UTF-8) | (cd /tmp/hmanQf1PgM && tbl) | (cd /tmp/hmanQf1PgM && groff -mandoc -Thtml)
要修复此错误,我们必须安装groff实用程序,这是一个排版系统,通常用于格式化和处理纯文本文档。
sudo apt install groff [On Debian, Ubuntu and Mint]
sudo yum install groff [On RHEL/CentOS/Fedora and Rocky/AlmaLinux]
sudo emerge -a sys-apps/groff [On Gentoo Linux]
sudo apk add groff [On Alpine Linux]
sudo pacman -S groff [On Arch Linux]
sudo zypper install groff [On OpenSUSE]
结论
在本指南中,我们讨论了如何查看 Linux 系统文档。我们探索了如何使用“man”命令在终端和 UI 工具中显示系统文档。
您知道还有其他方式访问 Linux 系统文档吗?请在下面的评论中告诉我们您的看法。