Linux 从基础操作到故障排查

目录

前言

对于运维工程师来说,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 时不必执着于记忆所有命令,而应该重点培养以下能力:

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

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

相关推荐
zt1985q6 小时前
本地部署开源轻量级监控平台 Beszel 并实现外部访问
运维·服务器·网络协议·开源
BerryS3N6 小时前
GitHub Actions自动化运维实战:从CI/CD到云端部署的完整指南
运维·自动化·github
L-影6 小时前
Server-Sent Events (SSE):让服务器“主动开口”的实时推送技术
运维·服务器·sse
不能跑的代码不是好代码15 小时前
Linux系统常用命令中文速查表
linux·运维·服务器
石一峰69915 小时前
深入理解 Linux 中断三层机制与 1-Wire 时序锁原理
linux·运维·服务器
运维老郭16 小时前
PostgreSQL编译安装实战
运维·postgresql
无限码农16 小时前
Linux上通过cmake编译uchardet
linux·运维·服务器
灯琰117 小时前
STM32F4+W5500 移植与开发常见问题
网络
运维大师17 小时前
【Linux运维极简教程】06-网络配置与管理
linux·运维
007张三丰18 小时前
软件测试专栏(15/20):REST Assured接口自动化框架实战
运维·自动化·jenkins·接口自动化·rest·assured