命令行界面
编辑命令行界面(CLI)以文本行的形式处理计算机程序的命令。处理接口的程序称为命令行解释器或命令行处理器。操作系统在shell中实现了一个命令行界面,用于交互式访问操作系统功能或服务。从1960年代中期开始,这种访问主要由计算机终端提供给用户,并在整个1970和1980年代继续用于VAX/VMS、Unix系统和个人计算机系统,包括DOS、CP/M和苹果DOS。
今天,许多用户依赖于图形用户界面和菜单驱动的交互。但是,某些编程和维护任务可能没有图形用户界面,可能仍使用命令行。
命令行界面的替代品包括基于文本的用户界面菜单(例如,IBMAIXSMIT)、键盘快捷键和以指针为中心的各种桌面隐喻(通常由鼠标控制)。这方面的示例包括MicrosoftWindows、DOSShell和鼠标系统PowerPanel。命令行界面通常在终端设备中实现,这些终端设备也能够使用光标寻址在显示屏上放置符号的面向屏幕的基于文本的用户界面。
带有命令行界面的程序通常更容易通过脚本实现自动化。
许多软件系统实现了用于控制和操作的命令行界面。这包括编程环境和实用程序。
与图形用户界面的比较
编辑与图形用户界面相比,命令行界面需要更少的系统资源来实现。由于命令选项在每个命令行中以几个字符给出,因此有经验的用户通常会发现这些选项更易于访问。通过行编辑和存储常用序列的历史机制简化了重复性任务的自动化;这可能会扩展到可以采用参数和变量选项的脚本语言。可以保留命令行历史记录,允许查看或重复命令。
命令行系统可能需要纸质或在线手册供用户参考,尽管“帮助”选项通常提供对命令选项的简明回顾。命令行环境可能不提供图形增强功能,例如GUI中的不同字体或扩展编辑窗口。与图形用户界面的图标和下拉菜单相比,如果不重复参考手册,新用户可能很难熟悉所有可用的命令和选项。
命令行界面的类型
编辑操作系统命令行界面
操作系统(OS)命令行界面通常是随操作系统提供的不同程序。实现这种文本接口的程序通常称为命令行解释器、命令处理器或shell。
命令行解释器的示例包括OpenVMS和RSX-11中DEC的DIGITAL命令语言(DCL)、各种Unixshell(sh、ksh、csh、tcsh、zsh、Bash等)、CP/M的CCP、DOS'COMMAND.COM,以及OS/2和WindowsCMD.EXE程序,后者主要基于DEC的RSX-11和RSTS命令行界面。在大多数操作系统下,可以用替代方案替换默认的shell程序;示例包括DOS的4DOS、OS/2的4OS2和Windows的4NT/TakeCommand。
尽管术语“shell”通常用于描述命令行解释器,但严格来说,“shell”可以是构成用户界面的任何程序,包括完全面向图形的程序。例如,默认的WindowsGUI是一个名为EXPLORER.EXE的外壳程序,如WIN.INI配置文件的SHELL=EXPLORER.EXE行中定义的那样。这些程序是shell,但不是CLI。
应用程序命令行界面
应用程序(与操作系统相反)也可能有命令行界面。
应用程序可能不支持、不支持或全部支持这三种主要类型的命令行界面机制:
- 参数:大多数操作系统支持在程序启动时将附加信息传递给程序的方法。当从OS命令行shell启动程序时,与程序名称一起提供的附加文本将传递给启动的程序。
- 交互式命令行会话:启动后,程序可以为操作员提供一种以文本形式输入命令的独立方式。
- 进程间通信:大多数操作系统支持进程间通信方式(例如,标准流或命名管道)。来自客户端进程的命令行可以通过这些方法之一重定向到CLI程序。
一些应用程序仅支持CLI,向用户显示CLI提示并在输入命令行时对其进行操作。其他程序同时支持CLI和GUI。在某些情况下,GUI只是一个单独的CLI可执行文件的包装器。在其他情况下,程序可能会提供CLI作为其GUI的可选替代项。CLI和GUI通常支持不同的功能。例如,数值分析计算机程序MATLAB的所有功能都可以通过CLI获得,而MATLABGUI仅公开部分功能。
早期的Sierra游戏,例如前三个King'sQuest游戏(1984-1986),使用来自内部命令行的命令在图形窗口中移动角色。
其他命令行界面
编辑命令行提供程序和用户之间的接口。从这个意义上说,命令行是对话框的替代品。编辑器和数据库提供了一个命令行,备用命令处理器可以在其中运行。另一方面,命令行上可能有选项,这会打开一个对话框。最新版本的“TakeCommand”具有此功能。DBase使用对话框构建命令行,在使用前可以进一步编辑。
BASIC、diskpart、Edlin和QBASIC等程序都提供命令行界面,其中一些使用系统shell。Basic以8位Intel计算机的默认接口为模型。计算器可以作为命令行或对话框界面运行。
Emacs以minibuffer的形式提供了一个命令行界面。可以使用Emacs标准文本编辑支持输入命令和参数,输出显示在另一个缓冲区中。
有许多文本模式游戏,例如Adventure或King'sQuest1-3,它们依赖于用户在屏幕底部输入命令。一个人通过键入“getring”或“look”等命令来控制角色。程序返回一个文本,描述角色如何看待它,或如何使动作发生。文字冒险《银河系漫游指南》是一部基于道格拉斯·亚当的同名小说的互动小说,是一款电传打字风格的命令行游戏。
这些接口中最值得注意的是标准流接口,它允许将一个命令的输出传递给另一个命令的输入。文本文件也可以用于任何目的。这提供了管道、过滤器和重定向的接口。在Unix下,设备也是文件,因此用于stdin、stdout和stderr的shell的正常文件类型是tty设备文件。
另一个命令行界面允许外壳程序启动帮助程序,以启动文档或启动程序。该命令由shell在内部处理,然后传递给另一个程序以启动文档。Windows和OS/2的图形界面在很大程度上依赖于传递给其他程序的命令行——控制台或图形,然后它们通常在不显示用户控制台的情况下处理命令行。
OS/2E编辑器和其他一些IBM编辑器等程序可以处理通常用于shell的命令行,输出直接放在文档窗口中。
Web浏览器的URL输入字段可用作命令行。它可用于“启动”网络应用程序、访问浏览器配置以及执行搜索。被称为“互联网命令行”的Google将在检测到已知格式的搜索参数时执行特定域的搜索。无论搜索是从浏览器字段还是在Google的网站上触发,都存在此功能。
有一些JavaScript库允许在浏览器中编写命令行应用程序作为独立的Web应用程序或作为更大应用程序的一部分。这种网站的一个例子是DuckDuckGo的CLI界面。还有基于Web的SSH应用程序,允许从浏览器访问服务器命令行界面。
PC上的许多视频游戏都具有通常称为控制台的命令行界面。它通常由游戏开发人员在开发过程中使用,并且由mod开发人员用于调试目的以及作弊或跳过游戏的某些部分。
内容由匿名用户提供,本内容不代表vibaike.com立场,内容投诉举报请联系vibaike.com客服。如若转载,请注明出处:https://vibaike.com/131944/