Linux运维常用命令与技巧:从入门到实战的完整指南

作为一名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
喜欢就支持一下吧
点赞8 分享
评论 抢沙发
头像
欢迎您留下宝贵的见解!
提交
头像

昵称

取消
昵称表情代码图片快捷回复

    暂无评论内容