Linux 运维小技巧
一、系统监控与性能优化
实时监控系统资源
top # 实时进程监控(按 P 按 CPU 排序,按 M 按内存排序)
htop # 更友好的交互式监控工具(需安装)
vmstat 1 # 每秒输出系统资源使用情况(CPU、内存、IO)
sar # 系统活动报告工具(需安装 sysstat)快速查看系统负载
uptime # 显示系统负载(1/5/15 分钟平均)
free -h # 查看内存使用(-h 自动转换单位)
df -Th # 查看磁盘空间及文件系统类型
iostat # 监控磁盘 I/O 性能查找资源占用高的进程
ps aux --sort=-%cpu | head -n 10 # 按 CPU 使用率排序前 10 的进程
ps aux --sort=-%mem | head -n 10 # 按内存使用率排序前 10 的进程二、日志分析与排查
查看实时日志
tail -f /var/log/syslog # 实时跟踪日志文件
journalctl -f -u nginx.service # 跟踪 systemd 服务的日志(如 Nginx)快速搜索日志关键词
grep "ERROR" /var/log/syslog # 搜索包含 "ERROR" 的行
grep -A 5 -B 5 "panic" dmesg.log # 显示匹配行的前后 5 行
zgrep "404" /var/log/nginx/access.log* # 搜索压缩过的日志文件统计日志中的高频错误
awk '/ERROR/{print $5}' app.log | sort | uniq -c | sort -nr三、自动化与快捷操作
定时任务管理
crontab -e # 编辑定时任务
crontab -l # 查看当前用户的定时任务
systemctl list-timers # 查看 systemd 定时器批量操作文件
find /var/log -name "*.log" -mtime +7 -exec rm {} \; # 删除 7 天前的日志
chmod -R 755 /data # 递归修改目录权限
sed -i 's/old/new/g' *.txt # 批量替换文本内容快速生成大文件或测试磁盘速度
dd if=/dev/zero of=testfile bs=1G count=1 # 生成 1GB 测试文件
hdparm -Tt /dev/sda # 测试磁盘读取速度四、网络与连接管理
查看网络状态
ss -tulnp # 查看监听的端口和进程(比 netstat 更高效)
netstat -natp # 查看 TCP 连接状态
lsof -i :80 # 查看占用 80 端口的进程快速测试连通性
curl -I http://example.com # 仅显示 HTTP 响应头
mtr example.com # 实时网络路由跟踪(结合 ping + traceroute)
tcping -p 443 example.com # 测试 TCP 端口连通性(需安装)五、安全与权限管理
用户权限控制
visudo # 安全编辑 sudoers 文件(避免直接修改)
chmod 600 ~/.ssh/authorized_keys # 保护 SSH 密钥文件SSH 相关技巧
ssh -o "StrictHostKeyChecking=no" user@host # 跳过 SSH 主机验证提示
ssh-copy-id user@host # 一键部署公钥到远程主机
ssh -L 8080:localhost:80 user@host # 本地端口转发六、实用小工具
快速查看系统信息
uname -a # 内核版本
lsb_release -a # 发行版信息
lscpu # CPU 详细信息
lsblk # 磁盘分区信息替代常用命令的增强工具
ncdu # 交互式磁盘空间分析(替代 du)
ag # 快速代码搜索(替代 grep)
jq # 命令行 JSON 处理工具终端复用
tmux # 多窗口终端复用,防止 SSH 断开后任务终止
screen # 类似 tmux 的终端复用工具七、故障排查思路
磁盘空间不足时
du -sh /* 2>/dev/null | sort -rh | head -n 10 # 查找根目录下占用最大的目录
lsof +L1 # 查看被删除但仍被进程占用的文件CPU 负载高
pidstat 1 # 查看进程的 CPU 使用率(需安装 sysstat)
perf top # 实时分析 CPU 开销(需安装 perf)内存泄漏排查
smem -s swap -r # 查看进程的内存和 Swap 使用
valgrind --leak-check=full ./your_program # 检测程序内存泄漏八、其他技巧
历史命令优化
!! # 重复上一条命令
!$ # 上一条命令的最后一个参数
Ctrl+R # 搜索历史命令快速生成随机密码
openssl rand -base64 12 # 生成 12 位随机密码避免误删文件
alias rm='rm -i' # 删除前确认(添加到 ~/.bashrc)
本文是原创文章,采用 CC BY-NC-ND 4.0 协议,完整转载请注明来自 舟驿