前言

对于运维工程师来说,Linux 是日常工作中接触最多的操作系统。

无论是 Web 服务、数据库、中间件,还是容器平台和云服务器,大部分生产环境都运行在 Linux 系统之上。

很多刚入行的同学学习 Linux 时,往往会陷入一个误区:把大量时间花在记忆命令上,却忽略了命令背后的应用场景。

实际上,运维学习 Linux 的核心目标并不是背会多少命令,而是能够利用这些工具快速定位和解决问题。

本文从运维工作的实际需求出发,梳理 Linux 学习路线以及常见运维场景中的应用方法。


一、Linux 运维需要掌握哪些内容

从运维岗位角度来看,Linux 主要可以分为以下几个部分。

模块学习内容目标
文件管理文件、目录操作熟悉系统环境
用户权限用户、用户组、权限控制保证系统安全
文本处理日志分析、配置修改快速定位问题
进程管理服务运行状态管理处理程序异常
系统监控CPU、内存、磁盘监控分析性能问题
网络管理网络连通性排查解决访问异常
软件管理软件安装与升级部署运行环境
Shell脚本自动化运维提高工作效率

二、文件与目录管理

文件管理是 Linux 学习的第一步。

运维日常工作中经常需要:

  • 查找配置文件
  • 查看日志文件
  • 备份数据
  • 修改配置

常用命令如下:

命令作用
ls查看目录内容
cd切换目录
pwd查看当前路径
mkdir创建目录
cp复制文件
mv移动或重命名
rm删除文件
find查找文件

例如查找 Nginx 配置文件:

find / -name nginx.conf

查找最近 7 天修改过的日志文件:

find /var/log -mtime -7

三、用户与权限管理

Linux 是多用户操作系统。

合理的权限管理能够降低误操作风险。

权限管理主要涉及:

  • 用户
  • 用户组
  • 文件权限

常用命令:

命令作用
useradd创建用户
passwd设置密码
usermod修改用户
chmod修改权限
chown修改归属用户
chgrp修改用户组

例如:

chmod 755 test.sh

赋予脚本执行权限。

查看文件权限:

ls -l

输出示例:

-rwxr-xr-x

其中:

  • r:读取权限
  • w:写入权限
  • x:执行权限

四、日志分析与文本处理

日志是运维排查故障的重要依据。

大部分线上问题都可以通过日志快速定位。

常见命令:

命令用途
cat查看文件内容
less分页查看
tail查看文件尾部
grep搜索关键字
sed文本替换
awk数据提取

查看实时日志:

tail -f app.log

搜索错误信息:

grep ERROR app.log

统计访问 IP:

awk '{print $1}' access.log | sort | uniq -c

五、进程与服务管理

在 Linux 中,所有运行中的程序都属于进程。

运维人员需要掌握进程状态查看和服务管理方法。

常用命令:

命令作用
ps查看进程
top查看系统资源
htop增强版监控工具
kill结束进程
pkill按名称结束进程
systemctl管理服务

查看 Nginx 进程:

ps aux | grep nginx

结束异常进程:

kill -9 PID

重启服务:

systemctl restart nginx

六、系统资源监控

当服务器出现卡顿、响应慢等问题时,需要先分析系统资源使用情况。

常见监控指标如下:

指标检查命令
CPUtop
内存free -h
磁盘空间df -h
目录占用du -sh
系统负载uptime
IO性能iostat

查看磁盘空间:

df -h

查看目录大小:

du -sh /var/log/*

查看系统负载:

uptime

七、网络故障排查

网络问题是运维工作中最常见的问题之一。

常用排查工具:

工具用途
ping测试连通性
traceroute查看路由路径
curl测试HTTP服务
wget下载测试
netstat查看端口
ss查看连接状态
lsof查看端口占用

查看 80 端口监听情况:

ss -tunlp | grep 80

测试接口状态:

curl -I https://example.com

查看端口占用:

lsof -i:8080

八、软件包管理

不同 Linux 发行版使用不同的软件管理工具。

CentOS / Rocky Linux

yum install nginx

或:

dnf install nginx

Ubuntu / Debian

apt update
apt install nginx

查看已安装软件:

rpm -qa

或:

dpkg -l

九、Shell 自动化运维

随着服务器数量增加,手工操作效率会越来越低。

此时需要利用 Shell 脚本实现自动化。

典型场景包括:

  • 自动巡检
  • 自动备份
  • 自动清理日志
  • 自动告警
  • 批量部署

例如数据库备份脚本:

#!/bin/bash

DATE=$(date +%F)

mysqldump -uroot -p123456 testdb > /backup/${DATE}.sql

结合 Crontab 实现定时执行:

crontab -e

每天凌晨 2 点执行:

0 2 * * * /bin/bash /opt/backup.sh

十、典型故障排查案例

案例一:网站无法访问

排查步骤:

步骤检查内容
1域名是否解析正常
2网络是否连通
3服务是否启动
4端口是否监听
5日志是否报错

常用命令:

ping 域名
curl -I 域名
ss -tunlp
tail -f 日志文件

案例二:服务器负载过高

排查思路:

查看负载
↓
查看CPU
↓
查看内存
↓
查看磁盘IO
↓
定位异常进程

常用命令:

top
ps aux
iostat
free -h

案例三:磁盘空间告警

查看磁盘:

df -h

定位大目录:

du -sh /*

进一步定位:

find / -type f -size +500M

常见原因:

  • 日志未清理
  • 数据库文件增长
  • 备份文件堆积
  • Docker镜像占满空间

总结

Linux 是运维工程师最重要的基础技能之一。

学习 Linux 时不必执着于记忆所有命令,而应该重点培养以下能力:

  1. 熟悉系统基本操作
  2. 学会查看日志
  3. 掌握资源监控方法
  4. 能够排查网络问题
  5. 具备基础自动化能力
  6. 建立完整的故障排查思路

对于运维人员来说,真正的核心竞争力不是会多少命令,而是在面对故障时,能够快速定位问题并解决问题。

Logo

openEuler 是由开放原子开源基金会孵化的全场景开源操作系统项目,面向数字基础设施四大核心场景(服务器、云计算、边缘计算、嵌入式),全面支持 ARM、x86、RISC-V、loongArch、PowerPC、SW-64 等多样性计算架构

更多推荐