什么是 Shell 内置命令以及如何识别它们?

在 Linux 上,每当用户启动 shell 时,都会将几个命令加载到内存中。 这些命令是 shell 的一部分,也称为 shell 内置命令。

在本文中,我们将详细讨论 shell 内置命令,以及如何检查 Linux 命令是否为 shell 内置命令的指南。

什么是 Shell 内置函数?

顾名思义,Shell 内置命令是内置在 shell 中的命令。 这是因为从 RAM 运行常用命令比在硬盘驱动器上查找它们更快。 Shell 开发人员认为这是一个很好的折衷方案,因为与磁盘相比,从内存加载数据更快。

普通的 example 在许多现代 shell 中,使用 cd 命令来更改目录。 因为您将在单个会话中多次使用此命令,所以将其加载到内存中以加快执行速度是有意义的。

如何识别 Shell 内置命令?

要确定命令是常规命令还是 shell 内置命令,请使用 类型 命令。 检查 Linux 命令是否为内置 shell 的基本语法是:

type -t commandname

…在哪里 命令名 是您要检查的命令的名称。

为了 example检查 cd 命令是否是内置的 shell:

type -t cd

输出:

builtin

如果输出显示除 内置, 如 文件 或者 别名,则该命令不是 shell 内置命令。

在 Bash 中,您还可以使用 命令 -v 识别命令是否是内置的 shell。 如果它是内置命令,输出将显示命令名称。 为了 example检查 cd 命令是否是内置的 shell:

command -v cd

或者,您也可以使用 哪一个 命令。 此命令将告诉您命令的绝对路径名,或者它是 shell 内置还是别名。 which 命令可能是一个内置的 shell,具体取决于您使用的 shell。

shell 的手册页还将列出 shell 的内置命令。 Zsh 致力于 整个页面 到内置。 这并不奇怪,因为 zsh 的功能如此丰富,这也是许多高级用户喜欢它的原因。

因为不同的 shell 有不同的内置函数,所以可能是 shell 内置函数的通用实用程序也可能作为系统上的独立可执行文件存在。 如果要使用常规命令,只需使用其绝对路径名。

现在您知道常规命令和 Shell 内置命令之间的区别了

即使是比原始 Unix 时代的小型机强大得多的低端现代计算机,shell 开发人员也可以使用更多内置函数来加速系统。 如果您需要某些选项,您可以在使用常规命令的同时利用 shell 内置命令。

不同的 shell 有不同的特性,因此也有不同的内置函数。 选择正确的外壳是哪些功能对您很重要的问题。