香港服務器 Linux 常用命令與新手必學的終端機運維管理
第一章:為什麼新手要先學「命令」而不是先看教程
很多人第一次接觸香港的 Linux 服務器(無論是雲主機、機房物理機,還是替客戶維運的站點)時,最大的困難不是「不知道怎麼做」,而是「不知道下一步要檢查什麼」。終端機的命令就像工具箱:你不需要一次學會全部,但你要能在遇到問題時快速找到證據,並用最短的步驟把狀況說清楚。
以運維的現實來看,問題通常不會以「你該輸入哪個指令」的形式出現。更多時候它是:網站不能打開、SSH 連不上、CPU 一直飆高、磁碟快滿、服務反覆重啟、日誌裡出現特定錯誤。你必須先能讀狀態、再能看差異、最後才能決定修復策略。這個流程靠的就是一套「常用且可複用」的命令組合。
本文會以「新手必學」為核心,不追求炫技,只聚焦在常見場景。每個命令我都會用簡單語句說清楚:它在幹什麼、你什麼情況該用、常見錯誤是什麼、以及搭配的下一步怎麼走。你看完後應該能把排錯路徑跑一遍:從確認系統在線 → 確認網路與端口 → 確認資源與負載 → 確認服務與程序 → 確認日誌與錯誤 → 確認磁碟與檔案 → 最後再做修復。
第二章:登入後第一件事——環境與自我保護
你以為登入後能立刻開始部署,其實運維的第一優先級是先確保「你不會把自己鎖在外面」,以及「你知道自己在哪裡、用的是什麼環境」。下面這組命令很適合新手每天都用。
1)確認系統基本資訊:uname、cat、hostnamectl
uname -a 用來看核心版本與架構。
hostnamectl(在 systemd 系統常見)用來看主機名、作業系統識別。
cat /etc/os-release 用來快速辨識發行版(Ubuntu、Debian、CentOS、Rocky 等)。
為什麼要做這些?因為不同發行版的包管理器和服務管理器可能不一樣;而錯用指令會浪費時間。尤其在香港的維運現場,常見情況是多個客戶混用不同系統,新手若不習慣先確認環境,容易把查錯路徑走偏。
2)確認登入位置與使用者:whoami、pwd、id
whoami 看你現在用的是哪個帳號。
id 看 UID、GID 與群組。
pwd 確認你目前在哪個目錄。新手常見失誤是:在錯目錄下執行刪檔或移動檔案,造成服務配置遺失。
3)更新終端體驗:history、~、TAB
history 可以查看你之前輸入過的命令。這是降低犯錯率的好方法:你可以回顧自己做過什麼。
同時要養成習慣:Tab 補全檔名、~ 代表家目錄。你會發現速度和準確度提升非常明顯。
4)避免自己把自己弄出門:sudo 與權限預判
新手最常遇到的是「命令提示權限不足」。你要先學會辨識:你是不是該用 sudo,還是只是路徑不對。
例如你想讀取需要權限的檔案,可能會用到 sudo cat /path/to/file。但注意:並不是所有命令都能用 sudo 亂套。例如編輯檔案,最好用正確方式修改配置,而不是直接在沒有備份的情況下強行改。
第三章:檔案與目錄——運維的地基
你在伺服器上做的幾乎所有事情都會落回「檔案」:配置檔、腳本、證書、日誌、備份。新手最需要的不是記憶力,而是形成肌肉記憶。
1)列出與理解目錄:ls、tree、pwd
ls 基本功。
常用參數:-l(長格式,顯示權限、擁有者、大小、時間)、-h(人類可讀)、-a(顯示隱藏檔)。
例如:ls -lah 會顯示可讀的大小與隱藏檔資訊。
tree 能快速理解目錄結構。若系統沒有安裝,可先用包管理器補上;新手在排查時會很有用。
2)查看檔案內容:cat、less、head、tail、grep
cat 適合看短檔;長檔不建議用它直接噴滿螢幕。
less 適合讀長內容,支援向上向下翻。
head 看前幾行,tail 看後幾行,尤其是日誌。
最常用的組合是:tail -f /var/log/xxx.log,用於即時觀察。
grep 用來在檔案中搜尋關鍵字。新手可以先記住這些:grep -i(不分大小寫)、grep -n(顯示行號)、以及管道搭配。
例如:cat /path/file | grep -i error。你也可以直接用 grep -i error /path/file,更乾淨。
3)檔案操作:cp、mv、rm、mkdir、touch
cp 複製、mv 移動或改名、rm 刪除。
新手要格外注意 rm -f 這種強制參數,因為「不確認」很容易造成不可逆的錯誤。你至少要先理解:刪除後通常很難找回。
mkdir -p 可以在父目錄不存在時自動建立路徑。
touch 可建立空檔或更新時間戳。
建議養成備份習慣:例如修改配置前先複製一份,例如 cp nginx.conf nginx.conf.bak。在香港維運場景中,客戶變更要求常常是「出問題要回滾」,沒有備份你會很被動。
4)檔案權限與擁有者:chmod、chown、chgrp
權限是 Linux 的核心。新手最常遇到兩種情況:服務啟動失敗,或某個程序無法讀寫檔案。
chmod 改變模式(讀寫執行)。
chown 改變擁有者。
chgrp 改變群組。
你不需要在入門階段就把 8 進位權限背到滾瓜爛熟,但你要能看懂 ls -l 的輸出,知道哪一類權限在影響。
例如目標檔案被限制導致服務無法讀,常見原因是擁有者或群組不對;若是腳本執行失敗,常見原因則是執行權限缺失。
第四章:網路連通性與端口——先確認「外面看得到你」
很多香港的故障都不是真正的「服務壞了」,可能是網路、DNS、或防火牆設定。新手可以用下面的命令建立基本判斷。
1)確認網卡與 IP:ip、ifconfig(可選)
ip a 可以看到網卡、IPv4/IPv6、狀態。
用這個你能判斷服務綁定的 IP 是否正確,例如網站只監聽在內網 IP,外部連不上。
2)檢查路由:ip route
ip route 能看 default gateway 和路由表。若你發現 Ping 會飄但路由不正確,這個指令通常能提供線索。
3)測試連線:ping、traceroute
ping 測試連通性。
traceroute(或 tracepath)用於看路由路徑。新手遇到跨境或跨網段問題,這會比猜更有效。
注意:部分機器不回 ICMP,所以 ping 不通不一定代表「全面不可用」,仍需看端口。
4)端口探測:curl、nc(或 telnet)、ss
對 HTTP/HTTPS,curl 是最直接的。
例如:curl -I http://localhost 看回應頭;curl -v http://IP:PORT 看更詳細的連線過程。
對非 HTTP 服務,nc(netcat)可以測端口。
例如:nc -vz IP PORT。
若你想確認本機哪些端口在聽:ss -lntp(listening、tcp、numeric、process)。
這在排查「服務看起來起來了但外面連不上」時非常常用。你可以用 ss 確認是否監聽在正確端口,以及監聽 IP 是不是對外可用。
5)DNS 與域名:dig、nslookup(可選)
如果是域名解析問題,新手常做錯的是一直重啟服務。其實先檢查 DNS 才是更有效的路徑。
dig 域名 能查解析結果與過程。你也可以用 nslookup,看同樣資訊。
第五章:系統狀態與資源——CPU、記憶體、負載是不是異常
當網站慢、服務卡住或頻繁超時,新手首先要問:系統資源是否撐爆?
1)即時概覽:top、htop(可選)
top 是最常見的即時監控。
你要觀察的是:CPU 是否長時間高位、記憶體是否接近耗盡、是否有大量 swap、load average 是否持續飆高。
htop 比較直觀,但不一定每台都有。
2)更精準的統計:free、vmstat、iostat
free -h 看記憶體與 swap。
vmstat 1(每秒刷新)可以看進程狀態、IO 等指標。
iostat 用於磁碟 IO;如果系統延遲高但 CPU 不高,IO 可能成為真正瓶頸。
3)磁碟容量與檔案系統:df、du
df -h 查看磁碟分區使用率。新手常見事故是根分區滿了導致服務寫日誌失敗。
du -sh /path/* 或 du -h --max-depth=1 用來找大目錄。排查磁碟滿時,路徑定位比盲目清理安全。
4)看佔用:lsof、fuser(可選)
當你要釋放端口或確認檔案被哪些程序佔用,lsof 很有用。
例如:lsof -i :PORT。
新手不必一開始就全懂,但至少要知道「端口不是沒有使用,只是你不知道被哪個進程占著」。
第六章:程序與服務管理——你在管理的其實是進程
很多問題的根源在服務管理或程序狀態:服務掛了、反覆重啟、卡死、沒有正確載入配置。
1)查看正在跑的:ps、pgrep
ps aux 看所有進程。
ps -ef 也是常見用法。
pgrep -af 關鍵字 可以用關鍵字快速定位程序。
2)啟動、停止、重啟:systemctl
對大多數現代發行版,服務管理用 systemctl。
常用:
systemctl status 服務名:看狀態systemctl start 服務名:啟動systemctl stop 服務名:停止systemctl restart 服務名:重啟systemctl enable 服務名:開機自動啟動systemctl disable 服務名:關閉開機自動啟動
新手要特別注意:重啟不等於載入配置一定成功。很多服務需要先做配置檢查,再重啟。
例如 Nginx 或某些應用通常有自己的配置檢查命令(依你部署的軟體而定)。即使沒學到所有軟體指令,也要記得「先檢查配置語法,再重啟」是運維常識。
3)看服務失敗的原因:systemctl --no-pager -l
systemctl status 有時候只顯示簡短內容。你可以用更完整的輸出方式查看錯誤訊息。
另外,真正的關鍵通常在日誌(下一章會講),不要只看狀態就下結論。
4)停止卡住的程序:kill
kill 是最後手段之一。新手容易把 kill 當作第一選擇,但實務上你更應該先確認「為什麼卡住」:是資源不夠?是死鎖?是外部依賴失敗?
常見做法:
- 先用
kill -TERM PID(正常終止,給程序收尾時間) - 必要時才用
kill -KILL PID(強制結束)
強制殺進程可能造成資料損壞或服務狀態不一致,尤其是數據庫類型更要謹慎。
第七章:日誌與排錯——把混亂變成可驗證的證據
你可能會發現:同一個現象(例如 502、超時、連線失敗),原因可以有十幾種。如果沒有日誌,你只能靠猜;有日誌,你才知道「錯在系統哪一層」。
1)查看日誌檔:tail、less、head
最常見路徑:
/var/log/syslog或/var/log/messages/var/log/auth.log(登入與認證)/var/log/nginx/(若使用 Nginx)/var/log/apache2/(若使用 Apache)
新手可以從兩個角度讀:一是最後發生了什麼,用 tail -n 200;二是即時觀察,tail -f。
2)搜尋關鍵字:grep + tail
例如你懷疑錯誤與某個時間段有關,可以先 tail 再 grep。
或直接:grep -i 'error' /var/log/syslog。
如果日誌很大,建議縮小範圍再搜,避免耗時。
3)systemd 日誌:journalctl
在 systemd 系統,很多服務的日誌會在 journal 內。journalctl 是新手一定要掌握的工具。
常用:
journalctl -u 服務名:看特定服務journalctl -xe:顯示最近錯誤訊息(對排錯很省時間)journalctl --since '1 hour ago':看最近一小段時間journalctl -f -u 服務名:即時追蹤
當你遇到服務「反覆重啟」,journalctl -u 通常會告訴你為什麼。
4)logrotate:日誌不會永遠長大
新手有時會被大檔案嚇到,但在正常系統中通常會有 logrotate 週期管理。你可以檢查日誌是否循環,並確認沒有因為權限或磁碟問題導致輪轉失敗。
當你看到磁碟越來越滿,先想的是:是日誌暴增?還是輪轉失敗?這兩件事用 df -h + 日誌檢查就能快速分辨。
第八章:磁碟、備份與回滾——新手最容易忽略,但最致命
運維不是只會修問題,還要能承擔錯誤。你需要把「可回到原狀」當作流程的一部分。
1)確認磁碟健康與掛載:lsblk、mount
lsblk 可以看分區、掛載點與設備名稱。當你覺得磁碟怪怪的,先看是否有多出設備或掛載異常。
mount | grep /path 或直接 mount 可查看掛載狀態。
2)找到大檔與刪除策略:du + rm
磁碟滿時最重要是「找到罪魁禍首」。使用 du -sh 找大目錄,找到後再決定清理或移動。
例如某些應用會產生日誌或緩存,若清理有風險,最好先停服務或移走到備份位置。
3)備份與時間戳:cp、tar
檔案備份新手可以先用簡單方式:
cp file file.bak- 或用
tar打包目錄
以運維習慣來看,最好帶上時間戳,例如 tar -czf app_$(date +%F_%H%M).tar.gz /path/app。這能避免覆蓋到上一次備份。
4)回滾配置:不要只記得改了什麼
你要能解釋:你改動的是哪個檔案、改了哪些行、為什麼這樣改、以及回到哪一版能恢復服務。
實務中,回滾快的人通常不是更聰明,而是更有流程。
第九章:安全與日常自檢——讓服務不靠運氣
新手剛開始時常以「把服務跑起來」為優先,但在香港維運環境,安全措施往往會決定你能不能長期穩定服務。
1)確認 SSH:sshd 與防火牆
先確認 SSH 服務狀態:
systemctl status ssh 或 systemctl status sshd(取決於系統)。
再確認本機是否真的在監聽:
ss -lntp | grep ssh 或直接查看 22 port 的監聽。
最後才是防火牆規則(UFW、firewalld 或雲端安全組),不然你會誤以為是服務壞了。
2)權限與最小原則:不要亂用 root
新手常見問題是一直用 root 登入。這其實會增加事故風險。更好的做法是使用普通帳號 + 必要時用 sudo。
同時也要避免「配置檔被任何人可寫」。服務配置通常要保護在合理權限下。
3)定期檢查失敗狀態:systemctl --failed
systemctl --failed 可以列出失敗的服務。這是日常自檢的一步:你不需要等到客戶抱怨,先在內部把問題扼殺。
4)基本連線測試:自測與外測
你要做兩件事:
- 內部測:用
curl或本地端口檢查確定服務能回應 - 外部測:從另一台機器或外部環境測端口連線與回應
很多事故是外部不通但本機通,或反過來。只做其中一種,你就會誤判。
第十章:把命令串成「新手可用」的排錯流程
學命令最怕只會單點使用。真正能讓你提高效率的是:你能把命令串起來,形成可複用的排錯路徑。下面給你一套通用流程,新手可以直接照做。
情境 A:網站連不上(或回應異常)
- 確認系統是否正常:
top、free -h、df -h - 確認網路與監聽:
ss -lntp看端口是否在監聽 - 本機測試 HTTP:
curl -v http://localhost:PORT - 查服務狀態:
systemctl status 服務名 - 看日誌:
journalctl -u 服務名 -xe或tail -n 200 /var/log/xxx.log - 若是 Nginx/反向代理,優先檢查其配置並看錯誤日誌
這套流程的核心是先排除「資源爆了」或「根本沒有監聽」,再看服務與日誌。你會比直接重啟快得多,也少做無效操作。
情境 B:SSH 連不上
- 在可用的前提下先確認對方網路:是否安全組/防火牆放行、是否 IP 限制
- 在機器上檢查監聽:
ss -lntp | grep :22 - 檢查 SSH 服務:
systemctl status ssh(或 sshd) - 看日誌:
journalctl -u ssh -xe或tail -n 200 /var/log/auth.log - 若改過設定(例如允許的用戶、Port、PermitRootLogin),優先回滾或核對配置
SSH 問題最怕「你以為壞了,其實是你改了防火牆或配置」。因此順序要保護你自己:先看監聽,再看服務,再看日誌。
情境 C:磁碟滿了,服務開始報錯
- 查看容量:
df -h - 找大目錄:
du -h --max-depth=1 /或針對應用目錄 - 查看日誌暴增:
tail -n 200 /var/log/xxx.log - 確認是否輪轉失敗:檢查 logrotate 相關
- 先止血:刪除/移動不必要的暫存或過期日誌(必要時停服務)
- 再修原因:例如更新 logrotate 設定、修復服務異常產生日誌
新手在這個情境常犯錯是直接 rm 一堆檔案。更穩的做法是先定位大頭,再決策刪除範圍,避免刪到服務需要的檔案或導致配置錯亂。
第十一章:新手最該記住的「命令清單」
如果你只想先記一批高頻命令,那請至少掌握以下。它們覆蓋了運維的主要層:系統、檔案、網路、資源、程序、服務與日誌。
1)系統與環境
uname -a、cat /etc/os-release、hostnamectl、whoami、pwd、history
2)檔案與內容
ls -lah、cd、cat、less、head、tail -n 200、tail -f、grep -i、cp、mv、rm、mkdir -p、chmod、chown
3)網路與端口
ip a、ip route、ping、curl、ss -lntp、dig(可選)
4)資源與磁碟
top、free -h、vmstat(可選)、df -h、du -sh、iostat(可選)
5)程序與服務
ps aux、pgrep -af(可選)、systemctl status、systemctl restart、systemctl --failed
6)日誌
journalctl -u、journalctl -xe、tail -f /var/log/xxx、grep(搜尋日誌關鍵字)
第十二章:最後,如何把學習變成能力而不是背誦
真正的運維能力不是知道每條命令的所有參數,而是你遇到問題時能快速把資訊拼起來,做出合理判斷並降低風險。
建議你用三個方法把本文內容落地:
- 建立自己的排錯筆記:每次遇到故障,寫下你用了哪些命令、得到什麼結果、最後怎麼解決。過幾次後你會發現筆記變成模板。
- 在測試環境練習:例如自己開一個容器或小服務,學會看監聽端口、看日誌、做配置錯誤的回滾。等到真實環境才不會慌。
- 固定順序:先確認資源與連通,再確認監聽與服務,再看日誌,最後才動配置。順序一固定,你就不容易走彎路。
香港的服務器維運,常常同時面對網路延遲、客戶需求變更、以及多套系統並存。你越早建立「可重複的判斷流程」,越能把時間花在真正的修復上,而不是反覆試錯。
當你能用一套命令組合,把問題從模糊變成清楚,從清楚變成可回滾,你就完成了新手到維運實用者的第一跨步。

