檔案與瀏覽
pwd輸出當前工作目錄的絕對路徑。
pwdls列出目錄內容。
-l 長格式;-a 含隱藏檔;-h 人類可讀大小;-t 依修改時間排序;-r 反序
ls -lah /var/logcd <dir>切換當前工作目錄。
cd ~/-projects/app && pwdtree <dir>以樹狀遞迴列出目錄;總覽非常方便(可能需要另行安裝)。
-L <n> 最大深度;-a 顯示隱藏;-d 只列目錄;-I 排除模式
tree -L 2 -I 'node_modules|.git' .檔案操作
mkdir -p <dir>一次建立目錄(連同缺少的上層目錄)。
-p 建立上層目錄;-v 詳細;-m <mode> 設定權限
mkdir -p src/components/uicp <src> <dest>複製檔案或目錄。
-r 遞迴(目錄);-i 互動;-v 詳細;-p 保留權限/時間
cp -rv src/ backup/mv <src> <dest>移動(重新命名)檔案或目錄。
-i 互動;-v 詳細;-n 不覆蓋
mv README.md readme.md && mv ../tmp .rm <path>刪除檔案或目錄。⚠️ 沒有垃圾桶——請務必核對路徑。
-r 遞迴;-f 強制;-i 互動;-v 詳細
rm -rf build/ node_modules/ln -s <target> <link>在 <link> 建立指向 <target> 的符號連結。
-s 符號連結(預設為 hard link);-f 覆蓋既有;-n 不跟隨既有連結
ln -s /opt/app-v2 currenttouch <file>建立空檔案,或在不變動內容的情況下更新 mtime。
touch .gitignore文字與檢視
cat <file>將整份檔案內容輸出到 stdout。
-n 加上行號;-A 顯示不可列印字元;-s 壓縮空行
cat -n package.jsonless <file>以分頁器開啟檔案(用 /, n, N 搜尋;q 離開)。
-N 行號;-S 不換行;+F 自動追蹤(像 tail)
less -NS /var/log/sysloghead -n 10 <file>輸出檔案前 N 行(預設 10)。
head -n 30 /etc/passwdtail -n 50 -f <file>顯示最後 N 行,並持續追蹤檔案成長(適合日誌)。
-f 追蹤;-F 追蹤並重試;-n 行數(預設 10);-c 位元組;--pid=PID 行程結束時停止
tail -f -n 50 /var/log/nginx/access.log搜尋與篩選
grep <pattern> <files>搜尋符合模式的行;支援延伸與 PCRE 正則。
-i 忽略大小寫;-r 遞迴;-n 行號;-v 反向;-E 延伸正則
grep -rni "TODO" src/find <path> -name <pattern>走訪目錄樹,列出符合條件的檔案。
-type f|d;-name glob;-iname 忽略大小寫;-size +1M;-mtime -7;-maxdepth
find . -type f -name "*.log" -mtime +7 -deleteawk '<prog>' <file>模式-動作的文字掃描器——切欄位、加總等。
-F fs 欄位分隔;-v var=value;-f 腳本檔
awk -F'\t' 'NR>1 {sum+=$3} END {print sum}' data.tsvsed 's/<a>/<b>/' <file>串流編輯器——逐行做取代、刪除、插入。
-i 直接修改檔案;-E 延伸正則;-e 組合多個指令;s/from/to/[g] [p]
sed -i '' 's/version = "1\.."/version = "1.9"/' pyproject.tomlsort | uniq -c | sort -nr管線慣用法:統計出現次數並依頻率降序排列。
awk '{print $1}' access.log | sort | uniq -c | sort -nr | head權限
chmod <mode> <file>變更檔案權限(例如 755、u+x、g-w、o=r)。
-R 遞迴;--reference=<file> 複製權限
chmod -R u=rwX,go=r ./docschown <user>[:<group>] <file>變更檔案的擁有者與群組。
-R 遞迴;-h 影響符號連結(搭配 -R)
chown -R www-data:www-data /var/www/htmlumask顯示/設定新建立檔案的預設權限遮罩。
-S 符號格式;-p 保留可攜性
umask 022行程與系統
ps aux以 BSD 風格欄位顯示所有行程的詳細資訊。
-e 全部;-f 完整;-L 顯示執行緒;--sort=-%mem
ps auxf | grep -v grep | grep nginxtop / htop即時互動式行程檢視器(htop 介面更友善,可能需另行安裝)。
P/CPU、M/MEM 排序;k kill;r renice;q 離開
htop -u www-datakill [-9|<sig>] <pid>對行程送訊號。SIGTERM (15) 較禮貌;SIGKILL (9) 強制終止。
-9 SIGKILL;-l 列出訊號;-s 以名稱指定訊號
kill -TERM 12345 && sleep 2 && kill -9 12345jobs / bg / fg / nohup管理工作——列出、丟背景、回到前景、避免 hangup 中斷。
nohup ./long-task.sh > out.log 2>&1 &systemctl <verb> <unit>控制 systemd 服務與單元(status、start、stop、enable、logs)。
status / start / stop / restart / enable / disable;-u <user>
systemctl status nginx && systemctl reload nginx網絡
wget <url>非互動式下載工具;對遞迴/鏡像很友善。
-c 續傳;-q 安靜;--no-check-certificate;-r 遞迴
wget -c https://example.com/big-archive.tar.gzssh <user>@<host> [cmd]開啟 SSH 工作階段,或在遠端主機上執行單一指令。
-p <port>;-i <key>;-L / -R / -D 埠轉發;-N 不執行遠端命令;-f 背景
ssh -i ~/.ssh/id_ed25519 user@host 'sudo systemctl restart nginx'scp / rsync在遠端主機之間複製檔案。rsync 在局部/重複傳輸時較快。
scp -r / rsync -avz --progress src/ user@host:/dst/
rsync -avz --progress ./build/ deploy@server:/srv/app/ping / traceroute / ss診斷連線可達性、封包路徑與監聽中的 socket。
ping -c N 次數;ss -tulnp 監聽資訊;ss -s 摘要
ss -tulnp | grep -E ':80|:443'封存與壓縮
tar -czf out.tgz <paths>建立或解開 tar 封存,可搭配 gzip/bzip2/xz。
-c 建立;-x 解開;-t 列出;-z gzip;-j bzip2;-J xz;-v 詳細;-C <dir>
tar -czf - src/ | ssh server 'tar -xzf - -C /srv/app'zip -r out.zip <paths>以遞迴方式建立 zip 封存檔。
-r 遞迴;-9 最高壓縮;-e 加密;-j 不保留路徑
zip -r9 build-$(date +%Y%m%d).zip dist/unzip [-d <dir>] file.zip解開 zip 封存,可指定目標目錄。
-d 目標目錄;-o 覆寫;-l 列出;-p 輸出到 stdout;-q 安靜
unzip -o build.zip -d ./extracted磁碟與儲存
df -h顯示已掛載檔案系統的磁碟用量,以人話可讀格式呈現。
-h 人話可讀;-T 顯示檔案系統類型;-i inode 資訊
df -hT /du -sh <path>估算檔案佔用空間;-s 對目錄只給總計。
-s 總計;-h 人話可讀;-a 全部;--max-depth=N;-x 不跨越檔案系統
du -sh node_modules/ build/ .Shell 內建
history / !! / !$瀏覽、重播、重用先前的命令。
history N;!<n> 重跑第 N 行;!$ 取上一個命令的最後參數;!! 重跑上一個
git add . && git commit -m "$(!!)"alias / unalias定義或列出 shell 命令捷徑(常寫在 ~/.bashrc/~/.zshrc)。
alias ll='ls -lah' && alias gs='git status'env / export / unset列出、設定、清除子行程可見的環境變數。
export DATABASE_URL=postgres://localhost/dev && env | grep DATABASE說明
man <cmd> / <cmd> --help閱讀命令的手冊頁(man)或內建說明。
man -k 關鍵字搜尋;man -t <cmd> 列印成 PDF;--help 簡短用法
man -k 'tar archive'速查頁版本 1.0.0
適用於 bash 5+ / POSIX 2017