linux shell
bash 5+ / POSIX 2017日常 Linux / macOS Shell 命令快速参考:文件操作、文本处理、权限、进程、网络、归档与存储,并附带常用参数和实操示例。
40 条命令
文件与导航
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'相关命令速查
商标与使用声明
本批命令行工具速查手册为开源社区参考资料。文中涉及的各工具的名称、标识、商标(如 Git™、Docker™、Kubernetes®、kubectl、PostgreSQL®、MySQL®、Redis™、MongoDB®、Linux™、PowerShell™、Vim™ 等)均归对应权利人所有,此处仅为识别与参考之目的使用。
本速查手册的全部内容均为独立编写的简化自包含参考,**与任何官方文档不存在隶属、被认可或引用关系**。命令列表、参数说明、示例均为作者原创简化表达;如需权威信息,请参阅各工具的官方文档。
命令语法与参数可能在不同工具版本中有所差异。所示版本标签对应稳定发布版本;其他版本行为可能有所不同。本速查手册**不代表**商标权利人的任何偏好或推荐。
如商标或版权方认为本站部分内容存在权益侵害,请发送邮件至[email protected],我们在收到有效权属证明后,会在合理期限内修改或移除相关内容。
本网站不对因使用本站信息而产生的任何直接或间接损失承担法律责任。
关于 Linux / POSIX shell
Shell 是命令解释器,把你的按键翻译成操作系统动作,存在于每个类 Unix 系统——Linux、macOS、BSD 以及 Windows 上的 WSL。最常见的 shell 是 bash(GNU Bourne-again shell,大多数 Linux 发行版默认,当前 5.2+)、zsh(Catalina 起的 macOS 默认)、以及为众多嵌入式 Linux 提供动力的 POSIX 兼容 dash / ash。Shell 把小命令串成强大的流水线——`grep`、`awk`、`sed`、`find`、`xargs`、`sort`、`uniq`、`tee`——并提供变量、控制流、函数、进程替换的脚本语言。Linux shell 遵循 POSIX 1003.1 标准,只要不写 bash 专属语法,脚本就能跨发行版移植。一次性文件处理、系统管理、构建自动化、写可移植脚本——这些都该用 Shell;文件名可能含空格时用 `xargs -0` 而不是裸 `xargs`,引用变量务必写 `"$var"` 防单词分割。Shell 是本地工具:你输入的内容不会离开本机,除非你显式调用会联网的命令(如 `curl`、`ssh`)。
速查页版本 1.0.0