作为一名Linux运维工程师,掌握常用的命令和技巧是日常工作的基础。本文将系统性地介绍Linux运维中最实用的命令,帮助你快速提升工作效率。
一、系统监控与性能分析
系统监控是运维工作的核心,以下命令帮助你全面了解系统状态。
1. top – 实时进程监控
# 查看实时进程,按CPU排序
top -o %CPU
# 按内存排序
top -o %MEM
# 只显示某个用户的进程
top -u nginx
2. htop – 增强版进程监控
# 安装htop
yum install -y htop # CentOS/RHEL
apt install -y htop # Ubuntu/Debian
# 常用快捷键
# F5: 树形显示
# F6: 选择排序列
# F9: 发送信号杀进程
# F10: 退出
3. vmstat – 系统整体性能
# 每秒刷新一次,共刷新10次
vmstat 1 10
# 关键指标解读:
# r: 运行队列中的进程数(超过CPU核心数说明负载高)
# b: 等待IO的进程数
# si/so: 交换分区进出内存的数据量
# bi/bo: 块设备读写量
4. iostat – IO性能监控
# 查看所有设备IO统计,每2秒刷新
iostat -x 2
# 查看特定磁盘
iostat -x sda 2
# 关键指标:
# %util: 设备利用率(接近100%说明IO瓶颈)
# await: 平均IO等待时间(ms)
# svctm: 平均服务时间
二、磁盘管理技巧
1. 磁盘空间分析
# 查看磁盘使用情况,人类可读格式
df -h
# 查看当前目录下各文件夹大小
du -sh *
# 找出当前目录下最大的10个文件
find . -type f -exec du -h {} + | sort -rh | head -10
# 查找超过100M的文件
find / -type f -size +100M 2>/dev/null
2. ncdu – 磁盘可视化工具
# 安装ncdu
yum install -y ncdu
# 扫描根目录
ncdu /
# 快速扫描大文件(深度1)
ncdu -1 /
3. inode监控
# 查看inode使用情况
df -i
# 查找inode占用最多的目录
for dir in /*; do echo "$dir: $(find $dir -xdev 2>/dev/null | wc -l)"; done
# 清理小文件(例如日志目录中的旧日志)
find /var/log -name "*.log" -mtime +30 -delete
三、网络诊断命令
1. 网络连通性测试
# ping测试(发送4个包)
ping -c 4 8.8.8.8
# 带时间戳的ping
ping -c 4 8.8.8.8 | awk '{print strftime("%Y-%m-%d %H:%M:%S"), $0}'
# mtr - 更强大的网络诊断工具
mtr -r -c 10 www.baidu.com
2. 端口与服务检查
# 查看监听端口
ss -tuln
# 查看已建立的连接
ss -tu
# 查看某个端口的详细信息
ss -tuln | grep :80
# 查看占用端口的进程
ss -tlnp | grep :80
# 或者使用lsof
lsof -i :80
3. 网络流量监控
# iftop实时流量监控
iftop -i eth0
# nethogs按进程监控流量
nethogs eth0
# 查看网卡流量统计
cat /proc/net/dev
四、进程管理进阶
1. 进程查找与终止
# 查找进程
ps aux | grep nginx
# 查看进程树
pstree -p
# 终止进程的几种方式
kill -9 PID # 强制终止(不推荐)
kill -15 PID # 正常终止(推荐)
kill -HUP PID # 重新加载配置
# 批量终止进程
pkill -f "python script.py"
# 按名称终止
killall nginx
2. 后台任务管理
# 将命令放入后台运行
nohup ./script.sh > output.log 2>&1 &
# 使用screen管理会话
screen -S mywork # 创建会话
screen -r mywork # 恢复会话
screen -ls # 列出会话
# 使用tmux(更现代的选择)
tmux new -s work
tmux attach -t work
tmux ls
五、日志分析技巧
1. 实时查看日志
# 实时查看日志尾部
tail -f /var/log/nginx/access.log
# 实时查看并高亮关键词
tail -f /var/log/messages | grep --color=auto -E "ERROR|WARN|$"
# 多文件同时监控
tail -f /var/log/*.log
2. 日志搜索与分析
# 搜索关键词并显示行号
grep -n "ERROR" /var/log/app.log
# 统计错误数量
grep -c "ERROR" /var/log/app.log
# 查看某时间段的日志
sed -n '/2026-05-01 10:00/,/2026-05-01 11:00/p' /var/log/app.log
# 分析访问日志中最频繁的IP
awk '{print $1}' /var/log/nginx/access.log | sort | uniq -c | sort -rn | head -10
# 分析HTTP状态码分布
awk '{print $9}' /var/log/nginx/access.log | sort | uniq -c | sort -rn
六、系统安全加固
1. 用户与权限管理
# 查看登录用户
w
who
# 查看登录历史
last
lastlog
# 查看失败的登录尝试
lastb
# 锁定用户账户
passwd -l username
# 查看sudo权限
sudo -l -U username
# 查找SUID文件(安全检查)
find / -perm -4000 -type f 2>/dev/null
2. 防火墙配置
# firewalld(CentOS 7+)
firewall-cmd --state
firewall-cmd --list-all
firewall-cmd --add-port=8080/tcp --permanent
firewall-cmd --reload
# iptables(传统方式)
iptables -L -n
iptables -A INPUT -p tcp --dport 80 -j ACCEPT
service iptables save
# ufw(Ubuntu)
ufw status
ufw allow 80/tcp
ufw enable
七、实用技巧集合
1. 系统信息快速获取
# 一键获取系统信息
uname -a
cat /etc/os-release
hostnamectl
# CPU信息
lscpu
cat /proc/cpuinfo | grep "model name" | head -1
# 内存信息
free -h
cat /proc/meminfo | head -5
2. 定时任务管理
# 编辑定时任务
crontab -e
# 查看定时任务
crontab -l
# 常用cron表达式示例
# 每天凌晨2点执行
0 2 * * * /scripts/backup.sh
# 每小时执行
0 * * * * /scripts/check.sh
# 每周一早上8点
0 8 * * 1 /scripts/weekly.sh
3. 快速备份脚本
#!/bin/bash
# 自动备份脚本
BACKUP_DIR="/backup"
DATE=$(date +%Y%m%d)
APP_DIR="/var/www/html"
# 创建备份目录
mkdir -p $BACKUP_DIR
# 备份文件
tar -czf $BACKUP_DIR/app_$DATE.tar.gz $APP_DIR
# 备份数据库
mysqldump -u root -p'password' dbname > $BACKUP_DIR/db_$DATE.sql
# 保留最近7天备份
find $BACKUP_DIR -type f -mtime +7 -delete
echo "Backup completed at $(date)"
小贴士:建议将常用命令做成alias别名,提高工作效率。例如:
alias ll='ls -lah'、alias grep='grep --color=auto'。
总结
以上是Linux运维中最常用的命令和技巧,熟练掌握这些内容可以应对90%以上的日常运维场景。建议多动手实践,在实际工作中不断积累经验。记住,好的运维不仅要会用命令,更要理解命令背后的原理。
如果你在实际使用中遇到问题,欢迎在评论区交流讨论!
© 版权声明
文章版权归作者所有,未经允许请勿转载。
THE END















暂无评论内容