跳转到内容

操作系统设计/命令行界面

来自维基教科书,开放的书籍,开放的世界

命令行界面或 CLI 是一种通过向计算机提供文本命令行(即字符序列)与计算机交互的方法,这些命令行可以来自键盘输入或脚本。它们最初是在 20 世纪 50 年代为通过电传打字机与计算机交互而开发的。它有时也被称为 CLUE,即命令行用户环境。有些人认为 CLI 实际上根本不是用户界面,而是一种一次输入一行的编程语言,与开发人员相比,对用户的用处非常小。事实上,命令行最常用于科学或工程环境中的编程。

在最简单的形式中,计算机显示一个提示符,用户在键盘上键入一个命令,并用一个键盘键(通常是 Enter 键)终止命令,然后计算机执行该命令。然后,计算机执行给定的命令。该术语通常与图形用户界面 (GUI) 相对比,在 GUI 中,命令通常是通过将指针(通过指向设备)移动到屏幕的区域并按下指向设备上的一个按钮(单击)来发出的。

实现这些界面的程序通常被称为命令行解释器。此类程序的示例包括各种不同的 Unix shell、VMS 的 DCL(数字命令语言)以及类似的设计,如 CP/M 和 DOS 的 command.com,它们都基于 DEC 的 RSX 和 RSTS 操作系统界面(它们也是命令行界面)。微软声称他们的下一个主要操作系统 Windows Vista 将包含一个名为 MSH(Microsoft Shell,代号 Monad)的增强型命令行界面,它将传统 Unix shell 的功能与面向对象的 .NET 框架相结合。

一些应用程序也提供命令行。CAD 程序 AutoCAD 就是一个突出的例子。另一个很好的例子是工程/科学数值计算软件包 Matlab,在该软件包中,几乎没有 GUI 存在或对于执行大多数计算来说是不必要的。在一些计算环境中,例如 Oberon 或 Smalltalk 用户界面,大多数出现在屏幕上的文本可用于发出命令。在命令行界面上给出的命令通常具有以下形式

[doSomething] [how] [toAFile]

[doSomething] [how] < [inputFile] > [outputFile]

doSomething 对应于动词,how to 对应于副词(它描述了在本例中应该如何执行命令 - 例如,它应该是特别“详细”的,还是特别“安静”的),而 toAFile 对应于应该对该命令运行的对象(通常是一个或多个文件)。第二个示例中的独立“>”是重定向字符,告诉操作系统(即通常是命令 shell 解释器)将先前命令(即“>”左侧的命令)的输出发送到其他地方(即,发送到“>”右侧命名的文件)。另一个常见的和重要的重定向字符是管道('|'),它告诉 CLI 将此命令的输出视为另一个命令的输入;这对于用户来说是一个非常强大的机制,如管道(Unix)和管道和过滤器中所述。

华夏公益教科书