“CLI”是描述 shell 还是命令?

“CLI”是描述 shell 还是命令?

我使用术语 CLI 来描述诸如ls.在更新有用命令列表时,我对一件事感到好奇。mysql例如,我们如何调用类似 shell 的程序? CLI 不是代表Command Line Interface或 吗Command Line Interpretor?对于类似 shell 的程序使用这个术语不是更符合逻辑吗?经过一番研究,我更加困惑了。有些网站使用 CLI 术语来描述命令,有些网站使用 shell 术语,有些网站同时使用两者,有些网站在Command Line Interface和之间进行了区分Command Line Interpretor,有些网站甚至更令人困惑。

所以呢确切地是 CLI?描述类 shell 程序的术语是什么?还有命令程序?为什么确切的定义如此模糊?为什么不是每个人都同意这一点?

答案1

维基百科有一个很好的定义

A命令行界面 (CLI)以文本行的形式处理计算机程序的命令。处理接口的程序称为命令行解释器或者命令行处理器

术语 CLI 是用来反对GUI(图形用户界面)它表示用户通过点击界面、图标、窗口和其他图形组件与系统交互的方式。

这两个术语的范围都非常广泛。举个例子,在 Linux/UNIX 世界中,shell(sh、bash、zsh 等)是 CLI,而 X Windows 环境(GNOME、KDE ​​等)是 GUI。 Git 可以通过 CLI(git命令)和一个图形用户界面客户端

为了回答您的问题,术语 CLI 可用于描述在终端以及 shell 上键入的命令。如前所述,这是一个广泛的术语。

答案2

我认为没有“精确的“ 定义。

通常在程序文档中,CLI 用于描述命令行界面的部分,因此您可以获得有关参数和选项的帮助。

但这与外壳无关。您也可以在程序或配置文件中使用 CLI 界面,例如您在 git 中获取pre-hook并在其他配置中等。post-hookrun

否则,我们倾向于使用“终端”(或虚拟终端)或“控制台”作为界面键盘和(通常是黑色)屏幕。但这并不意味着有壳。

还有 shell,如果我想强调 shell(通常在终端中运行)。 Shell 是一个调用其他程序的程序(通常用提示符显示它,并且通常带有一些用于重定向和作业控制的语法,以及编辑实际的命令行)。

以上是我的解释,它似乎是最常用的一种(尤其是在较旧的程序上),但正如您已经发现的那样,用法并不一致。

答案3

CLI 是一个历史概念。
在 70 年代和 80 年代,CLI 无处不在。它只是描述一个与命令交互的界面。
shell、bash 或 zhs 是 CLI 的子集,CLI 是一个更通用的术语。
大多数路由器都附带一个 CLI,但它们都不是,并且有大量程序都有自己的 CLI。
因此 CLI 是一个通用术语,shell 是所有现有 CLI 的子集。

相关内容