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. 建立完整的故障排查思路

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

相关推荐
Web3探索者1 天前
可视化服务器管理和传统命令行区别是什么?新手教程:Linux 运维到底该用图形界面还是 SSH 命令行?
linux·ssh
zylyehuo1 天前
Linux系统中网线与USB网络共享冲突
linux
荣--1 天前
一键部署不是为了省时间 —— 它是把"买来的 PaaS"变成"自己的平台"的拐点
运维·zabbix·工程化·一键部署·平台化·边界设计
江华森1 天前
动手实战学 Docker — 从零到集群编排完全指南
运维
Avan_菜菜2 天前
FRP 内网穿透完整实战:从 HTTP 映射到 HTTPS 自签代理
运维·nginx·https
Sokach10152 天前
Linux Shell 脚本从零到能用:一个新手的一天学习总结
linux
SelectDB3 天前
Litefuse 开源并推出单进程轻量模式,25 秒就能跑起来的 Agent 可观测与评估平台
运维·后端·自动化运维
AlfredZhao3 天前
Docker 容器时区不对,`timedatectl` 不存在怎么办?
linux·timezone
zzzzzz3104 天前
9K Star 炸裂开源!这个 C 语言写的代码知识图谱,把 Linux 内核索引压缩到了 3 分钟
linux·服务器·sql
XIAOHEZIcode4 天前
Linux系统鼠标偏移常见原因以及修复方案
linux·运维·游戏