如何在 Linux 中有效使用手册页
良好的文档对于任何软件来说都是绝对必要的,这一原则也适用于Linux 命令。
许多 Linux 发行版和开源社区都提供了可在互联网上轻松访问的综合文档。
该文档提供了有关 Linux 命令的深入信息、说明和解释,确保用户拥有所需的资源以有效利用和理解可用的命令行工具。
然而,有些情况下,简洁的文档足以快速完成特定任务。在这种情况下,我们可以依靠通过“ man ”命令访问的内置系统文档。
“ man ” 命令是“ manual ”的缩写形式,用作访问系统参考手册的界面。这些手册也称为“ man pages ”,其中包含各个命令的详细文档。
例如,mkdir、rmdir、dd等命令的手册页提供了有关其各自功能和用法的详细文档。
$ man mkdir $ man rmdir $ man dd
人们应该熟悉“man”命令才能从终端有效地使用 Linux。
man 命令语法
man命令的语法很简单:
$ man [OPTIONS] ... ...
就像任何其他 Linux 命令一样,一对方括号([])
代表可选参数,而一对尖括号(<>)
代表强制参数。
man 命令的部分
除了 shell 命令之外,Linux还支持其他编程结构,例如系统调用、库调用、特殊文件等。为了更好地组织,每个编程结构都归入一个专门的组,称为部分。
因此让我们简单讨论一下每个 man 部分:
- 第 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'
键退出手册页窗口并返回到终端。
如果你仔细观察,就会发现在左上角和右上角,命令名后面的括号里有一个数字,这个数字代表了 man 页面的章节。
例如,在上面的输出中,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 部分看到有关睡眠的简明信息。
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 浏览器中查看手册页
除此之外,我们还可以使用在网络浏览器(例如Firefox-H
浏览器)中查看手册页的选项。
$ 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 系统文档的其他方法吗?请在下面的评论中告诉我们您的观点。