前言:工欲善其事,必先利其器
Linux 系統管理的核心技能在於熟練駕馭命令列工具鏈。本文整理了涵蓋系統資訊、關機重啟、檔案目錄操作、搜尋、掛載、磁碟空間、用戶群組、權限屬性、壓縮打包、RPM/DEB/YUM/APT 套件管理、檔案查看、文字處理、字符轉換、檔案系統檢修、初始化、Swap、備份、光碟操作等 10 大類別、300+ 條高頻命令,並附上實戰場景註解,建議收藏作為日常運維速查手冊。

一、系統資訊查詢
| 命令 | 功能 | 備註 |
arch / uname -m | 顯示處理器架構 (x86_64, aarch64...) | 二者等效 |
uname -r | 顯示核心版本 | 如 5.15.0-91-generic |
dmidecode -q | 硬體元件詳細資訊 (SMBIOS/DMI) | 需 root |
hdparm -i /dev/sda | 磁碟架構特性 | |
hdparm -tT /dev/sda | 磁碟讀取效能測試 | 緩存/直接讀取速度 |
cat /proc/cpuinfo | CPU 詳細資訊 | 核心數、旗標、主頻 |
cat /proc/meminfo | 記憶體使用詳情 | 含可用、緩存、Swap |
cat /proc/version | 核心編譯版本細節 | GCC 版本、編譯時間 |
lspci -tv | PCI 設備樹狀列表 | 顯卡、網卡、控制器 |
lsusb -tv | USB 設備樹狀列表 | |
date / cal 2024 | 日期/日曆 | |
date -s "2024-12-31 23:59" | 設定系統時間 | 需 root |
hwclock -w | 系統時間寫入 BIOS | |
二、關機、重啟、登出
| 命令 | 功能 |
shutdown -h now / init 0 / telinit 0 | 立即關機 |
shutdown -h 22:30 | 定時關機 |
shutdown -c | 取消定時關機 |
shutdown -r now / reboot | 立即重啟 |
logout | 登出當前 Shell |
三、檔案與目錄操作核心 30 條
| 操作 | 命令範例 | 說明 |
| 切換目錄 | cd /home, cd .., cd - (上次目錄) | |
| 顯示路徑 | pwd | |
| 列表 | ls -lh (詳細+人類可讀), ls -a (含隱藏) | |
| 樹狀結構 | tree / lstree | 需安裝 tree 套件 |
| 建立目錄 | mkdir -p /tmp/dir1/dir2 | -p 遞迴建立 |
| 刪除檔案 | rm -f file1 | -f 強制不提示 |
| 刪除目錄 | rm -rf dir1 | 遞迴強制刪除 |
| 重命名/移動 | mv dir1 new_dir | |
| 複製檔案 | cp file1 file2 | |
| 複製目錄 | cp -a /src /dst | -a 保留屬性、遞迴 |
| 軟連結 | ln -s /target link_name | 跨檔案系統 |
| 硬連結 | ln /target link_name | 同檔案系統,inode 計數+1 |
| 修改時間戳 | touch -t 202412312359 file1 | 格式 YYYYMMDDhhmm |
| 檔案類型 | file file1 | MIME 類型判斷 |
| 編碼轉換 | iconv -f GBK -t UTF-8 in.txt > out.txt | 常用中文編碼互轉 |
| 批次縮圖 | find . -maxdepth 1 -name '*.jpg' -exec convert {} -resize 80x60 thumbs/{} \; | 需 ImageMagick |
四、檔案搜尋三劍客
| 工具 | 適用場景 | 經典範例 |
| find | 即時遍歷、複雜條件、配合 -exec 執行動作 | find / -name '*.log' -size +100M -mtime +30 -delete (刪除 30 天前超過 100M 的日誌) |
| locate | 資料庫索引查詢、極快、需 updatedb 更新 | locate '*.conf' | grep nginx |
| which / whereis | 二進制/手冊/源碼路徑查詢 | which nginx, whereis nginx |
五、檔案系統掛載與磁碟空間管理
常用掛載場景
# 一般分區
mount /dev/sda1 /mnt/data
# Windows 分區
mount -t vfat /dev/sda1 /mnt/win # FAT32
mount -t ntfs-3g /dev/sda1 /mnt/win # NTFS (需 ntfs-3g)
# USB 隨身碟
mount /dev/sdb1 /mnt/usb
# ISO 鏡像
mount -o loop system.iso /mnt/iso
# 網路共享 (SMB/CIFS)
mount -t cifs //server/share /mnt/share -o username=user,password=pass,vers=3.0
# NFS
mount -t nfs server:/export /mnt/nfs
卸載技巧
umount /mnt/data # 正常卸載
umount -l /mnt/data # 惰性卸載 (忙碌時)
fuser -km /mnt/data # 強制殺掉佔用進程後卸載
空間分析
df -hT # 掛載分區使用率、檔案系統類型
du -sh /var/log # 目錄總大小
du -h --max-depth=1 /home # 即層子目錄大小
ls -lhS # 當前目錄按大小排序
六、用戶與群組管理
# 建立群組/用戶
groupadd developers
useradd -m -g developers -G docker,sudo -s /bin/bash -c "Dev User" devuser
passwd devuser
# 修改屬性
usermod -aG sudo devuser # 追加補充群組
usermod -d /new/home -m devuser # 遷移家目錄
chage -E 2025-12-31 devuser # 設定帳號過期
# 刪除
userdel -r devuser # -r 同時刪家目錄
groupdel developers
# 檢查完整性
pwck # /etc/passwd
grpck # /etc/group
七、檔案權限與屬性 (ACL、chattr)
基礎權限
chmod u=rwx,g=rx,o= file1 # 符號模式
chmod 750 file1 # 八進制
chown user1:group1 file1 # 擁有者:群組
chown -R user1:group1 /dir # 遞迴
特殊位
chmod u+s /usr/bin/prog # SUID: 執行者獲得擁有者權限 (如 passwd)
chmod g+s /shared/team # SGID: 目錄下新檔繼承群組
chmod o+t /tmp # Sticky: 僅擁有者/root 可刪除檔案
擴展屬性
chattr +i /etc/passwd # 不可變: 甚至 root 也無法修改/刪除
chattr +a /var/log/syslog # 僅允許追加寫入
chattr +c /bigfile # 核心透明壓縮 (需檔案系統支援)
lsattr /etc/passwd # 查看屬性
八、打包壓縮解壓縮全格式
| 格式 | 壓縮 | 解壓縮 | 備註 |
| .tar | tar -cvf arch.tar dir/ | tar -xvf arch.tar | 不壓縮,純歸檔 |
| .tar.gz / .tgz | tar -czvf arch.tgz dir/ | tar -xzvf arch.tgz | gzip,速度快、兼容好 |
| .tar.bz2 | tar -cjvf arch.tbz2 dir/ | tar -xjvf arch.tbz2 | bzip2,壓縮率高 |
| .tar.xz | tar -cJvf arch.txz dir/ | tar -xJvf arch.txz | xz,壓縮率最高、慢 |
| .zip | zip -r arch.zip dir/ | unzip arch.zip | 跨平台交換首選 |
| .rar | rar a arch.rar dir/ | unrar x arch.rar | 專有格式,需非自由軟體 |
| .gz / .bz2 / .xz | gzip file / bzip2 file / xz file | gunzip file.gz / bunzip2 file.bz2 / unxz file.xz | 單檔壓縮 |
實戰技巧:tar -cvf - /src | ssh user@host "tar -xvf - -C /dst" (SSH 管道流式傳輸保留權限);tar --exclude='*.log' -czvf src.tgz src/ 排除模式。
九、套件管理四大體系
RPM 系 (RHEL/CentOS/Fedora/Rocky/Alma)
rpm -ivh pkg.rpm # 安裝
rpm -Uvh pkg.rpm # 升級/安裝
rpm -e pkg_name # 移除
rpm -qa | grep kernel # 查詢已安裝
rpm -ql pkg_name # 列出檔案
rpm -qc pkg_name # 列出配置檔
rpm -qf /etc/nginx/nginx.conf # 反查檔案屬於哪包
rpm2cpio pkg.rpm | cpio -idmv # 不安裝解包
YUM / DNF (高層解決依賴)
yum install nginx
yum update
yum remove nginx
yum list installed
yum search keyword
yum clean all
DEB 系 (Debian/Ubuntu/Kali/Mint)
dpkg -i pkg.deb
dpkg -r pkg_name
dpkg -l | grep nginx
dpkg -L pkg_name
dpkg -S /usr/bin/nginx
APT (高層)
apt update
apt upgrade
apt install nginx
apt remove nginx
apt search keyword
apt autoremove
apt clean
十、檔案查看與文字處理
| 命令 | 用法 |
cat / tac | 正向/反向輸出全檔 |
head -n 20 / tail -n 20 file | 前/後 20 行 |
tail -f /var/log/syslog | 即時追蹤日誌 |
less / more | 分頁閱讀 (less 支援向上翻頁) |
grep -rn "error" /var/log/ | 遞迴搜尋關鍵字 |
sed -i 's/old/new/g' file | 原地替換 |
awk '{print $1,$3}' file | 提取第 1、3 欄 |
sort file | uniq | 去重排序 |
cut -d: -f1 /etc/passwd | 以 : 分隔取第 1 欄 |
十一、檔案系統檢修與初始化
# 檢查/修復 (必須在卸載或唯讀掛載下)
fsck.ext4 -f /dev/sda1 # 強制檢查 ext4
fsck -t ext4 /dev/sda1 # 自動識別類型
e2fsck -j /dev/sda1 # ext3 日誌檢查
fsck.vfat /dev/sdb1 # FAT32
badblocks -v /dev/sda1 # 掃描壞軌
# 格式化建立檔案系統
mkfs.ext4 /dev/sda1 # 預設參數
mkfs.ext4 -L "DATA" /dev/sda1 # 設定卷標
mkfs.vfat -F 32 /dev/sdb1 # FAT32
mkswap /dev/sda2 # 建立 Swap
swapon /dev/sda2 # 啟用 Swap
十二、備份與同步核心工具
# rsync 同步 (生產環境首選)
rsync -avz --delete /src/ /dst/ # 本地鏡像
rsync -avz -e ssh /src/ user@host:/dst/ # 推送到遠端
rsync -avz -e ssh user@host:/src/ /dst/ # 從遠端拉取
rsync -avz --exclude='*.tmp' --exclude='.git' /src/ /dst/
# tar 管道備份
tar -czf - /home | ssh user@host "cat > backup.tar.gz"
ssh user@host "cat backup.tar.gz" | tar -xzf - -C /restore
# dd 磁碟級備份 (慎用,需卸載)
dd if=/dev/sda of=/dev/sdb bs=4M status=progress # 磁碟克隆
dd if=/dev/sda | gzip -c | ssh user@host "dd of=sda.img.gz"
# MBR 備份/恢復
dd if=/dev/sda of=mbr.bin bs=512 count=1
dd if=mbr.bin of=/dev/sda bs=512 count=1
十三、光碟與多媒體操作
# 燒錄
cdrecord -v -eject -data /path/file.iso # 資料光碟
cdrecord -v -audio track*.wav # 音樂光碟
# 建立 ISO
mkisofs -V "LABEL" -r -J -o /path/image.iso /src # Rock Ridge + Joliet
# 掛載 ISO
mount -o loop image.iso /mnt/iso
# 音軌抓取
cdparanoia -B # 全部軌道
cdparanoia "3" # 第 3 軌
結語:命令是骨架,場景是靈魂
熟記 300 條命令不如理解「為什麼在這個場景用這個參數」。建議:
- 建立個人
~/.cheat/ 目錄,按場景存放常用命令片段。
- 善用
man、info、tldr (社群簡化手冊) 深入細節。
- 將重複操作封裝為 Shell 腳本/Ansible Playbook,實現「基礎設施即代碼」。
- 關注新工具:
fd (現代 find)、ripgrep (極速 grep)、bat (高亮 cat)、dust (圖形化 du)、btop (現代 top)。
工具永遠在進化,解決問題的工程思維才是系統管理員的核心競爭力。