“CLI”是描述 shell 還是命令?
我使用術語 CLI 來描述命令,例如
ls
. 在更新我的有用命令列表時,我想知道一件事。例如,我們如何呼叫類似 shell 的程序mysql
?CLI 不代表Command Line Interface
orCommand Line Interpretor
嗎?將這個術語用於類似 shell 的程序不是更合乎邏輯嗎?經過一番研究,我更加困惑。一些網站使用 CLI 術語來描述命令,一些用於 shell,一些用於兩者,一些在 and 之間產生差異Command Line Interface
,Command Line Interpretor
還有一些更令人困惑。那麼,究竟什麼是 CLI?描述類似 shell 的程序的術語是什麼?還有一個命令程序?為什麼確切的定義如此模糊?為什麼不是每個人都同意這一點?
命令行界面 (CLI)以文本行的形式處理電腦程序的命令。處理介面的程序稱為命令行解釋器或命令行處理器。
CLI 一詞與**GUI(圖形使用者界面)**相對,後者表示使用者通過點擊式界面、圖示、視窗和其他圖形組件與系統互動的一種方式。
這兩個術語都非常廣泛。舉個例子,在 Linux/UNIX 世界中,shell(sh、bash、zsh、…)是 CLI,而 X Windows 環境(GNOME、KDE、…)是 GUI。Git 可以通過 CLI(
git
命令)和GUI 客戶端使用。為了回答您的問題,術語 CLI 可用於描述在終端上鍵入的命令以及 shell。如前所述,這是一個廣義的術語。
我認為沒有“確切”的定義。
通常在程序文件中,CLI 用於描述命令行介面的部分,因此您可以獲得有關參數和選項的幫助。
但這與外殼無關。您也可以在程序或配置文件中使用 CLI 界面,例如在 git 中、
pre-hook
在其他配置中等等。post-hook``run
否則,我們傾向於使用“終端”(或虛擬終端)或“控制台”作為界面鍵盤和(通常是黑色)螢幕。但這並不意味著殼。
還有外殼,如果我想強調外殼(通常在終端中執行)。Shell 是一個呼叫其他程序的程序(通常以提示的形式顯示它,並且通常帶有一些用於重定向和作業控制的語法,以及編輯您的實際命令行)。
以上是我的解釋,它似乎是最常用的一種(尤其是在舊程序上),但使用並不一致,正如您已經發現的那樣。