整理自一線運維經驗,涵蓋檔案操作、系統監控、網路管理、權限控制、磁碟管理、封裝部署等核心場景。每條指令附帶參數解析與實用場景。
| # | 指令 | 用途與關鍵參數 |
|---|---|---|
| 1 | ls -lrt | 按時間倒序列出,最新檔在最後 |
| 2 | cd - | 快速切回上一個目錄 |
| 3 | tree -L 2 | 顯示目錄樹,-L 限制深度 |
| 4 | find . -type f -name "*.log" -mtime +7 -delete | 刪除 7 天前的 .log 檔 |
| 5 | find . -type f -size +100M -exec ls -lh {} \; | 尋找大於 100MB 的檔案並顯示大小 |
| 6 | rsync -avzP --delete src/ dest/ | 同步目錄,顯示進度,刪除目標多餘檔 |
| 7 | tar zcvf backup.tar.gz --exclude="*.tmp" dir/ | 打包排除特定模式 |
| 8 | du -h --max-depth=1 | sort -hr | 各目錄大小人類可讀格式並倒序 |
| 9 | ln -sfn /new/target /path/link | 強制更新軟連結目標 |
| 10 | chattr +i /etc/important.conf | 設定不可變屬性,root 也無法刪改 |
| 11 | lsattr /etc/important.conf | 查看檔案屬性 |
| 12 | stat file.txt | 查看 inode、存取/修改/狀態變更時間 |
| # | 指令 | 用途 |
|---|---|---|
| 13 | grep -rn "pattern" /path --include="*.conf" | 遞迴搜尋特定副檔名內含關鍵字 |
| 14 | awk -F: '{print $1}' /etc/passwd | 以 : 分欄,印出第 1 欄(所有用戶名) |
| 15 | sed -i 's/old/new/g' file.txt | 就地替換檔案內容 |
| 16 | cut -d: -f1,3 /etc/passwd | 切分欄位輸出第 1,3 欄 |
| 17 | sort -u file.txt | 排序並去重 |
| 18 | uniq -c | sort -nr | 統計行出現次數並按數量倒序 |
| 19 | wc -l file.txt | 統計行數 |
| 20 | head -n 20 /var/log/messages | 查看前 20 行 |
| 21 | tail -f /var/log/nginx/access.log | 即時追蹤日誌 |
| 22 | grep "ERROR" /var/log/app.log | tail -20 | 過濾錯誤日誌最後 20 行 |
| 23 | tr 'A-Z' 'a-z' < file.txt | 大寫轉小寫 |
| 24 | iconv -f GBK -t UTF-8 file.txt -o file_utf8.txt | 編碼轉換 |
| # | 指令 | 用途 |
|---|---|---|
| 25 | top -c | 顯示完整命令列,Shift+P CPU 排序,Shift+M 記憶體排序 |
| 26 | htop | 互動式進程檢視(需安裝) |
| 27 | vmstat 1 10 | 每秒採樣 10 次,觀察 CPU/記憶體/IO/系統切換 |
| 28 | iostat -xz 2 | 磁碟 IO 詳細統計,每 2 秒刷新 |
| 29 | free -h | 記憶體使用量人類可讀格式 |
| 30 | df -hT | 磁碟空間與檔案系統類型 |
| 31 | uptime | 系統負載、運行時間、登入用戶數 |
| 32 | ps auxf | 樹狀顯示進程關係 |
| 33 | pstree -p | 進程樹含 PID |
| 34 | kill -9 $(pgrep -f process_name) | 強制殺掉符合名稱的所有進程 |
| 35 | lsof -i :80 | 查看佔用 80 埠的進程 |
| 36 | lsof -p 1234 | 查看 PID 1234 開啟的所有檔案 |
| 37 | strace -p 1234 -e trace=network | 追蹤進程系統呼叫(網路相關) |
| 38 | perf top | CPU 熱點分析(需安裝 perf) |
| 39 | sar -u 1 10 | 歷史 CPU 使用率(需 sysstat) |
| 40 | dmesg -T | tail -30 | 核心環形緩衝區,人類可讀時間戳 |
| # | 指令 | 用途 |
|---|---|---|
| 41 | ip a | 查看所有網卡 IP(取代 ifconfig) |
| 42 | ip route | 查看路由表 |
| 43 | ss -tunlp | 查看監聽埠與進程(取代 netstat) |
| 44 | netstat -tunlp | 傳統網路連線檢視 |
| 45 | dig @8.8.8.8 example.com A | 指定 DNS 伺服器查詢 A 記錄 |
| 46 | curl -I https://example.com | 僅獲取 HTTP 標頭 |
| 47 | curl -v -o /dev/null https://example.com | 詳細連線過程除錯 |
| 48 | wget -c url | 斷點續傳下載 |
| 49 | tcpdump -i eth0 -nn port 80 | 抓取 80 埠封包 |
| 50 | nmap -sS 192.168.1.0/24 | SYN 掃描存活主機 |
| 51 | iptables -L -n -v --line-numbers | 列出規則含行號 |
| 52 | firewall-cmd --list-all | firewalld 區域規則檢視 |
| 53 | ssh -L 8080:localhost:80 user@host | 本地埠轉發 |
| 54 | ssh -R 8080:localhost:80 user@host | 遠端埠轉發 |
| 55 | scp -r /local/path user@host:/remote/path | 遞迴複製到遠端 |
| # | 指令 | 用途 |
|---|---|---|
| 56 | useradd -m -s /bin/bash -G wheel username | 建立用戶、家目錄、bash、加入 wheel 組 |
| 57 | usermod -aG docker username | 追加次要群組(-a 關鍵) |
| 58 | passwd username | 設定密碼 |
| 59 | chage -l username | 查看密碼過期資訊 |
| 60 | visudo | 安全編輯 sudoers |
| 61 | sudo -u username command | 以指定用戶身份執行 |
| 62 | chmod 640 file && chown user:group file | 設定權限與擁有者 |
| 63 | getfacl /path && setfacl -m u:user:rwx /path | ACL 精細權限控制 |
| 64 | id username | 查看 UID/GID/群組 |
| 65 | last | head -20 | 最近登入記錄 |
| 66 | lastb | head -20 | 失敗登入嘗試 |
| # | 指令 | 用途 |
|---|---|---|
| 67 | lsblk -f | 樹狀顯示區塊裝置、檔案系統、UUID |
| 68 | fdisk -l | 列出分區表 |
| 69 | parted /dev/sdb mklabel gpt | 建立 GPT 分區表 |
| 70 | mkfs.ext4 /dev/sdb1 | 格式化為 ext4 |
| 71 | mount /dev/sdb1 /mnt/data | 掛載分區 |
| 72 | blkid /dev/sdb1 | 查看 UUID/TYPE |
| 73 | echo "UUID=xxx /mnt/data ext4 defaults 0 0" >> /etc/fstab | 設定開機自動掛載 |
| 74 | pvcreate /dev/sdb && vgcreate vg0 /dev/sdb | 建立 PV/VG |
| 75 | lvcreate -L 50G -n lv_data vg0 | 建立 50G 邏輯卷 |
| 76 | lvextend -L +10G /dev/vg0/lv_data && resize2fs /dev/vg0/lv_data | 線上擴充 LVM(ext4/xfs 用 xfs_growfs) |
| 77 | lvresize -L -5G /dev/vg0/lv_data | 縮減邏輯卷(需先 umount 且縮減檔案系統) |
| 78 | smartctl -a /dev/sda | SMART 完整健康資訊 |
| 79 | badblocks -v /dev/sdb | 壞軌掃描(耗時,離線執行) |
| # | 指令 | 用途 |
|---|---|---|
| 80 | systemctl status nginx | 服務狀態 |
| 81 | systemctl enable --now nginx | 設定開機自啟並立即啟動 |
| 82 | systemctl mask nginx | 完全禁用服務(防止意外啟動) |
| 83 | journalctl -u nginx -f | 即時查看服務日誌 |
| 84 | journalctl --since "1 hour ago" -p err | 過去 1 小時錯誤級別日誌 |
| 85 | systemd-analyze blame | 開機耗時分析 |
| 86 | systemctl list-timers --all | 查看所有定時器 |
| 87 | crontab -e | 編輯當前用戶排程 |
| 88 | crontab -l | 列出排程 |
| 89 | at now + 5 minutes | 一次性排程 |
| # | 指令 | 用途 |
|---|---|---|
| 90 | docker ps -a | 列出所有容器 |
| 91 | docker logs -f container_name | 即時查看容器日誌 |
| 92 | docker exec -it container_name bash | 進入容器終端 |
| 93 | docker-compose up -d | 背景啟動編排服務 |
| 94 | kubectl get pods -n namespace -o wide | K8s Pod 詳細資訊 |
| 95 | kubectl logs -f pod-name -n ns | K8s Pod 日誌 |
| 96 | helm list -n namespace | Helm 釋放列表 |
| 97 | ansible all -m ping | Ansible 連通性測試 |
| 98 | ansible-playbook site.yml --check | 乾跑模式驗證劇本 |
| 99 | terraform plan | Terraform 執行計畫預覽 |
| 100 | terraform apply -auto-approve | 自動確認應用變更 |
ctrl+a/ctrl+e:命令列游標跳首/尾ctrl+r:歷史指令反向搜尋!!:執行上一條指令,sudo !! 加 sudo 重跑!$:上一條指令的最後一個參數man -k keyword:搜尋手冊頁關鍵字whatis command:指令一行摘要type -a command:查看指令類型與路徑