做后端、服务器运维、开发,离不开 Linux 系统。不管是日常操作、线上故障排查、服务器部署,下面这套命令是每天都会用到的核心工具,搭配真实线上日志场景讲解,新手也能快速看懂。
一、文件目录操作(每天高频使用)
1. 目录切换查看
bash
运行
pwd # 查看当前所在路径
ls -lh # 列出目录文件,人性化显示大小、权限、时间
cd /usr/local # 切换到指定目录
cd .. # 返回上一级目录
cd ~ # 回到当前用户家目录
2. 创建 / 删除 / 复制 / 移动
bash
运行
mkdir -p test/a/b # 递归创建多层文件夹
touch demo.txt # 创建空文件
cp -r 源目录 目标 # 复制文件夹(-r 递归)
mv old.txt new.txt # 重命名 / 移动文件
rm -rf 文件/文件夹 # 强制删除,线上慎用!
3. 权限 & 属主(线上安全必备)
bash
运行
chmod 755 run.sh # 修改文件读写执行权限
chown root:root log # 修改文件归属用户、用户组
4. 文件搜索
bash
运行
find / -name "*.cap" # 全盘搜索后缀为cap的文件
grep "502" access.log # 在日志中检索502报错关键词
二、文本日志查看(排查报错核心)
线上 90% 问题都要读日志,这组命令必背:
bash
运行
cat error.log # 一次性输出全部文件内容
less access.log # 分页查看大日志,支持上下翻页、搜索
tail -f access.log # 实时滚动跟踪日志(最常用)
tail -n 1000 error.log # 只看日志最后1000行
head -n 50 access.log # 查看日志前50行
进阶日志分析(awk/sed)
bash
运行
# 统计日志中404接口访问次数
grep "404" access.log | awk '{print $7}' | sort | uniq -c
三、磁盘 & 硬件资源查看(磁盘爆满、内存不足排查)
bash
运行
df -h # 查看服务器各个磁盘分区占用率
du -sh * # 查看当前目录下各文件夹大小(定位大文件)
free -h # 查看内存、交换分区使用情况
uptime # 查看服务器开机时间、系统负载
lscpu # 查看CPU核心配置
lsblk # 查看硬盘、分区信息
像截图里 access.log 2.5G、大量.cap抓包文件占磁盘,就用 du -sh * 快速定位超大文件。
四、进程 & 服务管理(程序卡死、启停服务)
1. 查看进程
bash
运行
ps aux # 查看服务器全部进程
top # 实时监控进程CPU、内存占用
pgrep nginx # 直接查询nginx进程PID
pstree # 树形展示进程关系
2. 结束进程
bash
运行
kill -15 PID # 优雅停止进程(优先使用)
kill -9 PID # 强制杀死卡死进程(谨慎使用)
pkill openresty # 根据进程名批量结束程序
3. Systemd 服务管理(CentOS7+/Ubuntu 主流)
bash
运行
systemctl start nginx # 启动服务
systemctl stop nginx # 停止服务
systemctl restart nginx # 重启服务
systemctl enable nginx # 设置开机自启
systemctl status nginx # 查看服务运行状态+报错日志
journalctl -u nginx -f # 实时查看nginx服务日志
五、网络排查命令(接口超时、端口不通、抓包)
线上接口异常、访问失败,全部靠这组命令定位:
bash
运行
ip addr # 查看服务器网卡IP(替代老旧ifconfig)
ping www.baidu.com # 测试网络连通性
curl shturl.cc/XBv1X # 测试接口访问,打印返回内容
ss -lntp # 查看本机监听端口(比netstat更快)
lsof -i:80 # 查询80端口被哪个程序占用
dig 域名 / nslookup # 测试DNS解析是否正常
traceroute 域名 # 追踪网络路由,定位链路丢包
重点:tcpdump 抓包工具(前文截图讲解)
tcpdump 是 Linux 底层抓包工具,抓取网卡原始流量,生成.cap文件,用于排查底层网络丢包、TCP 超时问题。
bash
运行
# 抓取80端口流量,保存为抓包文件
tcpdump -i eth0 port 80 -w test.cap
# 读取已保存的抓包文件
tcpdump -r 3times.cap
补充区分
*.log:Nginx 应用层日志,只记录 HTTP 请求;
*.cap:tcpdump 底层抓包文件,记录完整 TCP 数据包。
六、远程传输 & 服务器同步
bash
运行
ssh root@192.168.1.100 # 远程登录服务器
scp 本地文件 root@ip:/路径 # 本地上传文件到服务器
scp root@ip:/xxx.cap ./ # 把服务器抓包文件下载到本地
rsync -avz 源 目标 # 增量同步文件,备份神器
七、定时任务 crontab(自动化运维)
服务器定时清理日志、定时备份必备:
bash
运行
crontab -l # 查看当前用户定时任务
crontab -e # 编辑定时任务
# 示例:每天凌晨2点清理30天前的抓包文件
0 2 * * * find /usr/local/openresty/nginx/logs -name "*.cap" -mtime +30 -delete
八、压缩解压命令
日志、抓包文件打包归档必备
bash
运行
# 压缩文件夹为 tar.gz
tar -zcvf log.tar.gz logs/
# 解压 tar.gz 包
tar -zxvf log.tar.gz
# zip压缩/解压
zip -r log.zip logs/
unzip log.zip
九、用户权限管理
bash
运行
useradd testuser # 创建新用户
passwd testuser # 设置用户密码
su - testuser # 切换登录其他用户
sudo 命令 # 临时使用管理员权限
id testuser # 查看用户uid、用户组
十、运维排障实用小工具
bash
运行
dmesg -T # 查看内核、硬件报错日志
vmstat 1 # 实时查看系统整体性能
iostat -x 1 # 排查磁盘IO瓶颈
sar -n DEV 1 # 监控网卡实时流量
watch -n 1 df -h # 每秒刷新磁盘占用,实时监控磁盘
日常业务日志问题:tail/grep/less 看 Nginx 日志;
磁盘爆满:df -h + du -sh 定位大文件;
程序卡死:top + kill 管理进程;
接口超时、网络异常:curl/ss/lsof/tcpdump 网络全套工具;
自动化运维:crontab 定时任务 + rsync 文件同步。
你平时线上排障最常用哪条 Linux 命令?有没有踩过 rm -rf 删库、抓包占满磁盘的坑?评论区交流运维踩坑经验!