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

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

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

什么是Shell Builtins?

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

在许多现代shell中一个常见的示例是cd命令来更改目录。由于您将在单个会话中多次使用此命令,因此有必要将其加载到内存中以加快执行速度。

相关:更快的内存与更多的内存:哪种性能更好?

如何识别Shell内置命令?

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

 type -t commandname

…其中commandname是您要检查的命令的名称。

例如,检查cd命令是否是内置的shell:

 type -t cd

输出:

 builtin

如果输出显示的不是内建命令,例如filealias ,则该命令不是shell内建命令。

在Bash中,您还可以使用命令-v来确定命令是否是内置的Shell。如果输出是内置的,则输出将显示命令名称。例如,检查cd命令是否是内置的shell:

 command -v cd

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

Shell的手册页还将列出该Shell的内置命令。 Zsh将整个页面专用于buildins。考虑到功能丰富的zsh的存在,这不足为奇,这让很多高级用户都喜欢它。

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

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

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

不同的外壳具有不同的功能,因此具有不同的内置函数。选择正确的外壳取决于哪些功能对您很重要。