文件与导航
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 符号链接(默认是硬链接);-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 字段分隔符;-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
umask 022进程与系统
ps aux以 BSD 风格列显示所有进程的详细信息。
-e 全部;-f 完整;-L 线程;--sort=-%mem
ps auxf | grep -v grep | grep nginxtop / htop交互式实时进程查看器(htop 体验更好,可能需要先安装)。
P/CPU M/MEM 排序;k 杀进程;r 调整优先级;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任务控制——列出、后台、前台、忽略挂断信号运行。
nohup ./long-task.sh > out.log 2>&1 &systemctl <verb> <unit>控制 systemd 服务与 unit(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诊断可达性、路径与监听端口。
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