Bash(Bourne-Again SHell) 是 GNU 計畫開發的 Unix Shell,名稱雙關自 Stephen Bourne 於 1978 年開發的 Bourne Shell (sh)。Brian Fox 於 1987 年創建,1990 年起由 Chet Ramey 維護至今。Bash 是絕大多數 Linux 發行版與 macOS(v10.4 以前)的預設 Shell,亦移植至 Windows(Cygwin、WSL)、MS-DOS(DJGPP)等平台,提供 POSIX 相容的命令列環境。
[[ =~ ]])。&、jobs、fg/bg)、信號處理(trap)。complete、compgen 打造豐富的 CLI 體驗。2014 年 9 月揭露的 Shellshock,源於 Bash 在解析環境變數中的函數定義時,會繼續執行函數定義後的任意程式碼。攻擊者可透過 CGI、SSH、DHCP、OpenVPN 等服務注入惡意環境變數,達成遠端程式碼執行(RCE)。
env x='() { :;}; echo vulnerable' bash -c "echo test"
若輸出包含 vulnerable,表示受影響,需立即更新。
sudo yum update -y bashsudo apt update && sudo apt install --only-upgrade bashmod_security 規則或 WAF 暫時阻擋惡意 User-Agent/Referer 模式。單字 bash 本意為「猛擊、嚴厲批評」,但此處純屬巧合,Bash = Bourne-Again SHell。
set -o vi:啟用 vi 編輯模式shopt -s globstar:支援 ** 遞迴匹配PROMPT_COMMAND:自訂動態提示字元declare -A:關聯陣列(Bash 4+)Bash 不只是命令列介面,更是自動化運維、CI/CD 腳本、容器入口點的核心引擎。深入掌握其特性與安全歷史,能讓你在 Linux 世界走得更遠、更穩。