經過前面六天的實戰,我們已經熟悉了 Linux 的目錄導覽、權限控管、網路檢測指令以及日誌分析。然而,在真實的系統維運或資安檢測中,我們不可能每次都手動一行一行敲打這些指令。
今天,我們迎來了第一階段的最終任務:將零散的指令整合,撰寫出你的第一支自動化 Bash 腳本 (Script)。
這支腳本將能一鍵幫我們完成本機 IP 查詢與外部網路連線測試,這也是所有網管與資安人員必備的自動化起手式!
nano)在 Linux 中有許多純文字編輯器(如 vim、nano),對於剛脫離圖形化介面的新手來說,nano 的操作最為直覺。
【實作練習】
在終端機輸入 nano check_net.sh,建立並進入編輯器,接著輸入以下腳本內容:
#!/bin/bash
echo "=============================="
echo " 自動化網路狀態檢查腳本啟動"
echo " 執行時間:$(date)"
echo "=============================="
echo "[1] 本機 IP 資訊簡要:"
ip -4 a | grep inet
echo ""
echo "[2] 測試對外連線 (Ping Google DNS):"
ping -c 3 8.8.8.8
echo "=============================="
echo " 檢查完畢!"

腳本解析:
#!/bin/bash:這被稱為 Shebang,放在腳本的第一行,用來告訴系統「請使用 bash 環境來執行這份檔案」。echo:將後面的文字或變數內容印在螢幕上。$(date):自動抓取並印出系統當下的時間。ip a 與 ping 指令。chmod)還記得我們在 Day 3 學到的權限管理(The rwx System)嗎?在 Linux 的安全機制中,剛建立好的純文字檔案,預設是「不具備執行權限」的。我們必須親自賦予它 x (Execute) 權限,系統才允許它作為程式運作。
【實作練習】
使用 ls -l 觀察權限,接著透過 chmod 755 修改權限,最後再次觀察變化:

畫面解析:
執行 chmod 755 check_net.sh 後,檔案的權限從 -rw-rw-r-- 變成了 -rwxr-xr-x(擁有者具備讀寫與執行權限)。同時,你可以發現 check_net.sh 的字體顏色變成了綠色,這在終端機中通常代表這是一個「可執行檔」。
萬事俱備,我們準備收割成果。在 Linux 環境下,為了避免誤觸系統內建指令,要執行當前目錄下的腳本檔案,必須在檔名前面明確加上 ./(代表目前目錄)。
【實作練習】
在終端機輸入:
./check_net.sh

畫面解析:
按下 Enter 的瞬間,系統便全自動幫我們印出了華麗的分隔線、當下時間、擷取過後的本機 IP 資訊,並且自動發送 3 個 Ping 封包給 Google DNS 並回傳結果。未來如果網路發生異常,我們只需要下達 ./check_net.sh 一行指令,就能在一秒內完成基礎診斷!
恭喜大家完成了鐵人賽的第 7 天!在過去這一個禮拜,我們從零開始架設了 Ubuntu 虛擬機,熟悉了黑底白字的終端機,掌控了檔案權限,並實作了網路測試、套件安裝與日誌監聽,最後更成功將這些技能融合成了自動化腳本。
我們已經打造出一個堅固且趁手的實戰道場(Sandbox)了!
從明天 [Day 8] 開始,我們將正式邁入第二階段:「網路協定與封包擷取基礎」。我們將探討網路世界的根本大法——OSI 模型與 TCP/IP 協定,並準備召喚本系列最強大的分析神器 Wireshark,帶你看見肉眼看不見的網路封包!我們明天見。