什麼是 CLI?
命令列介面 (CLI) 是一種軟體機制,允許您使用鍵盤與作業系統互動。另一種機制名為圖形使用者介面 (GUI),當前在所有應用程式和軟體系統中間頗為流行。您可以使用 GUI 進行視覺導覽,透過點按圖示和圖像執行操作。不過,針對系統管理任務,GUI 的效率不高,尤其在虛擬或遠端環境當中。藉助命令列介面,您可以使用文字命令以便在任何伺服器或電腦系統中進行設定、導覽或執行程式。為了加快系統互動,所有作業系統 (包括 Linux、macOS 和 Windows) 均提供 CLI。
CLI 有哪些優點?
命令列介面 (CLI) 提供諸多優點。
效率
可以使用 CLI 在一個文字命令中對多個檔案執行動作,而不必花時間尋找並按一下個別檔案。如果熟悉這些命令,則可以快速導覽並與系統互動。也可以建立在 CLI 中執行多條命令的指令碼,以自動執行單調或重複的任務。
遠端存取
與圖形應用程式相比,CLI 應用程式通常耗用更少的網路資源這使得 CLI 應用程式適用於硬體功能有限的系統或遠端伺服器環境。
即使是低頻寬連線,您也可以透過安全 Shell 提交命令,從遠端管理伺服器。這是管理伺服器和雲端執行個體的偏好方法,尤其是在沒有圖形介面的無周邊環境中。
故障診斷
對於開發人員和系統管理員而言,使用命令列介面是一項機具價值的技能,可促進其更深入的理解基礎系統。命令列介面也可讓您更精通各種工具和公用程式並改善錯誤管理。
例如,可以使用 CLI 查看系統日誌,並快速找到完整的錯誤訊息和偵錯資訊。也可以輕鬆地記錄文字式命令。這有助於確保可重製任務,並可更輕鬆地對未來的步驟進行疑難排解。
CLI 有哪些使用案例?
由於其具備多功能性,可以在許多使用案例中使用命令列介面 (CLI)。例如,如果您是系統管理員、軟體工程師、資料科學家或技術使用者,可以透過使用 CLI 取得更多控制權。以下給出一些範例。
系統管理
系統管理員使用 CLI 修正與系統相關的問題、檢查作業系統組態,以及變更或更新遠端電腦上的組態。他們可以大規模執行命令和控制系統。
軟體開發
軟體開發人員定期使用 CLI 工具來節省時間並簡化工作流程。例如,他們經常在工作期間存取第三方程式庫。如果開發人員使用 CLI 將參考新增至這些程式庫,則可以使用一條插入命令來執行此操作,而無需留下使用 GUI 搜尋程式庫的說明。這種方法為開發人員和未來的使用者節省與系統互動的時間。
雲端運算
在雲端環境中,CLI 對於管理虛擬機器、容器、雲端服務和伺服器組態至關重要。開發人員和管理員使用 CLI 與雲端供應商的 API 互動,自動化資源佈建,以及部署應用程式。
網路管理
網路管理員使用 CLI 設定路由器、交換器、防火牆和其他聯網裝置。如果您想要監控網路流量、疑難排解連線問題以及實作安全性政策,CLI 工具可提供幫助。滲透測試人員還使用命令列工具進行漏洞掃描、網路偵察和事件分析。
CLI 如何運作?
命令列介面 (CLI) 是以文字為基礎的介面,可以在其中輸入與電腦作業系統互動的命令。CLI 在預設 Shell 的幫助下進行操作,該 Shell 位於作業系統和使用者之間。
CLI Shell
Shell 指的是充當使用者和作業系統之間中介的程式。範例包括 Bash、cmd.exe、PowerShell 和其他用於更具體功能的 Shell。
Shell 負責處理各種任務,如命令剖析、環境管理和程序執行。Shell 也支援如下這些功能:
- 命令歷史記錄,可以在其中使用箭頭鍵或其他快速鍵存取先前輸入的命令
- 輸入和輸出重新導向
- Piping (可以在其中將一條命令的輸出連線為另一條命令的輸入) 和環境變數管理
此外,還可以自訂 Shell 環境。為此,可以設定環境變數、定義別名 (較長命令的快速鍵),以及建立用於完成自動化或重複任務的 Shell 指令碼。
命令的運作方式
當您在 CLI 中輸入命令時,會執行下列步驟:
- Shell 命令列解釋器剖析輸入的命令以了解其結構並分隔命令名稱、選項和參數。
- Shell 會在其可用命令清單中查找命令名稱。命令名稱代表使用者希望作業系統執行的動作。
- 它會搜尋系統的 PATH 變數 (系統檔案所在的目錄清單),以尋找與該命令相關聯的對應檔案。
- CLI Shell 呼叫適當檔案,並且傳遞任何指定的選項和引數作為輸入。
- 作業系統會執行必要的動作。
- 系統可能會產生輸出,如資訊性訊息、錯誤訊息、請求的資料或操作的結果。
- CLI Shell 會顯示輸出,因此您可以查看命令的結果。
CLI Shell 會以迴圈方式運作,等待您輸入另一條命令。與 CLI Shell 互動時,命令輸入、剖析、執行和輸出顯示的程序會重複執行。這為命令式互動提供了連續的介面。
如何在系統上開啟命令列介面?
每個主流作業系統存取命令列介面 (CLI) 的方式略有不同。
Windows
以下是在 Windows 8 或更新版本中開啟 CLI 的方式:
- 按 Windows 鍵和「S」
- 在搜尋欄位中鍵入「cmd」
- 在「命令提示字元」上按一下滑鼠右鍵並選取「以管理員身分執行」
- 現在就可以輸入命令提示字元
Mac
以下是在 Mac 上開啟 CLI 的方式:
- 找到 Finder 應用程式,該應用程式通常位於工具列上
- 瀏覽/應用程式/公用程式
- 選取「終端」
- 現在就可以輸入命令提示字元
Linux
Linux 提供存取 CLI 的簡單方式:使用快速鍵 CTRL+ALT+T。
或者,可以使用 ALT+F2,然後輸入「gnome-terminal」。
有哪些常見的命令列介面命令?
命令列介面 (CLI) 為不同類型的任務提供許多不同的命令。這些命令因作業系統而略有不同。接下來給出幾個不同的命令範例。
檔案系統命令
CLI 命令 |
Windows |
Linux |
變更目錄 |
cd |
cd |
最近的檔案 |
dir |
ls |
建立目錄 |
mkdir |
mkdir |
移除目錄 |
rmdir |
rmdir |
複製檔案 |
copy |
cp |
移動檔案 |
移動 |
mv |
重新命名檔案 |
ren |
mv |
顯示檔案 |
type |
cat |
刪除檔案 |
del |
rm |
變更許可 |
cacls/chmod |
chmod |
網路命令
CLI 命令 |
Windows |
Linux |
Ping |
ping |
ping |
追蹤路由 |
tracert |
traceroute |
網路組態 |
ipconfig |
ifconfig |
路由表 |
route |
route |
DNS 查詢 |
nslookup |
nslookup |
網路診斷 |
netsh |
netstat |
資訊命令
CLI 命令 |
Windows |
Linux |
列出程序 |
tasklist |
ps |
結束程序 |
taskkill |
kill |
系統資訊 |
systeminfo |
uname -a |
磁碟用量 |
wmic/fsutil |
df |
系統監控 |
perfmon |
top/htop |
有哪些 CLI 最佳實務?
雖然命令列介面 (CLI) 非常有用,並且可以提供遠端存取,但它需要您準確輸入並了解正確的命令。了解輸入的命令將確保您取得所需的結果。如果您不熟悉某條命令,則應該先研究它的功能,然後再將其輸入 CLI。同樣,請確保輸入的命令沒有任何變化或拼寫錯誤。
另一種重要的實務是限制任何非特殊權限使用者使用 CLI。僅將管理員權利授予信任方可限制不必要的系統互動。可以防止未經授權存取重要資源。
應該考慮採用的另一種安全性實務是將系統保持在最新狀態。更新版本錯誤修正、效能改善,以及更重要的安全性修補程式。將 CLI 保持在最新狀態可確保您的系統盡可能安全。最後,最好記錄所有 CLI 活動,以便偵測變更,發現可疑行為,並且在出現任何問題時進行疑難排解。
什麼是 AWS Command Line Interface?
AWS Command Line Interface (AWS CLI) 是 Amazon Web Services (AWS) 推出的開放原始碼工具。可以藉助命令列 Shell 中的命令,使用 CLI 與 AWS 服務互動。
只要最少量的組態,就可以使用 AWS CLI 執行與瀏覽器式 AWS 管理主控台提供的功能相當的命令。以下是可以從終端程式中的命令提示字元執行的動作:
- 使用常見的 Linus Shell 程式,例如 Bash、zsh 和 tcsh,在 Linux 或 macOS 中執行命令。
- 在 Windows 的命令提示字元或在 PowerShell 中執行命令。
- 透過 PuTTY、SSH 等遠端終端程式或藉助 AWS Systems Manager,在 Amazon Elastic Compute Cloud (Amazon EC2) 執行個體上遠端執行命令。
藉助 AWS CloudShell (一種基於瀏覽器的 Shell),您可以使用 AWS CLI 快速執行指令碼,使用服務 API 進行實驗,以及使用其他工具提高工作效率。CloudShell 圖示會出現在 CloudShell 可用的 AWS 區域。
立即建立帳戶,開始使用 AWS CLI。