圖形介面 (GUI) 易上手,但**命令列 (CLI) 是 Linux 系統的靈魂**。所有系統管理、自動化腳本、容器操作、雲端部署、CI/CD 管線、故障排除的核心介面皆為 Shell。本文從命令本質、構成解析、高效學習路徑、查詢工具鏈,幫助初學者建立正確心智模型。
/bin/ls):編譯後的二進制程式,執行成為進程。cd, echo, export):Shell 進程內部函數,無 fork 開銷。alias ll='ls -l'):使用者自訂縮寫。type ls # 輸出: ls is aliased to 'ls --color=auto'
type cd # 輸出: cd is a shell builtin
type gcc # 輸出: gcc is /usr/bin/gcc
ls -l -a /home /bin
# ① ② ③ ④ ⑤
# ① 指令名
# ② ③ 選項/旗標 (短選項可合併 -la)
# ④ ⑤ 參數/引數 (路徑、檔名、字串...)
- (短) 或 -- (長) 開頭,控制程式行為開關。-- 表示選項結束,後續皆視為參數 (處理檔名以 - 開頭)。history 列出編號,!n 重跑第 n 條。man cmd (手冊)、info cmd (詳細)、cmd --help (速查)、whatis cmd (一句話摘要)、which/whereis cmd (定位路徑)。#!/bin/bash
# 每晚 00:00 下載頁面所有連結並備份
if [[ $(date +%H:%M) == "00:00" ]]; then
wget -r -l1 -np -nd -P /backup/links "https://example.com"
rsync -av /backup/links/ /mnt/usb/backup/
fi
命令即函數,透過管線 |、重導向 >、條件判斷、迴圈、函數,組合出複雜自動化流程。
| 指令 | 用途 |
|---|---|
man cmd | 標準手冊 (分區 1=用戶指令, 2=系統呼叫, 5=檔案格式...) |
info cmd | GNU Info 頁面,支援超連結導航 |
cmd --help | 快速參數列表 |
whatis cmd | 一行摘要 |
which cmd | PATH 中第一個可執行檔路徑 |
whereis cmd | 二進制、原始碼、手冊頁路徑 |
type cmd | 判斷類型 (alias/builtin/file/keyword) |