CentOS 和 Ubuntu 作為兩種主流的 Linux 發行版,分別基於 Red Hat(RPM 體系)和 Debian(DEB 體系),在系統管理命令上存在顯著差異。本文檔從技術視角詳細對比兩者的常用命令,涵蓋套件管理、服務管理、網路配置、防火牆、使用者管理、檔案系統和日誌管理,旨在幫助管理員和開發者快速上手並在兩種系統間高效切換。
1. 套件管理
套件管理是 CentOS 和 Ubuntu 的核心差異之一,CentOS 使用 yum 或 dnf(CentOS 8 及以上),Ubuntu 使用 apt。
| 功能 | CentOS (RPM 體系) | Ubuntu (DEB 體系) |
|---|---|---|
| 更新套件列表 | sudo yum check-update 或 sudo dnf check-update | sudo apt update |
| 安裝套件 | sudo yum install <package> 或 sudo dnf install <package> | sudo apt install <package> |
| 移除套件 | sudo yum remove <package> 或 sudo dnf remove <package> | sudo apt remove <package> |
| 搜尋套件 | sudo yum search <keyword> 或 sudo dnf search <keyword> | sudo apt search <keyword> |
| 更新所有已安裝套件 | sudo yum update 或 sudo dnf upgrade | sudo apt upgrade |
| 清理快取 | sudo yum clean all 或 sudo dnf clean all | sudo apt clean |
| 查看已安裝套件 | rpm -qa 或 yum list installed 或 dnf list installed | dpkg -l 或 apt list --installed |
注意:
- CentOS 8 及以上版本預設使用
dnf,其語法與yum類似但效能更優。 - Ubuntu 的
apt是對apt-get和apt-cache的高級封裝,適合互動式使用。
2. 服務管理
CentOS 7 和 Ubuntu 16.04 及以上版本均採用 systemd 作為服務管理框架,因此命令高度一致。
| 功能 | CentOS (Systemd) | Ubuntu (Systemd) |
|---|---|---|
| 啟動服務 | sudo systemctl start <service> | sudo systemctl start <service> |
| 停止服務 | sudo systemctl stop <service> | sudo systemctl stop <service> |
| 重啟服務 | sudo systemctl restart <service> | sudo systemctl restart <service> |
| 查看服務狀態 | sudo systemctl status <service> | sudo systemctl status <service> |
| 啟用開機自動啟動 | sudo systemctl enable <service> | sudo systemctl enable <service> |
| 停用開機自動啟動 | sudo systemctl disable <service> | sudo systemctl disable <service> |
| 列出所有服務 | systemctl list-unit-files --type=service | systemctl list-unit-files --type=service |
注意:
- CentOS 6 及更早版本使用
SysVinit,命令為service <service> start/stop/restart。 - Ubuntu 在 14.04 及更早版本部分使用
Upstart,需注意歷史版本相容性。
3. 網路管理
網路管理命令因配置方式不同而異,CentOS 依賴 NetworkManager 或手動配置文件,Ubuntu 則使用 Netplan(18.04 及以上)。
| 功能 | CentOS | Ubuntu |
|---|---|---|
| 查看 IP 位址 | ip addr 或 ifconfig | ip addr 或 ifconfig |
| 重啟網路服務 | sudo systemctl restart NetworkManager | sudo systemctl restart networking 或 sudo netplan apply |
| 查看網路介面狀態 | nmcli device status | nmcli device status |
| 配置靜態 IP | 編輯 /etc/sysconfig/network-scripts/ifcfg-<interface> | 編輯 /etc/netplan/01-netcfg.yaml,然後 sudo netplan apply |
注意:
- Ubuntu 18.04 及以上使用
Netplan,配置文件為 YAML 格式,需注意縮進。 - CentOS 的網路配置文件路徑可能因版本而異,需檢查具體介面檔案。
4. 防火牆管理
CentOS 預設使用 firewalld,Ubuntu 使用 ufw(簡化的 iptables 前端)。
| 功能 | CentOS (Firewalld) | Ubuntu (UFW) |
|---|---|---|
| 啟動防火牆 | sudo systemctl start firewalld | sudo ufw enable |
| 停止防火牆 | sudo systemctl stop firewalld | sudo ufw disable |
| 查看防火牆狀態 | sudo firewall-cmd --state | sudo ufw status |
| 開放端口 | sudo firewall-cmd --add-port=<port>/tcp --permanent | sudo ufw allow <port> |
| 關閉端口 | sudo firewall-cmd --remove-port=<port>/tcp --permanent | sudo ufw delete allow <port> |
| 重新載入防火牆配置 | sudo firewall-cmd --reload | sudo ufw reload |
注意:
firewalld的--permanent選項確保規則持久化,需配合--reload生效。ufw簡單易用,適合輕量級配置,但功能較firewalld稍弱。
5. 使用者與權限管理
使用者管理命令在兩種系統中基本一致,但使用者刪除命令略有不同。
| 功能 | CentOS | Ubuntu |
|---|---|---|
| 新增使用者 | sudo adduser <username> | sudo adduser <username> |
| 刪除使用者 | sudo userdel -r <username> | sudo deluser --remove-home <username> |
| 修改使用者密碼 | sudo passwd <username> | sudo passwd <username> |
| 新增使用者至群組 | sudo usermod -aG <group> <username> | sudo usermod -aG <group> <username> |
注意:
userdel -r和deluser --remove-home都會刪除使用者家目錄,需謹慎操作。- 群組管理命令完全相同,
-aG確保追加群組而非覆蓋。
6. 檔案系統管理
檔案系統管理命令一致,但預設檔案系統可能不同(CentOS 傾向 xfs,Ubuntu 傾向 ext4)。
| 功能 | CentOS | Ubuntu |
|---|---|---|
| 查看磁碟空間 | df -h | df -h |
| 查看目錄大小 | du -sh <directory> | du -sh <directory> |
| 掛載檔案系統 | mount /dev/sdX /mnt | mount /dev/sdX /mnt |
| 卸載檔案系統 | umount /mnt | umount /mnt |
注意:
- 掛載操作需確保目標設備和掛載點存在。
- 建議使用
lsblk檢查設備狀態。
7. 日誌管理
日誌管理命令基本一致,但日誌檔案路徑不同。
| 功能 | CentOS | Ubuntu |
|---|---|---|
| 查看系統日誌 | sudo journalctl 或 tail -f /var/log/messages | sudo journalctl 或 tail -f /var/log/syslog |
| 查看登入日誌 | last | last |
注意:
- CentOS 的
/var/log/messages可能因配置而變為/var/log/secure。 - Ubuntu 的
/var/log/syslog是預設系統日誌路徑。
總結
| 方面 | CentOS | Ubuntu |
|---|---|---|
| 套件管理 | yum/dnf (RPM) | apt (DEB) |
| 服務管理 | systemctl (CentOS 7+),舊版 service | systemctl (16.04+),舊版 Upstart |
| 防火牆 | firewalld | ufw |
| 網路配置 | /etc/sysconfig/network-scripts/ | /etc/netplan/ (18.04 及以上) |
通過掌握這些差異,管理員和開發者可快速適應 CentOS 和 Ubuntu 的系統管理需求,優化運維效率。