
这次我们来看一套 2026 年最新录制的 Linux 运维全教程。标题虽然很长拆开看其实就三条主线Linux 操作系统入门、容器与 K8s、企业实战运维。中间还穿插了监控、审计、数据库三个独立模块。对刚入行、准备转岗运维、或者在职但一直没系统补过容器和数据库的读者来说这套课程最大的价值是把“会敲 Linux 命令”和“能维护企业服务器”之间的知识空档补齐了。学习运维最怕的不是命令记不住而是不知道这些命令在真实服务器上怎么组合使用。这套教程的模块设计比较接近企业实际工作流先掌握操作系统基础再用 Docker 把应用容器化接着用 K8s 做集群编排最后用监控、审计、数据库把这些服务管理起来。下面我会把这套学习路径拆开来讲并给出每个阶段需要掌握的技术点、可以动手做的实验、以及踩坑后的排查思路。1. 学习路径能力速览先看这套课程覆盖的整体结构方便你判断自己该从哪一部分切入。模块核心内容学习目标建议动手时长前置基础Linux 入门命令文件管理、文本处理、权限、进程、网络、软件安装能独立在一台 Linux 服务器上完成日常操作3 到 5 天零基础Shell 脚本与自动化变量、条件、循环、函数、crontab能写脚本批量处理任务、实现一键部署3 到 4 天入门命令服务与进程管理systemd、systemctl、journalctl、服务自启动能管理服务启停、排查服务异常2 到 3 天入门命令容器 Docker镜像、容器、数据卷、网络、Compose能把应用打包成镜像并快速部署4 到 6 天Linux 基础容器编排 K8sPod、Deployment、Service、Namespace、kubectl能理解集群架构完成基础应用编排7 到 10 天Docker监控系统指标、日志、Prometheus Grafana能搭建监控体系并设置告警3 到 4 天Linux 网络基础审计登录日志、命令审计、权限审计能发现异常登录和危险操作2 到 3 天权限与日志数据库MySQL、Redis 安装、备份、优化、容器化能维护数据库日常运行和备份恢复4 到 6 天Linux 基础企业实战LNMP、容器化部署、初始化脚本、故障排查能把整套知识串成真实项目交付5 天以上以上全部从零基础到能独立完成企业级运维任务合理的节奏是 1 到 2 个月。如果每天只能抽 1 小时时间会拉长但重点不是快而是每个阶段都有一个能跑起来的实验环境。2. 适用人群与学习边界这套课程更适合以下几类人刚入行的运维工程师需要把命令、服务、容器、数据库这些技能串成体系而不是零散搜教程。开发工程师想理解服务器环境、Linux 部署、容器化流程后端开发配合运维工作时会更顺畅。准备运维面试的求职者课程里的模块基本对应常见面试题范围比如 linux 常用命令、k8s 和 docker 区别、数据库故障处理等。在校学生适合作为 Linux 操作系统的配套实践教材边学边敲命令。但也要说清楚这套课程的边界。它不是安全攻防课程不会深入讲漏洞利用也不是纯开发课程不会花大量篇幅讲编程语言底层原理。它的定位是“企业运维基本功”聚焦在怎么把一台服务器和应用管起来。另外要提醒一点课程里涉及数据库、监控、容器操作的内容学习时要在自己的虚拟机或测试环境里执行。不要把生产服务器的操作拿来直接练手尤其是rm、DROP TABLE、systemctl stop这类高危操作必须在确认影响范围后再执行。3. Linux 本地部署环境准备学习 Linux 运维最重要的不是买课而是有一套随时可以破坏的实验环境。建议在正式学习前先花半天时间把环境搭好。3.1 本机实验环境方案方案说明适合情况VMware Workstation / VirtualBox安装 CentOS Stream、Rocky Linux 或 Ubuntu Server完全隔离可随意快照回滚初学者首选WSL2Windows 自带 Linux 环境启动快适合跑命令和脚本已有 Windows 开发环境Docker Desktop可快速启动多个 Linux 容器模拟多节点学习容器章节时辅助使用云服务器按量付费的轻量应用服务器有公网 IP可模拟真实服务器需要公网环境测试3.2 远程连接工具运维工程师最常见的操作方式是远程连接服务器你需要至少熟练一个终端工具WindowsMobaXterm、FinalShell、WindTerm、XshellMac / Linux系统自带 Terminal配合 VS Code Remote SSH以 VS Code Remote SSH 为例连接服务器后可以像编辑本地文件一样编辑远程服务器的配置文件体验很好。3.3 系统版本选择建议至少掌握一个 RHEL 系发行版和一个 Debian 系发行版。RHEL 系使用yum/dnf软件包格式为 rpm企业生产环境占比高。推荐 Rocky Linux 或 AlmaLinux。Debian 系使用apt软件包格式为 deb云服务器镜像里很常见推荐 Ubuntu Server LTS。在一台机器上跑两个发行版并不冲突虚拟机里装 Rocky LinuxWSL 里装 Ubuntu或者反过来。3.4 学习目录规划建议在服务器上建立固定目录来管理实验内容mkdir -p ~/lab/{scripts,logs,backup,config}把脚本统一放到~/lab/scripts日志放到~/lab/logs备份放到~/lab/backup。后期做批量任务和数据库备份时目录清晰能省很多事。4. Linux 入门命令模块从常用命令到系统管理这个模块是整个运维知识体系的地基。网络上的 linux 常用命令大全很多但学习时不用贪多先掌握下面这些核心命令即可覆盖 80% 的日常场景。4.1 文件与目录管理# 查看当前目录 pwd # 切换目录 cd /etc # 查看文件列表 ls -lah # 查看文件内容 cat /etc/os-release # 创建目录 mkdir -p /data/logs # 复制、移动、删除 cp -a /etc/hosts /data/hosts.bak mv oldname newname rm -rf /tmp/old-dir # 打包压缩 tar -czf backup.tar.gz /data tar -xzf backup.tar.gz -C /data特别注意rm -rf必须确认路径生产环境建议先ls看清楚再删除或者用mv到临时目录代替直接删除。4.2 文本处理三件套grep、sed、awk 是运维面试题里出现频率最高的命令组合。# 过滤日志 grep -i error /var/log/messages | tail -20 # 显示匹配行及行号 grep -rn listen 80 /etc/nginx/ # 提取 IP 地址 ip a | grep -oP (?inet\s)\d(\.\d){3} # 统计日志中某个接口出现次数 grep -c GET /api/order access.log # 用 sed 批量替换配置 sed -i s/#Port 22/Port 2222/ /etc/ssh/sshd_config # 用 awk 按列处理文本 awk {print $1, $9} access.log | head -20文本处理能力决定了你看日志、分析问题快不快。不要死记参数多拿真实日志练习。4.3 用户、权限与 sudo# 创建用户并设置 shell useradd -m -s /bin/bash hank passwd hank # 添加 sudo 权限 usermod -aG wheel hank # 修改文件属主与权限 chown -R app:app /opt/app chmod 750 /opt/app # 设置文件特殊权限 chattr i /etc/passwd权限是运维面试高频考点建议把rwx、r-x、750这类权限位的读法练熟同时理解 why为什么反斜杠目录权限经常是 755为什么配置文件是 644。4.4 进程与系统状态# 查看系统负载 uptime top -d 2 # 查看进程 ps aux --sort-%cpu | head -15 # 查看内存与磁盘 free -h df -hT du -sh /var/log/*服务器出问题时第一步不是重启而是通过top、free、df快速定位 CPU、内存、磁盘哪一项异常。4.5 网络排查# 查看 IP 地址 ip a # 查看端口监听 ss -tlnp # 测试连通性 ping -c 4 baidu.com # 测试端口是否开放 telnet 127.0.0.1 3306 nc -vz 127.0.0.1 3306 # 下载测试文件 curl -I https://mirrors.aliyun.com wget -O test.tar.gz https://example.com/test.tar.gz端口排查是 Linux 运维最常见的问题。启动服务后页面打不开优先ss -tlnp确认端口有没有监听再用firewall-cmd或iptables检查放行规则。4.6 软件安装与服务管理RHEL 系dnf update -y dnf install -y nginx systemctl start nginx systemctl enable nginx systemctl status nginxDebian 系apt update apt install -y nginx systemctl start nginx源码编译安装软件也是大部分运维必须会的一步重点是./configure --prefix/usr/local/xxx make make install的流程以及编译失败时检查缺少的依赖库。5. Shell 脚本与自动化会敲命令只是入门能写脚本才叫生产力。Shell 脚本的本质是把多个命令组合成可重复执行的任务。下面是打基础的几个要点。5.1 脚本基本结构#!/bin/bash # 一键备份 /data 目录到 backup 目录 set -euo pipefail BACKUP_DIR$HOME/lab/backup TIMESTAMP$(date %Y%m%d%H%M%S) mkdir -p $BACKUP_DIR tar -czf $BACKUP_DIR/data_${TIMESTAMP}.tar.gz /data echo backup finished: ${BACKUP_DIR}/data_${TIMESTAMP}.tar.gzset -euo pipefail建议养成习惯遇到错误退出、变量未定义报错、管道中断检测避免脚本“静默失败”。5.2 循环批量处理#!/bin/bash for ip in 10.0.0.1 10.0.0.2 10.0.0.3; do ping -c 1 $ip /dev/null 21 echo $ip is alive || echo $ip is down done批量任务的核心就是循环加状态判断。后面做批量部署、批量检查服务器时这个模式会反复出现。5.3 定时任务 crontab# 每晚 2 点执行备份脚本 crontab -e 0 2 * * * /home/hank/lab/scripts/backup.sh /home/hank/lab/logs/backup.log 21用 crontab 时一个常见坑是环境变量问题。脚本里的命令可能在终端正常但在 cron 里报 command not found。解决方式是脚本开头显式定义 PATH。同时在 crontab 中注意日志重定向否则脚本报错时你很难发现。6. 服务与进程管理systemd 实战现代 Linux 发行版的服务管理基本都由 systemd 接管。你需要掌握的内容包括 systemctl 的启停、status 查看、enable 设置开机自启以及 journalctl 查看服务日志。# 管理服务 systemctl restart nginx systemctl reload nginx # 开机自启 systemctl enable nginx systemctl disable nginx # 查看服务日志 journalctl -u nginx --since 10 minutes ago journalctl -u nginx -f # 查看开机启动项 systemctl list-unit-files | grep enabled排查服务启动失败时先systemctl status 服务名再看 journalctl 输出。这两步能解决大部分启动异常问题。如果你的服务需要注册为系统服务可以写一个 unit 文件cat /etc/systemd/system/myapp.service EOF [Unit] DescriptionMy App Service Afternetwork.target [Service] ExecStart/usr/local/bin/myapp --config /etc/myapp/config.yaml Restartalways Userapp Groupapp [Install] WantedBymulti-user.target EOF systemctl daemon-reload systemctl start myappRestartalways 配合监控告警可以让程序崩溃后自动拉起。这是生产环境服务稳定的基础配置。7. 容器模块Docker 从部署到镜像管理容器是当前运维工程师必须掌握的技能。K8s 和 Docker 的区别经常被拿来比较简单理解Docker 解决“怎么把应用打包运行起来”K8s 解决“很多容器怎么编排调度”。7.1 Docker 安装与基础命令# RHEL 系安装 Docker 引擎 dnf install -y yum-utils yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo dnf install -y docker-ce docker-ce-cli containerd.io # 启动并设置开机自启 systemctl start docker systemctl enable docker # 验证 docker version docker run hello-world镜像拉取慢是常见问题可以通过配置镜像加速器解决。具体地址以 Docker 官方文档或你使用的云厂商控制台为准配置后重启 Docker 服务生效。7.2 镜像、容器、数据卷# 拉取镜像 docker pull nginx:1.26 # 查看镜像与容器 docker images docker ps -a # 运行一个前台容器 docker run -d --name web -p 8080:80 -v /data/web:/usr/share/nginx/html nginx:1.26 # 进入容器 docker exec -it web bash # 停止、删除容器 docker stop web docker rm web # 构建自定义镜像 cat Dockerfile EOF FROM nginx:1.26 COPY index.html /usr/share/nginx/html/ EOF docker build -t my-web:v1 .学习容器时重点理解镜像层、容器层、数据卷三个概念。镜像只读容器可写数据卷持久化。很多容器数据丢失的问题都是因为没搞清楚这三个层的分工。7.3 Docker Compose 多容器编排企业里部署 LNMP 环境时很少手动一个个启动容器通常用 Compose 管理。version: 3 services: nginx: image: nginx:1.26 ports: - 80:80 volumes: - ./html:/usr/share/nginx/html mysql: image: mysql:8.0 environment: MYSQL_ROOT_PASSWORD: root123 volumes: - mysql_data:/var/lib/mysql php: build: ./php volumes: mysql_data:启动命令docker compose up -d docker compose ps docker compose logs -f nginx容器和虚拟机的区别、容器网络模式、镜像分层原理这些不仅是技能点也是 k8s 学习前的必要铺垫。阅读docker镜像时注意只从官方仓库或可信来源拉取基础镜像版本号尽量锁定避免“latest”带来的不确定性。8. K8s 模块从容器编排到集群部署学会 Docker 之后K8s 是运维技能树的下一站。K8s 最核心的价值是把多台服务器变成一个资源池让应用可以自动调度、自动扩展、故障自愈。8.1 架构理解K8s 集群由控制平面和工作节点组成。控制平面负责调度决策工作节点负责运行 Pod。Master/控制平面API Server、etcd、Controller Manager、SchedulerWorker/工作节点kubelet、kube-proxy、容器运行时学习初期不需要把每个组件源码都搞清楚先理解 API Server 是集群的“入口”etcd 存状态kubelet 负责把 Pod 跑起来。8.2 安装与常用 kubectl 命令K8s 安装部署本身比较复杂推荐先从 minikube 或 k3s 这类轻量发行版入手把 kubectl 和资源对象练熟再考虑 kubeadm 部署生产集群。# kubectl 查看节点 kubectl get nodes # 查看命名空间与 Pod kubectl get ns kubectl get pods -n default # 查看服务 kubectl get svc # 查看日志 kubectl logs -f deployment/myapp # 进入 Pod kubectl exec -it pod-name -- bash8.3 YAML 资源编排K8s 的一切都是声明式配置写 YAML 是基本功。下面是一个 Deployment 加 Service 的示例。apiVersion: apps/v1 kind: Deployment metadata: name: nginx-deploy spec: replicas: 3 selector: matchLabels: app: nginx template: metadata: labels: app: nginx spec: containers: - name: nginx image: nginx:1.26 ports: - containerPort: 80 --- apiVersion: v1 kind: Service metadata: name: nginx-svc spec: selector: app: nginx ports: - port: 80 targetPort: 80 type: NodePortkubectl apply -f nginx.yaml kubectl get pods -o wide kubectl scale deployment nginx-deploy --replicas5学习 K8s 时最容易踩坑的是网络插件和镜像拉取。网络插件未部署时Pod 可能一直处于 Pending 状态镜像拉取失败时Pod 会停留在 ImagePullBackOff。遇到这类问题不要急着重新初始化先看事件kubectl describe pod pod-name9. 监控模块从服务器监控到告警没有监控的服务器就像没装仪表的机房出了故障只能靠用户发现。企业级监控一般覆盖四层基础设施监控、中间件监控、应用监控、业务拨测。9.1 监控对象CPU 使用率、负载、上下文切换内存使用率、Swap 使用磁盘空间、inode、IO 延迟网络流量、TCP 连接数进程与端口存活9.2 常用监控工具生产中常见的方案是 Prometheus node_exporter Grafana适合容器化环境Zabbix 则更适合传统物理机、虚拟机监控。Prometheus 采集数据的流程是node_exporter 暴露指标端口Prometheus 定时拉取Grafana 可视化展示。# 使用 Docker 快速启动 node_exporter docker run -d --name node-exporter -p 9100:9100 prom/node-exporter # 验证指标接口 curl http://127.0.0.1:9100/metrics | head -20Grafana 的告警规则可以配置在指标连续 5 分钟超过阈值时触发通知。监控体系搭建完成后还需要坚持做“告警演练”否则告警发出来也没人响应。9.3 排查时的系统指标分析监控不只是搭系统还要会读指标。比如 CPU 使用率不高但系统很卡可能是 IO 等待高内存充足但频繁使用 Swap可能是应用内存分配策略问题。建议熟练掌握以下命令的组合使用top、vmstat、iostat、pidstat。10. 审计模块日志、命令与权限审计审计在运维工作中起到“事后追溯”的作用。服务器被入侵或误操作后审计日志是还原现场的依据。10.1 登录与操作审计# 查看登录记录 last lastb # 查看当前登录用户 who -a # 查看命令历史 history生产环境建议开启 sudo 日志统一记录所有 sudo 命令。常见做法是用 rsyslog 把 sudo 日志转发到独立日志目录或日志服务器。10.2 文件权限与完整性问题通过定期检查文件权限和校验和可以发现异常改动。安全基线里常见的要求包括/etc/shadow权限为 000 或 400SSH 禁止 root 直接登录删除无用的系统账号和未授权 sudo 用户检查/etc/cron*下的定时任务是否有堆文件审计模块的学习重点是“能发现问题”比如发现某用户登录时间异常、某个配置文件的属主被改成了非 root这种时候要有能力从头排查相关日志确认影响面并修复。10.3 日志集中管理思路日志集中管理适合用“采集 传输 存储 检索”四层来描述。轻量方案可以用 Filebeat Elasticsearch Kibana也可以直接用云厂商日志服务。学习阶段先用本地的journalctl、rsyslog掌握日志格式和转发原理再迁移到集中式平台会更顺。11. 数据库模块MySQL 与 Redis 运维数据库运维是 Linux 运维课程里非常重要的模块。web 应用最常见的数据库组合是 MySQL Redis。这个部分学多少直接决定你能不能处理“数据库连接不上”“网站响应慢”“数据丢了找不回来”这类问题。11.1 MySQL 安装与服务管理# RHEL 系安装 MySQL 8.0 dnf install -y mysql-server systemctl start mysqld systemctl enable mysqld # 查看初始密码 grep temporary password /var/log/mysqld.log安装完成后需要执行安全初始化mysql_secure_installation设置 root 密码时要符合强度要求生产环境不要保留空密码和无授权远程账号。11.2 备份与恢复备份是数据库运维最重要的底线技能。常用工具是逻辑备份mysqldump和物理备份 XtraBackup。# 全量备份 mysqldump -uroot -p --single-transaction --routines --triggers mydb /backup/mydb_$(date %F).sql # 恢复 mysql -uroot -p mydb /backup/mydb_2026-01-01.sql备份脚本要加定时任务、保留周期和恢复演练。只做备份不演练等于没有备份。11.3 Redis 运维要点# 安装并启动 dnf install -y redis systemctl start redis systemctl enable redisRedis 学习重点包括数据类型、持久化机制 RDB 与 AOF、内存淘汰策略、慢查询日志。生产环境 Redis 必须以受保护模式运行禁止绑定 0.0.0.0 且不带密码。实际线上 Redis 被攻击利用的案例有很多学习时就要建立安全意识。11.4 数据库常见故障排查方向MySQL 无法启动时先从错误日志入手常见原因包括磁盘满、my.cnf配置错误、权限不对、端口被占用。连接数被打满时查看max_connections配置和活跃会话数分析是慢查询太多还是应用连接池泄漏。慢查询问题可以开启slow_query_log定期分析慢 SQL有针对性地加索引或改写查询。12. 企业实战模块把知识串成项目学完单个模块后一定要至少做两到三个综合项目把命令、脚本、容器、K8s、监控、数据库全部串起来。推荐下面几个方向。12.1 新服务器初始化项目写一套自动化脚本完成以下动作修改主机名配置 yum/apt 源创建普通运维用户并配置 sudo配置 SSH 免密登录和禁止 root 登录配置时间同步安装常用软件这类脚本可以直接复用到以后的工作中也是很多运维面试里常问的项目。12.2 LNMP 容器化部署项目用 Docker Compose 部署 Nginx PHP MySQL模拟一个完整的 Web 环境。完成后把流量压上去观察 Nginx 访问日志、MySQL 慢查询日志确认容器日志怎么收集。12.3 微服务部署到 K8s把一个包含前端、后端、数据库的简单应用部署到 K8s配置 ConfigMap、Secret、Ingress演示滚动更新和回滚。重点是理解 Deployment 版本升级如何通过 YAML 变更触发以及 Service 如何做负载均衡。12.4 监控与审计综合项目将 Node Exporter Prometheus Grafana 部署到刚才的 K8s 集群添加 MySQL、Nginx 仪表盘配置 CPU 超过阈值时的告警。再配置 sudo 日志集中收集做一个“某管理员执行了哪些危险命令”的操作审计报告。13. 学习过程中常见问题与排查方法问题现象可能原因排查方式解决方案虚拟机无法上网网卡未启动、桥接模式配置错误ip a查看 IPping网关检查虚拟网络编辑器重新配置网卡yum 源不可用默认源访问慢或已失效执行dnf repolist查看更换国内可用镜像源清理缓存SSH 连接被拒绝sshd 未启动或端口被改systemctl status sshd、ss -tlnp启动 sshd确认端口和防火墙放行端口被占用服务冲突或残留进程ss -tlnp查看进程 PID停止残留进程或更换端口Docker pull 超时镜像源访问慢查看/etc/docker/daemon.json按官方文档配置可用镜像加速器并重启 dockerPod 一直 Pending资源不足、节点标签不符、网络插件未装kubectl describe pod查看事件补足资源确认节点标签部署网络插件ImagePullBackOff镜像名错误或拉取失败kubectl describe pod修正镜像地址检查鉴权配置systemctl start 后服务立刻退出配置文件错误或启动命令路径不对journalctl -u 服务名 -f根据日志修正配置验证 ExecStart 路径可执行MySQL 无法启动数据目录权限、磁盘空间、my.cnf 错误查看/var/log/mysqld.log修复权限、清理磁盘、还原配置服务器重启后服务没自启未 enable 服务systemctl list-unit-files执行systemctl enable 服务名crontab 任务没执行脚本环境变量缺失或路径错误手动执行脚本查看备份日志脚本内定义 PATH日志重定向便于排查磁盘空间被日志占满日志未轮转或未清理df -hT、du -sh /var/log/*配置 logrotate定期归档清理sudo 命令执行失败用户不在 sudo 组groups 用户名usermod -aG wheel 用户名并重新登录记不清命令但知道用途需要命令速查方法man、--help查询整理自己的命令笔记形成个人知识库14. 学习路径建议与最佳实践这套 Linux 运维课程包含的知识量不小学习时要按自己的基础排序不要一上来就啃 K8s。最稳妥的学习顺序是命令 → Shell 脚本 → 服务管理 → Docker → K8s → 监控 → 审计 → 数据库 → 企业综合实战。具体建议如下先搭一个可随时回滚的实验环境虚拟机快照是学习利器出错直接回滚比反复修配置高效得多。每天保持 60 分钟以上的实操时间。命令不敲是记不住的特别是 tar、find、awk、sed 的配合使用只有遇到真实问题才会有感觉。每学一个模块就写一篇笔记。不用追求排版重点是记录自己踩过的坑、验证过能用的命令和配置。至少做三个综合项目并且写出项目文档。面试官更愿意听你讲“怎么把一个 LNMP 环境容器化然后部署到 K8s再接入监控”而不是听你背命令参数。生产环境操作必须有变更流程。不要在生产服务器上执行不确定后果的命令高权限操作前先确认影响范围尽量在测试环境复现一遍。涉及数据库、账号权限、日志审计的内容学习过程中就要建立合规意识禁止把测试账号密码、客户数据随便放到公网。这套课程最值得花时间的地方是把 Linux 基础、容器、编排、监控、数据库这些零散知识连成了一条完整链路。如果你现在还是零基础建议从第 4 章的常用命令开始先让自己能在终端里流畅操作文件、进程和网络再逐步往上搭建容器和环境。最容易劝退新手的坑不是命令难而是贪多、不敲、不总结。把虚拟机打开照着命令敲一遍遇到问题就按第 13 节的排查表定位坚持一个月效果会比刷几十个视频明显得多。