一、文件操作:运维的基石
文件操作是运维工作中最基础也最频繁的需求。无论是查看日志、修改配置还是备份数据,都离不开这些命令。
- ls命令 - 查看目录内容
# 查看当前目录下所有文件和子目录(含隐藏文件)
ls -al
# 按修改时间倒序排列,常用于找最新文件
ls -lt
- grep命令 - 文本搜索神器
# 在nginx日志中搜索404错误
grep "404" /var/log/nginx/access.log
# 递归搜索目录下所有Java文件中的关键字
grep -r "ConnectionPool" /opt/project/src/main/java/
- find命令 - 文件查找专家
# 查找7天前修改过的.log文件
find /var/log -name "*.log" -mtime +7
# 查找大于100MB的文件并显示详情
find / -size +100M -exec ls -lh {} \;
二、系统监控:掌握服务器状态
了解系统运行状态是运维的基本功,这些命令能帮你快速诊断问题。
- top命令 - 实时系统监控
# 基本用法(按q退出)
top
# 按内存使用排序(大写M)
top -o %MEM
- df/du命令 - 磁盘空间管理
# 查看磁盘使用情况(人类可读格式)
df -h
# 查看指定目录大小
du -sh /var/lib/mysql/
- netstat/ss命令 - 网络连接分析
# 查看所有TCP连接(新系统推荐用ss)
netstat -tulnp
ss -tulnp
# 查看指定端口的连接
netstat -an | grep 3306
三、进程管理:服务的生命线
服务进程的管理直接关系到业务连续性,这些命令必须熟练掌握。
- ps命令 - 进程快照
# 查看所有进程完整信息
ps -ef
# 查看Java进程的CPU和内存使用
ps -eo pid,ppid,cmd,%mem,%cpu --sort=-%mem | grep java
- kill命令 - 进程控制
# 优雅停止Nginx(发送SIGTERM信号)
kill -15 $(pgrep nginx)
# 强制杀死卡死的进程(SIGKILL信号)
kill -9 12345
- systemctl命令 - 服务管理
# 查看MySQL服务状态
systemctl status mysql
# 重启Apache服务
systemctl restart httpd
四、实用技巧:效率提升法宝
这些技巧能让你事半功倍,成为团队中的高效运维。
- 管道符组合技
# 统计日志中每个IP的访问次数
cat access.log | awk '{print $1}' | sort | uniq -c | sort -nr
# 找出占用CPU最高的前5个进程
ps -eo pid,ppid,cmd,%mem,%cpu --sort=-%cpu | head -n 6
- 后台运行与日志记录
# 后台运行脚本并记录输出
nohup ./deploy.sh > deploy.log 2>&1 &
# 查看后台任务
jobs -l
- 定时任务管理
# 编辑当前用户的定时任务
crontab -e
# 查看系统所有定时任务(需要root)
cat /etc/crontab
五、安全相关:不可忽视的要点
运维安全无小事,这些命令帮你守住底线。
- 权限管理
# 修改文件属主为www-data
chown www-data:www-data /var/www/html/
# 给脚本添加执行权限
chmod +x backup.sh
- 登录审计
# 查看最近登录用户
last
# 查看失败登录尝试
grep "Failed password" /var/log/auth.log
- 防火墙管理
# 查看防火墙规则(CentOS)
iptables -L -n
# 开放8080端口(Ubuntu)
ufw allow 8080/tcp
六、应用场景与技术选型
在实际工作中,不同场景需要选择不同的命令组合:
- 故障排查场景:
- 先用top看整体负载
- 再用iotop/dstat找I/O瓶颈
- 最后用strace追踪具体进程
- 日志分析场景:
- grep过滤关键错误
- awk/sed提取特定字段
- sort/uniq做数据统计
- 性能优化场景:
- vmstat查看系统瓶颈
- sar分析历史数据
- perf定位代码热点
七、注意事项与经验分享
- 危险命令慎用:
- rm -rf /
- dd if=/dev/random
- :(){ :|:& };:
- 推荐使用绝对路径:
- 脚本中避免使用相对路径
- 关键操作先echo确认
- 养成良好习惯:
- 重要操作前先备份
- 复杂命令先测试
- 长期任务用screen/tmux
八、总结与展望
掌握这些命令只是运维工作的起点,真正的功力在于:
- 根据场景灵活组合命令
- 将常用操作脚本化
- 建立自己的命令知识库
未来可以进一步学习:
- 自动化运维工具(Ansible/Puppet)
- 容器化技术(Docker/K8s)
- 云原生监控体系
记住:命令是工具,解决问题才是目的。希望这份汇总能成为你运维路上的实用参考。
评论