OPS · Linux / Docker / 服务器运维

服务器运维速查

从文件权限、进程管理到网络传输、任务计划,再到性能观测、日志轮转与 Docker 容器编排,日常运维最常用的 61 条命令一张表收齐,随查随用。

61条命令 12大场景 持续更新

📖 速查表

点击展开各小节

📂 文件与目录操作
命令说明示例
ls 列出目录内容。-l 详情,-a 显示隐藏文件,-h 人类可读 ls -lah
ls *.log
cd 切换工作目录。cd ~ 回家目录,cd - 回上一个目录 cd /var/log
cd ~/projects
pwd 显示当前工作目录的绝对路径 pwd
# 输出: /home/user/projects
cp 复制文件或目录。-r 递归复制目录,-p 保留属性 cp file.txt /backup/
cp -r ./dist/ /deploy/
mv 移动或重命名文件/目录 mv old.txt new.txt
mv file.txt /tmp/
rm 删除文件或目录。-rf 强制递归删除(⚠️ 谨慎使用) rm temp.log
rm -rf node_modules/
mkdir 创建目录。-p 递归创建父目录 mkdir -p a/b/c/d
🔐 权限与用户
命令说明示例
chmod 修改文件权限。u/g/o/a 用户/组/其他人/全部,+/-/= 添加/移除/设置 chmod +x script.sh
chmod 755 app.py
chown 修改文件所属用户和组。-R 递归更改 chown user:group file.txt
chown -R www-data:www-data /var/www
⚙️ 系统与进程管理
命令说明示例
ps 查看进程快照。aux 显示所有进程详细信息 ps aux | grep nginx
ps -ef
top / htop 实时显示系统资源占用和进程列表。htop 是增强版(需安装) top -bn1
htop
kill 发送信号终止进程。-9 强制杀死,-15 优雅终止 kill -15 12345
kill -9 12345
free 查看内存使用情况。-h 人类可读格式 free -h
free -m
du 统计文件或目录的磁盘使用量 du -sh /var/log
du --max-depth=1 -h
df 查看文件系统磁盘空间使用情况 df -h
df -i 查看 inode
uname 查看系统内核信息。-a 显示全部信息 uname -a
# Linux hostname 6.1.0 #1 SMP ...
uptime 查看系统已运行时间、负载平均值 uptime
# 14:23 up 30 days, 2:15, 3 users
🔍 搜索与文本处理
命令说明示例
grep 在文件中搜索匹配模式的行。-r 递归,-i 忽略大小写,-n 显示行号 grep -rn "TODO" src/
grep -E "error|warn" app.log
find 在目录树中查找文件,支持按名称、类型、大小、时间等条件 find /var -name "*.log" -size +100M
find . -type f -mtime -7
sed 流编辑器,用于对文本进行替换、删除、插入等操作 sed -i 's/old/new/g' file.txt ⚠ 易错:-i 直接改源文件
sed -n '10,20p' file.log
awk 强大的文本分析工具,按字段处理、格式化输出 awk '{print $1, $NF}' access.log
awk -F: '{print $1}' /etc/passwd
📦 网络与文件传输
命令说明示例
curl HTTP 请求工具,支持 GET/POST/HEAD 等方法及各种协议 curl -I https://example.com
curl -X POST -d '{"k":"v"}' -H "Content-Type: application/json" url
wget 下载工具,支持断点续传、递归下载 wget https://example.com/file.zip
wget -c -O output.zip url
ssh 远程登录服务器,-p 指定端口,-i 指定密钥 ssh -p 2222 user@host
ssh -i ~/.ssh/id_rsa user@host
scp 基于 SSH 的安全文件复制,-r 递归复制目录 scp file.txt user@host:/tmp/
scp -r ./dist/ user@host:/var/www/
🗜️ 压缩与归档
命令说明示例
tar 归档工具。-czf 创建 gzip 压缩,-xzf 解压 tar -czf archive.tar.gz /path
tar -xzf archive.tar.gz
⏰ 任务计划与系统服务
命令说明示例
crontab 管理定时任务。-e 编辑,-l 列出,格式:分 时 日 月 周 命令 crontab -e
0 3 * * * /backup.sh 每天 3 点备份
systemctl 管理系统服务(systemd)。启动、停止、启用、查看状态 systemctl start nginx
systemctl enable nginx
systemctl status nginx
journalctl 查看 systemd 日志。-u 查看特定服务,-f 实时跟踪 journalctl -u nginx -f
journalctl --since "1 hour ago"
lsof 列出当前系统打开的文件(常用于查看端口占用) lsof -i :8080
lsof -iTCP -sTCP:LISTEN
iptables Linux 防火墙规则管理。-L 查看规则,-A 添加规则 iptables -L -n
iptables -A INPUT -p tcp --dport 80 -j ACCEPT
🐳 Docker 容器管理
命令说明示例
docker ps 列出运行中的容器。-a 显示全部(含已停止) docker ps
docker ps -a --format "table {{.Names}}\t{{.Status}}"
docker images 列出本地镜像列表 docker images
docker images --filter "dangling=true"
docker run 创建并启动一个新容器。-d 后台运行,-p 端口映射,--name 命名 docker run -d -p 80:80 --name web nginx
docker run -it --rm ubuntu bash
docker build 从 Dockerfile 构建镜像。-t 标记标签 docker build -t my-app:latest .
docker build --no-cache -t my-app .
docker exec 在运行中的容器内执行命令。-it 交互式终端 docker exec -it web bash
docker exec web ls /etc/nginx
docker logs 查看容器日志。-f 实时跟踪,--tail 只看最近 N 行 docker logs -f web
docker logs --tail 100 web
docker stop 优雅停止一个或多个容器(发送 SIGTERM) docker stop web
docker stop $(docker ps -q)
docker rm 删除一个或多个已停止的容器。-f 强制删除运行中的容器 docker rm web
docker rm -f web
docker rmi 删除一个或多个本地镜像。-f 强制删除 docker rmi nginx:latest
🧩 Docker Compose 与高级管理
命令说明示例
docker-compose up 启动 Compose 项目中所有服务。-d 后台运行 docker-compose up -d
docker-compose up -d web db
docker-compose down 停止并移除所有容器、网络,默认不移除卷 docker-compose down
docker-compose down -v 同时移除卷
docker network 管理 Docker 网络。ls 列出,create 创建,connect 连接容器 docker network ls
docker network create --driver bridge my-net
docker volume 管理 Docker 卷。ls 列出,create 创建,prune 清理 docker volume ls
docker volume create my-vol
docker system prune 清理 Docker 未使用的资源(容器、网络、镜像、构建缓存) docker system prune -a --volumes ⚠️ 全面清理
📈 性能观测
命令说明示例
top 关键指标:load average 与 CPU 核数对比判断负载(超过核数即任务在排队),按 P/M 按 CPU/内存排序定位进程 top -bn1 | head -20
# load 8.0 = 4 核已满载排队
vmstat 常用列:r 运行队列长度(大于核数说明 CPU 瓶颈)、b 阻塞进程数、wa IO 等待占比(高即磁盘瓶颈) vmstat 1 5
# 每 1 秒采样,共 5 次
iostat -x 看磁盘扩展统计:%util 接近 100% 说明设备饱和,结合 await 判断单次 IO 延迟是否过高 iostat -x 1
# %util 高 + await 大 → 磁盘慢
free buff/cache 是内核缓存、可随时回收,判断内存是否吃紧应看 available 列而非 free 列 free -h
# available 才是真实可用内存
df + du 组合定位空间问题:df -h 看文件系统整体占用,du -sh 逐层下钻找大目录;两者差距大可能是已删除但被进程占用的文件 df -h
du -sh /var/* | sort -h
🌐 网络排查
命令说明示例
ss 查看 TCP 监听端口与占用进程,-t TCP、-l 监听、-n 数字端口、-p 进程,替代已废弃的 netstat ss -tlnp | grep 8080
ping / mtr ping 测连通性与延迟抖动;mtr 融合 ping + traceroute,实时定位丢包发生在哪一跳 ping -c 4 example.com
mtr -rw example.com
curl -w 按阶段计时定位慢在哪一环:time_namelookup DNS、time_connect 建连、time_starttransfer 首字节(TTFB) curl -o /dev/null -s -w 'dns:%{time_namelookup} conn:%{time_connect} ttfb:%{time_starttransfer}\n' https://example.com
dig DNS 排查,+short 只输出解析结果;指定不同 DNS 服务器对比,定位缓存或解析污染问题 dig +short example.com
dig @8.8.8.8 +short example.com
nc 端口连通性测试:-z 只扫描不发数据、-v 显示详情,排查防火墙拦截或服务未启动 nc -zv 10.0.0.1 6379
# succeeded! 即端口可达
🧾 日志与轮转
命令说明示例
journalctl -u 按服务过滤 systemd 日志,--since 限定时间范围,排障先看服务启动失败原因 journalctl -u nginx --since today
journalctl -u app --since "1 hour ago"
journalctl -f 实时跟踪日志输出(类似 tail -f),叠加 -n 控制初始回看行数 journalctl -f
journalctl -fu app -n 50
logrotate 轮转配置要点:daily 每天轮转、rotate 7 保留 7 份、compress 压缩归档,配 missingok/notifempty 更稳健 /etc/logrotate.d/nginx
daily / rotate 7 / compress 三要素
tail -F + grep tail -F 文件被轮转后仍继续跟踪,配合 grep --line-buffered 实时过滤不积压缓冲 tail -F app.log | grep --line-buffered ERROR
按天切割命名 日志按天切割并带日期命名,天然按时间归档,便于检索、压缩与到期清理 app-$(date +%F).log
app.log.2026-08-28.gz
分级与保留 按 ERROR/WARN/INFO 分级落盘,错误日志单独保留更长周期并接入告警,普通日志短周期滚动 error.log 保留 90 天
info.log 保留 7 天 分级保留