命令行界面
編輯命令行界面(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開發人員用于調試目的以及作弊或跳過游戲的某些部分。
內容由匿名用戶提供,本內容不代表www.gelinmeiz.com立場,內容投訴舉報請聯系www.gelinmeiz.com客服。如若轉載,請注明出處:http://www.gelinmeiz.com/131944/