目录
- [一、Linux 运维需要掌握哪些内容](#一、Linux 运维需要掌握哪些内容)
- 二、文件与目录管理
- 三、用户与权限管理
- 四、日志分析与文本处理
- 五、进程与服务管理
- 六、系统资源监控
- 七、网络故障排查
- 八、软件包管理
-
- [CentOS / Rocky Linux](#CentOS / Rocky Linux)
- [Ubuntu / Debian](#Ubuntu / Debian)
- [九、Shell 自动化运维](#九、Shell 自动化运维)
- 十、典型故障排查案例
- 总结
前言
对于运维工程师来说,Linux 是日常工作中接触最多的操作系统。
无论是 Web 服务、数据库、中间件,还是容器平台和云服务器,大部分生产环境都运行在 Linux 系统之上。
很多刚入行的同学学习 Linux 时,往往会陷入一个误区:把大量时间花在记忆命令上,却忽略了命令背后的应用场景。
实际上,运维学习 Linux 的核心目标并不是背会多少命令,而是能够利用这些工具快速定位和解决问题。
本文从运维工作的实际需求出发,梳理 Linux 学习路线以及常见运维场景中的应用方法。
一、Linux 运维需要掌握哪些内容
从运维岗位角度来看,Linux 主要可以分为以下几个部分。
| 模块 | 学习内容 | 目标 |
|---|---|---|
| 文件管理 | 文件、目录操作 | 熟悉系统环境 |
| 用户权限 | 用户、用户组、权限控制 | 保证系统安全 |
| 文本处理 | 日志分析、配置修改 | 快速定位问题 |
| 进程管理 | 服务运行状态管理 | 处理程序异常 |
| 系统监控 | CPU、内存、磁盘监控 | 分析性能问题 |
| 网络管理 | 网络连通性排查 | 解决访问异常 |
| 软件管理 | 软件安装与升级 | 部署运行环境 |
| Shell脚本 | 自动化运维 | 提高工作效率 |
二、文件与目录管理
文件管理是 Linux 学习的第一步。
运维日常工作中经常需要:
- 查找配置文件
- 查看日志文件
- 备份数据
- 修改配置
常用命令如下:
| 命令 | 作用 |
|---|---|
| ls | 查看目录内容 |
| cd | 切换目录 |
| pwd | 查看当前路径 |
| mkdir | 创建目录 |
| cp | 复制文件 |
| mv | 移动或重命名 |
| rm | 删除文件 |
| find | 查找文件 |
例如查找 Nginx 配置文件:
bash
find / -name nginx.conf
查找最近 7 天修改过的日志文件:
bash
find /var/log -mtime -7
三、用户与权限管理
Linux 是多用户操作系统。
合理的权限管理能够降低误操作风险。
权限管理主要涉及:
- 用户
- 用户组
- 文件权限
常用命令:
| 命令 | 作用 |
|---|---|
| useradd | 创建用户 |
| passwd | 设置密码 |
| usermod | 修改用户 |
| chmod | 修改权限 |
| chown | 修改归属用户 |
| chgrp | 修改用户组 |
例如:
bash
chmod 755 test.sh
赋予脚本执行权限。
查看文件权限:
bash
ls -l
输出示例:
text
-rwxr-xr-x
其中:
- r:读取权限
- w:写入权限
- x:执行权限
四、日志分析与文本处理
日志是运维排查故障的重要依据。
大部分线上问题都可以通过日志快速定位。
常见命令:
| 命令 | 用途 |
|---|---|
| cat | 查看文件内容 |
| less | 分页查看 |
| tail | 查看文件尾部 |
| grep | 搜索关键字 |
| sed | 文本替换 |
| awk | 数据提取 |
查看实时日志:
bash
tail -f app.log
搜索错误信息:
bash
grep ERROR app.log
统计访问 IP:
bash
awk '{print $1}' access.log | sort | uniq -c
五、进程与服务管理
在 Linux 中,所有运行中的程序都属于进程。
运维人员需要掌握进程状态查看和服务管理方法。
常用命令:
| 命令 | 作用 |
|---|---|
| ps | 查看进程 |
| top | 查看系统资源 |
| htop | 增强版监控工具 |
| kill | 结束进程 |
| pkill | 按名称结束进程 |
| systemctl | 管理服务 |
查看 Nginx 进程:
bash
ps aux | grep nginx
结束异常进程:
bash
kill -9 PID
重启服务:
bash
systemctl restart nginx
六、系统资源监控
当服务器出现卡顿、响应慢等问题时,需要先分析系统资源使用情况。
常见监控指标如下:
| 指标 | 检查命令 |
|---|---|
| CPU | top |
| 内存 | free -h |
| 磁盘空间 | df -h |
| 目录占用 | du -sh |
| 系统负载 | uptime |
| IO性能 | iostat |
查看磁盘空间:
bash
df -h
查看目录大小:
bash
du -sh /var/log/*
查看系统负载:
bash
uptime
七、网络故障排查
网络问题是运维工作中最常见的问题之一。
常用排查工具:
| 工具 | 用途 |
|---|---|
| ping | 测试连通性 |
| traceroute | 查看路由路径 |
| curl | 测试HTTP服务 |
| wget | 下载测试 |
| netstat | 查看端口 |
| ss | 查看连接状态 |
| lsof | 查看端口占用 |
查看 80 端口监听情况:
bash
ss -tunlp | grep 80
测试接口状态:
bash
curl -I https://example.com
查看端口占用:
bash
lsof -i:8080
八、软件包管理
不同 Linux 发行版使用不同的软件管理工具。
CentOS / Rocky Linux
bash
yum install nginx
或:
bash
dnf install nginx
Ubuntu / Debian
bash
apt update
apt install nginx
查看已安装软件:
bash
rpm -qa
或:
bash
dpkg -l
九、Shell 自动化运维
随着服务器数量增加,手工操作效率会越来越低。
此时需要利用 Shell 脚本实现自动化。
典型场景包括:
- 自动巡检
- 自动备份
- 自动清理日志
- 自动告警
- 批量部署
例如数据库备份脚本:
bash
#!/bin/bash
DATE=$(date +%F)
mysqldump -uroot -p123456 testdb > /backup/${DATE}.sql
结合 Crontab 实现定时执行:
bash
crontab -e
每天凌晨 2 点执行:
bash
0 2 * * * /bin/bash /opt/backup.sh
十、典型故障排查案例
案例一:网站无法访问
排查步骤:
| 步骤 | 检查内容 |
|---|---|
| 1 | 域名是否解析正常 |
| 2 | 网络是否连通 |
| 3 | 服务是否启动 |
| 4 | 端口是否监听 |
| 5 | 日志是否报错 |
常用命令:
bash
ping 域名
curl -I 域名
ss -tunlp
tail -f 日志文件
案例二:服务器负载过高
排查思路:
text
查看负载
↓
查看CPU
↓
查看内存
↓
查看磁盘IO
↓
定位异常进程
常用命令:
bash
top
ps aux
iostat
free -h
案例三:磁盘空间告警
查看磁盘:
bash
df -h
定位大目录:
bash
du -sh /*
进一步定位:
bash
find / -type f -size +500M
常见原因:
- 日志未清理
- 数据库文件增长
- 备份文件堆积
- Docker镜像占满空间
总结
Linux 是运维工程师最重要的基础技能之一。
学习 Linux 时不必执着于记忆所有命令,而应该重点培养以下能力:
- 熟悉系统基本操作
- 学会查看日志
- 掌握资源监控方法
- 能够排查网络问题
- 具备基础自动化能力
- 建立完整的故障排查思路
对于运维人员来说,真正的核心竞争力不是会多少命令,而是在面对故障时,能够快速定位问题并解决问题。