
上篇 講了 Zsh 配置和 alias 分類。這篇講真正上 server 的時候你需要知道的指令——不是每天都用,但出事的時候能自己查、自己修,不用每次都等後端或 SRE 來救你。
先講結論
前端工程師上 server 最常做的事就三個:查磁碟滿了沒、追 log 找錯誤、傳檔案。把這三件事搞熟,你在 on-call 的時候就不會只能乾瞪眼。
磁碟:Server 掛掉的頭號原因
Server 跑到磁碟滿了,比你想的常見得多:
df -h # 整體磁碟使用量
du -sh * # 當前目錄各資料夾大小
du -sh * | sort -rh | head -10 # 找出最肥的前 10 個通常兇手不是程式碼,是 log 檔。某個瘋狂寫 log 的服務把 /var/log 塞爆,整台機器就死了。先用 df -h 確認哪個 partition 爆了,再用 du 追蹤到底是哪個資料夾在吃空間。
Log 追蹤:Debug 的第一步
# 即時追蹤(部署完必開)
tail -f /var/log/app.log
# 搜尋特定錯誤(前後 3 行 context)
grep -n -C 3 "TypeError" /var/log/app.log
# 遞迴搜尋整個資料夾
grep -r "keyword" /path/to/foldertail -f 大概是 debug 時最常用的指令。部署完開一個 terminal 盯著 log,第一時間就能抓到報錯。如果你的 shell 有裝 rg(ripgrep),搜尋速度比 grep 快一個數量級——上篇的 alias 已經設好了。
這裡有個小技巧:出問題的時候先別急著看 code,先看 log。很多時候錯誤訊息已經把答案寫在那裡了,只是你沒去讀。
系統監控
free -m # 記憶體使用量(MB)
uname -a # 系統基本資訊
nproc # CPU 核心數上篇已經把 top 映射到 htop,所以直接打 top 就是更好的介面。
SSH:少打很多字的方法
上篇有 SSH alias(sshgen、sshlist),但真正省時間的是 ~/.ssh/config:
Host my-server
HostName 192.168.1.100
User deploy
IdentityFile ~/.ssh/id_work
Port 22
設好之後,ssh my-server 就能連——不用每次都打 ssh deploy@192.168.1.100 -i ~/.ssh/id_work。上篇的 Git Clone Wrapper 也是基於這個機制。
SCP 檔案傳輸
# 本機 → 遠端
scp local-file.txt user@server-ip:/remote/path/
# 遠端 → 本機
scp user@server-ip:/remote/file.txt ./local-path/如果設好了 SSH config,可以直接用 Host 別名:scp file.txt my-server:/tmp/。
Windows 對應指令
如果你的開發機是 Windows:
netstat -ano | findstr :8080 # 查 Port
taskkill /F /PID <PID> # 砍 Process不過說真的,Windows 上建議裝 WSL,然後用 Linux 指令。人生苦短,少跟 PowerShell 纏鬥。
設計重點回顧
回顧上下兩篇,整套 shell 配置的設計邏輯:
- 模組化 —
.zshrc只載入,新工具加.zsh檔就好 - 安全預設 —
rm/mv/cp加-i,防手殘 - 現代工具 —
fd/rg/htop取代老三樣,速度碾壓 - 多身份管理 — Git Clone Wrapper + SSH config,clone 時選身份
終端機配置就像健身——投入的時間不會馬上看到效果,但持續做六個月後你會覺得之前沒配的自己是個野蠻人。