是否所有命令shell脚本都有一个通用名称?

Wan*_*der 3 unix linux shell terminology

我经常发现自己需要描述一个可以在所有主要shell解释器上执行的简单Linux命令(ksh,bash,sh),但我不知道如何指出.一些例子是:ls,cd,或cp.

为了具体,我想说的是没有特别提到任何shell.在SQL上下文中,这很简单:"SQL"是指所有类型(Oracle,MSSQL等)之间的共享标准.所以似乎相信这个术语是"shell",但即使它要求你使用更具体的shell标签,暗示没有可行的共享功能.

是否有Unix/Linux命令shell之间所有共享语法的名称,或者它根本不存在?

mkl*_*nt0 7

ls,cd和,cp都是POSIX调用实用程序的实例.

实用程序可以是外部的(文件系统中的可执行文件)或内置的(shell内部).

一些实用程序既可以作为常规 shell内置,也可以作为外部实用程序(例如test).
此外,还有一些特殊的内置实用程序(例如.),它们仅在shell内部.

从更广泛的角度来看,您可以将它们称为POSIX/[标准] Unix [命令行]实用程序.

POSIX要求将哪些实用程序作为标准的一部分滚动到Utilities链接页面上的项目符号点. (必须存在于构象系统中)以及它们必须支持的具体选项和它们必须表现出的行为.

实际平台通常是其中的超集 - 无论是提供非标准实用程序还是标准实用程序都支持其他非标准选项.

要引用标准化的shell语言语法,您可以使用术语[POSIX] shell命令语言,虽然是简写sh/bin/sh经常使用,基于类Unix系统上的默认shell只能实现POSIX-的事实 -强制性功能(仅此而已).


请注意,内置实用程序是特定 shell的概念(与POSIX兼容的shell必须支持POSIX shell语言规范中指定的选项和行为).
当没有涉及shell时,无法直接调用它们,例如使用时xargs,或find ... -exec.

相比之下,外部实用程序独立于shell存在,即使它们通常是从shell 调用的.