Linux 运维常用命令速查:我真正每天在用的那些
命令不用背,按场景记。下面是我日常最高频的五个场景,每个场景给可直接复制的命令。
一、看资源:机器到底哪里不够
df -h # 磁盘剩余(最常用)
du -sh /var/* | sort -h # 找出 /var 下谁最大
du -ah / | sort -rh | head -20 # 全盘 TOP20 大文件
free -h # 内存
top # 实时进程(按 P 按 CPU 排序,M 按内存)
htop # top 的加强版,能鼠标操作
uptime # 负载:三个数分别是 1/5/15 分钟平均
nproc # 核数,负载要跟核数对比才有意义
iostat -x 1 # 磁盘 IO(sysstat 包)负载 4.0 不可怕,关键看核数:8 核机器 4.0 很闲,2 核机器 4.0 已经在排队了。
二、看日志:出问题先来这里
# systemd 服务的日志
journalctl -u nginx -f # 实时跟随
journalctl -u nginx --since "10 min ago"
journalctl -u nginx --since today | tail -100
journalctl -p err -b # 本次启动以来的错误
# 日志太大时清理
journalctl --disk-usage
sudo journalctl --vacuum-size=200M # 保留最近 200MB
sudo journalctl --vacuum-time=7d # 只保留 7 天
# 传统日志文件
tail -f /var/log/nginx/error.log
grep -n "error" /var/log/nginx/error.log | tail -20三、找文件:定位配置和大文件
find /etc -name "*.conf" 2>/dev/null
find /var/www -type f -mtime -1 # 一天内改过的文件
find / -size +500M -type f 2>/dev/null # 大于 500M 的文件
grep -rn "listen" /etc/nginx/ # 递归搜内容
grep -rn "error" /var/log/ --include="*.log"
# 更快的替代(索引数据库,需先 updatedb)
sudo updatedb && locate nginx.conf四、查网络:连不上到底卡在哪
ss -lntp # 本机监听了哪些端口(比 netstat 快)
ss -antp | grep :443 # 谁在连 443
curl -I https://www.bzii.cn # 只看响应头
curl -o /dev/null -s -w "%{http_code} %{time_total}s\n" https://www.bzii.cn
ping -c 4 1.1.1.1 # 通不通
mtr 1.1.1.1 # 看每一跳的丢包(比 traceroute 好用)
dig +short A www.bzii.cn # DNS 解析
openssl s_client -connect www.bzii.cn:443 -servername www.bzii.cn < /dev/null | openssl x509 -noout -dates最后那条是查证书到期时间,排查证书问题时非常顺手。
五、管进程与权限
ps aux | grep nginx
pkill -f "node server.js" # 按命令行模糊杀进程
kill -9 PID # 强杀,最后手段
chmod 600 key.pem # 私钥必须 600,否则 SSH 会拒绝使用
chown -R www-data:www-data /var/www/baize
sudo -u www-data nginx -t # 以某个用户身份执行,验证权限问题六、几个能省很多时间的组合技
# 实时看访问日志里的 TOP IP
tail -f /var/log/nginx/access.log | awk '{print $1}' | sort | uniq -c | sort -rn
# 批量替换配置文件内容
sed -i "s/old.domain/new.domain/g" /etc/nginx/sites-available/*.conf
# 后台跑长任务,关终端也不中断
nohup ./long-task.sh > task.log 2>&1 &
# 把远程目录打包拉回本地
ssh -p 2222 baize@host "tar czf - /var/www/baize" > backup.tar.gz七、建议装在每台机器上的工具
| 工具 | 用途 |
|---|---|
| htop / btop | 资源监控,肉眼友好 |
| mtr | 网络逐跳诊断 |
| jq | 命令行处理 JSON |
| rsync | 增量同步与备份 |
| tmux | 会话保持,断线不丢 |
| ncdu | 交互式看磁盘占用 |
apt install -y htop mtr jq rsync tmux ncdutmux 值得单独学五分钟:
tmux new -s work开会话,Ctrl+b d脱离,tmux a -t work回来。服务器上的长任务再也不会因为断网挂掉。
