L LvOnce 工具集

CHEATSHEET · LINUX

Linux 命令行 Cheatsheet

实战命令组合 + 语义搜索:用中文意图("删除 30 天前日志"、"看占用 8080 端口")就能找到对应命令。

命令说明分类
ls -lah列出当前目录(含隐藏 + 人类可读尺寸)文件目录
ls -lt | head按修改时间倒序看最近修改的文件文件目录
tree -L 2 -a看目录结构 2 层(含隐藏)文件目录
cd -回到上一个工作目录文件目录
mkdir -p a/b/c一次创建多级目录文件目录
touch file.txt新建空文件 / 更新 mtime文件目录
cp -av src/ dst/保留属性 + 详细输出地复制目录文件目录
cp -r --parents path/to/file dst/保留中间路径地复制文件目录
mv old new重命名/移动文件目录
rm -rf -- *.tmp
rm -rf 不可恢复,先 echo 验证
强制删除匹配的临时文件文件目录
ln -sfn /opt/app/v2 /opt/app/current原子地切换 symlink文件目录
realpath ./x解析为绝对路径文件目录
basename /a/b/c.txt .txt取文件名(去后缀)文件目录
dirname /a/b/c.txt取所在目录文件目录
stat -c "%n %s %y" file看尺寸+修改时间文件目录
cp file{,.bak}shell 扩展备份一份文件目录
cat -n file带行号显示文件文本处理
less +F file.log类 tail -f 但可滚动搜索文本处理
tail -n 200 -f /var/log/syslog实时跟踪日志最后 200 行文本处理
head -c 200 file看前 200 字节文本处理
grep -RIn --color=auto 'TODO' .递归在文本文件中搜索(带行号、忽略二进制)文本处理
grep -E -e 'pat1' -e 'pat2' file多模式 OR 搜索文本处理
grep -v '^#' nginx.conf | grep -v '^$'去掉注释和空行后再看配置文本处理
sed -i.bak 's/foo/bar/g' file原地替换并备份原文件文本处理
sed -n '10,20p' file打印第 10–20 行文本处理
awk '{print $1, $NF}' file打印每行第 1 列与最后一列文本处理
awk -F, 'NR>1 {sum+=$3} END{print sum}' data.csvCSV 跳过表头求和第三列文本处理
cut -d':' -f1 /etc/passwd按分隔符取列文本处理
sort -u file排序去重文本处理
sort | uniq -c | sort -rn | headTopN 频率统计经典三件套文本处理
tr -d '\r' < win.txt > unix.txt去掉 CRLF文本处理
wc -l file统计行数文本处理
diff -u a b | lessunified diff 比较文本处理
paste -d, a.txt b.txt按行合并两个文件为 CSV文本处理
iconv -f GBK -t UTF-8 in.txt -o out.txt编码转换文本处理
find . -type f -name "*.log" -mtime -77 天内修改的 .log 文件查找
find . -type f -size +100M大于 100M 的文件查找
find . -name '*.tmp' -delete查找并删除查找
find . -type f -name '*.js' -exec wc -l {} +对匹配文件批量执行命令查找
find . -type f -print0 | xargs -0 grep -l 'pat'安全处理含空格文件名的批量搜索查找
locate filename基于 mlocate 数据库的快速查找(需 updatedb)查找
which -a node查看 PATH 中所有 node 位置查找
fd -e ts patternfd(rust 实现的 find)按扩展名查找查找
rg -n -t ts "useEffect"ripgrep 在 ts 文件中搜索查找
tar czf out.tgz dir/打包并 gzip 压缩归档压缩
tar xzf in.tgz -C /target解包到指定目录归档压缩
tar tf in.tgz | head不解压看内容清单归档压缩
tar cJf out.txz dir/xz 压缩(最高压缩比之一)归档压缩
zip -r out.zip dir/打 zip 包归档压缩
unzip -l in.zip查看 zip 内容归档压缩
gzip -k file保留原文件压缩归档压缩
gzip -d file.gz解压 .gz归档压缩
chmod 755 script.sh常用脚本权限:所有人读/执行,所有者写权限
chmod -R u+rwX,go+rX dir/递归赋读 + 目录可进入(X 大写:仅目录加 x)权限
chmod 600 ~/.ssh/id_ed25519SSH 私钥必须 600权限
chown -R user:group dir/改属主与属组权限
umask 022默认创建文件 644 / 目录 755权限
getfacl file / setfacl -m u:alice:rw file细粒度 ACL 查看 / 赋权权限
sudo -i切到 root 交互 shell权限
sudo !!用 sudo 重跑上一条命令权限
ps -ef | grep [n]ginx看 nginx 进程([n] 技巧避免匹配自身 grep)进程
ps -eo pid,pcpu,pmem,cmd --sort=-pcpu | headCPU 占用 Top 进程进程
top / htop交互式监控(htop 更直观)进程
kill -TERM <pid>优雅终止进程进程
kill -9 <pid>
可能丢数据,仅在 TERM 失败时使用
强制结束进程
pkill -f "node server.js"按命令行模式批量结束进程
pgrep -af pattern按模式查找进程并显示命令进程
nohup ./run.sh > out.log 2>&1 &后台启动并解除终端依赖进程
jobs / fg %1 / bg %1 / disown -h %1Shell 作业控制进程
lsof -p <pid>看进程打开的所有文件描述符进程
lsof -i :8080看哪个进程占用 8080 端口进程
fuser -k 8080/tcp直接杀掉占用 8080 的进程进程
strace -p <pid>附着到进程跟踪 syscall进程
systemctl status nginx看服务状态服务/Systemd
systemctl restart nginx重启服务服务/Systemd
systemctl enable --now nginx开机自启 + 立即启动服务/Systemd
systemctl daemon-reload改完 unit 文件后重载服务/Systemd
systemctl list-units --failed看所有失败的服务服务/Systemd
journalctl -u nginx -f跟踪某服务日志服务/Systemd
journalctl --since "1 hour ago" -p err最近 1 小时 error 级别日志服务/Systemd
systemctl edit nginx安全地新增 override 配置服务/Systemd
ip a看所有网络接口与 IP网络
ip route看路由表网络
ss -tlnp看本机所有监听 TCP 端口及进程网络
ss -tnp state established看已建立的 TCP 连接网络
curl -fsSL https://example.com静默地下载或获取,失败时退出非 0网络
curl -i -X POST -H "Content-Type: application/json" -d '{"a":1}' https://xPOST JSON 并打印响应头网络
curl -O -L --remote-header-name <url>保留服务端建议的文件名下载网络
wget -c <url>断点续传下载网络
dig +short example.comDNS 查询,仅看结果网络
dig @8.8.8.8 example.com AAAA指定 DNS 服务器查 IPv6网络
nslookup example.com兼容性 DNS 查询网络
ping -c 4 hostping 4 次网络
mtr host组合 ping+traceroute 的实时探测网络
nc -zv host 1-1024扫端口网络
nc -lk 9000简易 TCP 监听(调试用)网络
tcpdump -i any -nn -s0 -w cap.pcap port 80抓 80 端口流量到 pcap网络
iptables -L -n -v看 netfilter 规则网络
firewall-cmd --add-port=8080/tcp --permanent && firewall-cmd --reloadfirewalld 永久放行端口网络
df -hT看挂载点剩余空间与文件系统类型磁盘
du -sh *当前目录下每个项目的占用磁盘
du -h --max-depth=1 / | sort -h从根目录按大小排序磁盘
lsblk -f看块设备 + 文件系统磁盘
blkid看设备 UUID/LABEL磁盘
mount /dev/sdb1 /mnt挂载磁盘
umount /mnt卸载磁盘
mkfs.ext4 /dev/sdb1
会清空分区数据
格式化为 ext4磁盘
dd if=/dev/zero of=test bs=1M count=100 status=progress
of= 写错会毁数据
生成 100MB 测试文件 / 测写入速度磁盘
fsck -y /dev/sdb1修复文件系统磁盘
iostat -x 1 5I/O 利用率采样磁盘
id看当前用户 uid/gid/组用户
whoami当前用户名用户
sudo useradd -m -s /bin/bash alice创建用户带 home 与 bash用户
sudo passwd alice设置/重置密码用户
sudo usermod -aG docker alice把用户加入 docker 组用户
sudo userdel -r alice删除用户及 home用户
last -n 20看最近登录记录用户
w看当前在线用户用户
dmesg -T | tail -n 100看内核日志(带时间)日志
journalctl -ksystemd 风格的内核日志日志
journalctl --vacuum-size=200M把 journald 日志压缩到 200M 内日志
logger -t myapp "hello"向 syslog 写一条日志日志
top -o %MEM按内存排序性能监控
free -h看内存使用性能监控
vmstat 1 5CPU/IO/内存采样 5 次性能监控
mpstat -P ALL 1每核 CPU 利用率性能监控
pidstat -p <pid> 1某进程的资源采样性能监控
sar -u 1 5系统活动报表(来自 sysstat)性能监控
time <cmd>测某命令耗时性能监控
watch -n 1 "ls -lah /tmp"每秒刷新执行性能监控
ssh-keygen -t ed25519 -C "you@host"生成 ed25519 密钥SSH/远程
ssh-copy-id user@host把公钥安装到对端SSH/远程
ssh -L 8080:localhost:80 user@host本地端口转发SSH/远程
ssh -R 9000:localhost:9000 user@host反向端口转发SSH/远程
ssh -D 1080 user@host动态 SOCKS5 代理SSH/远程
scp -r dir user@host:/path上传整个目录SSH/远程
rsync -avzP --delete src/ user@host:dst/高效增量同步并删除多余文件SSH/远程
rsync -avh --exclude node_modules src/ dst/本地同步并排除目录SSH/远程
ssh-add -l看 ssh-agent 已加载密钥SSH/远程
~/.ssh/config Host alias常用别名配置(HostName / User / IdentityFile / Port)SSH/远程
env | sort看所有环境变量环境变量
export PATH="$HOME/bin:$PATH"把目录加到 PATH 前面环境变量
echo $SHELL看当前 shell环境变量
set -a; source .env; set +a把 .env 全部 export 到当前 shell环境变量
unset VAR清除变量环境变量
ps -ef | grep -v grep | grep node | awk '{print $2}' | xargs -r kill -9杀掉所有 node 进程(pattern 不匹配自身)管道组合
find . -name '*.log' -mtime +30 | xargs -r rm -v删除 30 天前的日志管道组合
du -ah . | sort -rh | head -n 20当前目录下最大 20 个文件/目录管道组合
history | awk '{print $2}' | sort | uniq -c | sort -rn | head最常用命令 Top10管道组合
tail -F access.log | grep -v 'health' | tee filtered.log过滤健康检查并旁路落盘管道组合
date +%Y%m%d_%H%M%S时间戳后缀(备份命名常用)管道组合
curl -s ip.sb一行查看公网 IP管道组合
openssl rand -base64 32生成 32 字节随机串管道组合
openssl s_client -connect host:443 -servername host </dev/null查看远端 TLS 证书与握手管道组合
openssl x509 -in cert.pem -noout -dates -subject -issuer看证书有效期与签发者管道组合
docker ps -a看所有容器(含已停止)容器
docker logs -f --tail 200 <c>跟踪容器日志容器
docker exec -it <c> bash进入容器交互 shell容器
docker run --rm -it -v $PWD:/work -w /work alpine sh一次性容器,挂载当前目录容器
docker system df看 Docker 各类对象占用容器
docker system prune -af --volumes
会删卷,确保无业务数据
清理未用容器/镜像/卷容器
docker stats实时容器资源容器
docker compose up -d --build后台启动并强制重建容器
docker inspect -f '{{.NetworkSettings.IPAddress}}' <c>取容器 IP容器

164 / 164 条 · 语义搜索:中文意图自动扩展为英文命令 token,例:「删除」匹配 rm/unlink,「端口」匹配 ss/lsof。