緯育 2026-0417

出自頂極製作所
於 2026年4月17日 (五) 09:29 由 Kuyohong留言 | 貢獻 所做的修訂

SHELL SCRIPT 基礎課程

本課程為以 Bash 為主的殼層腳本(Shell Script)與文字介面操作入門與進階實務,結合系統管理與自動化案例,從指令基礎、I/O 與重導向、變數與環境變數、引號與命令替換、條件判斷與迴圈,到陣列、函式、腳本模組化與參數/環境傳遞,逐步建立腳本設計能力。

課程強調以實務需求驅動學習:如多環境一鍵切換配置與下班後遠端自動掃描關機節能;並穿插常用網路/文字/排序/統計/時間指令複習與亂數應用(文字小遊戲)。同時說明 Shell 與作業系統、核心(Kernel)、硬體協作的完整流程,輔以 MP3 播放案例理解系統資源調度。提供虛擬化環境與多平台(macOS、Windows/WSL、VM)操作建議、教材與範例的取得方式(教室直接使用或家庭下載、WiFi 位址分享),以及作業繳交規範與評分策略。因課程模組與歷史課程部分重疊,將集中講解重點並對不熟悉處加強,3C 保證講完,3-2 即使未完整講授亦可憑已學指令自學完成。

Shell 與系統基礎

  • Shell 定義與職責:為文字型介面,負責語法解析、建立使用者環境(環境變數/區域變數)、將工作委派給作業系統,再由核心調度硬體並回傳結果訊息。
  • 三層架構與指令解析:Shell(上層)解析主指令、選項與引數,交由 OS/Kernel(中層)調度底層硬體;以 MP3 播放示例說明記憶體分配、檔案讀取、解碼庫載入、CPU 執行至音訊輸出。
  • 常見 Shell 與通用性:sh、bash、csh、tcsh、ksh、zsh 等;課程以 bash 為主,macOS 可切換 bash,Windows 建議使用 WSL 或虛擬機。
  • 檢查與設定 Shell:echo $SHELL 檢視;/etc/passwd 查/改預設 Shell;/etc/shells 列出已安裝 Shell。Bash 4.0 前有重大漏洞,建議更新至新版(範例 5.0.17 或以上)。
  • 工作/程序管理:前景/背景切換與持續化;screen 或 tmux 保持工作不中斷。

指令基礎與 I/O

  • 標準輸出與重導向:stdout 與 >、>> 等運用,結合各題情境練習;可同時輸出至終端與檔案。
  • 引號與命令替換:單引號不展開變數與命令;雙引號展開變數(通配符多不展開);反引號(`)或 $( ) 進行命令替換,將結果嵌入字串。
  • 指令查詢、設定與快捷鍵:熟悉查用法、選項;練習快捷鍵以提升效率。路徑(相對/絕對)與 alias 概念提供補充資源。
  • 檔案類型判別:Linux 以內容判別(file 等),對比 Windows 依副檔名,避免格式誤判。

變數、字串處理與資料結構

  • 變數與環境變數:建立、讀取、使用、unset。以環境變數作為資料傳遞機制可減少參數傳遞負擔。
  • 「變數的計算」=字串處理:關鍵字檢查、比對、替換、刪改等,用於資料清洗與條件觸發,非純數值運算。
  • 陣列:改善多值資料處理,縮短程式碼並提升可讀性。

腳本入門、流程控制與模組化

  • 第一支腳本(Hello World):建立語法與執行習慣,重視可讀性與流程。
  • 判斷式與迴圈:if/case 決策分支;for/while 迴圈設計與中斷條件,避免無窮迴圈(特別在雲端/遠端環境)。
  • 邏輯寫法風格:test/ vs []、-a/-o vs &&/|| 等,先選一種熟悉風格;遇表達困難可切換以簡化思路。
  • 函式:定義、呼叫、參數與回傳、提前返回;概念與 Python 相近、語法不同。
  • 腳本間呼叫與傳遞:多腳本拆分職責;以參數或預設環境變數(如 minet)傳遞資料,視可讀性與維運需求選用。

常用工具與亂數應用

  • 指令複習:網路/文字處理/排序/統計/時間等已學工具,持續整合於實作。
  • 亂數與文字小遊戲:擲骰子、丟硬幣、猜數字(1–100),以已學指令組合完成,強化控制流程與 I/O 綜合運用。

實務自動化案例

  • 多環境快速切換腳本:在不同公司/環境間一鍵切換網路與文字配置,提供選單(A、B、1、2、3 等),避免重複輸入 ifconfig/ip/帳號等,結合工具或自製指令組快速套用設定。
  • 節能關機自動化:對公司 Linux 主機以腳本排程(如 18:00)進行遠端掃描(ping 存活)、連線並下達 PowerOff,延遲再檢查確認關機;可視覺監控或離席後回來確認。亦評估商用集中管理軟體之可行性與成本。
  • 效益:節省人力、降低電費、提升 IT 管理效率;鼓勵擴充系統工具指令庫使腳本更精簡高效。

2026-0417-01.png