Logo
Section 1 / 2

手册页系统与命令帮助

学习如何使用命令帮助来获取各种命令的更多详细信息。

检查点

手册页系统与命令帮助

学习如何使用命令帮助来获取各种命令的更多详细信息。

我们现在已经熟悉了用于导航文件系统的命令。每个命令都有多个选项和参数,我们仅介绍了最常用的那些。如果需要本课程未涵盖的罕见功能,这时就需要查阅官方文档。

所有现代操作系统和应用程序都配有文档。然而,在使用图形界面时,我们很少需要文档,因为大多数图形元素本身已经足够直观易懂。因此,大多数个人电脑用户并不关心文档。

而在使用命令行界面(CLI)时,了解软件可用功能的唯一途径就是阅读文档。除此之外,没有其他方式能快速提供提示。使用 CLI 工具时,掌握其基本用法至关重要,忽视这一点可能导致数据丢失或损坏。

man 页面系统的起源

早期的 Unix 系统使用纸质文档。这种方式既不方便也不高效,尤其当文档数量迅速增长并超过单本书的容量后,问题更加严重。为解决这一问题,Unix 开发者引入了名为 man 页面(manual page 的缩写)的系统。通过该系统,我们可以快速查找所需信息。它包含了操作系统功能以及所有已安装应用程序的相关说明。

man 页面系统,也称为 man 命令,是一个集中式的文档访问入口。除了作为参考资料外,Unix 中的每个程序还自带关于自身的简要信息。例如,Bash 解释器拥有自己的文档系统,称为 help。

命令 help

假设我们想获取 Bash 内置命令的完整列表,可以不带任何参数运行 `help` 命令。

请在下方终端中运行本课讨论的命令。

Help icon
Help icon
Terminal

我们看到的是 Bash 自身执行的所有命令的列表。如果某个命令不在这个列表中,Bash 就会调用 GNU 工具或其他程序来执行它。

举个例子:cd 命令出现在 help 列表中,这意味着 Bash 会直接执行它,而无需调用外部程序。现在假设我们输入 find 命令,它不在 help 列表中,因此 Bash 会在磁盘上查找名为 find 的可执行文件。如果找到,Bash 就会运行该文件。

变量

Bash 在哪里查找用于执行命令的文件?Bash 维护着一个路径列表,用于搜索工具和程序。这个列表由一个名为 PATH 的 环境变量 存储。变量 是内存中具有名称的存储区域。如果我们用机器码编写程序并希望访问内存区域,就必须指定其地址。而变量是编程语言的一种机制,允许我们使用变量名代替复杂的内存地址。这样就不必记住那些冗长的数字地址。

Bash 拥有大约一百个环境变量,它们保存影响解释器行为的数据。其中大部分是系统设置信息。我们将在后续课程中更详细地学习 Bash 变量。

不带参数运行 env 工具,它会显示当前 Bash 使用的所有环境变量。

我们可以将变量想象成一个带有名称的值。例如,我们可以说:“现在的时间是 12 小时。” “现在的时间” 是变量名,其值为 “12 小时”。计算机将这个值存储在内存中的某个地址,但我们不知道具体地址。不过,我们可以向计算机询问“现在的时间”变量的值,它会返回“12 小时”。这就是变量的工作原理。

echo 命令用于输出字符串,也可以显示变量的值。例如,以下 echo 命令会打印 PATH 变量的内容:

1echo "$PATH"

为什么要在变量名前加上美元符号 $?echo 命令接收输入字符串并原样输出。例如,下面这行 echo 命令会输出文本 “123”:

1echo 123

在单词前加上美元符号表示这是一个变量名。Bash 会以不同于普通单词的方式处理它。当 Bash 在命令中遇到变量名时,会检查其变量列表。如果该名称存在,Bash 会将变量的值插入到命令中;否则,会插入一个空字符串。

将变量名用双引号括起来是一种良好实践。这样做可以避免潜在错误。例如,Bash 会将变量名替换为其值,而该值可能包含控制字符。解释器会对这些字符进行处理,导致插入后的值与内存中存储的原始值不同。这种差异可能导致程序行为异常。使用双引号可以防止 Bash 对字符串进行额外处理。

Quiz

单选题

(对或错)Bash 存储数千个变量。

1 / 3

文件系统

信息系统与简要帮助