Linux运维全套学习路线:零基础Linux运维学习路线
如果你是零基础想进入Linux运维行业,面对海量资料往往不知道从哪下手。这篇文章为你梳理出一条2026年仍然适用的学习路线,从装好环境到能独立部署服务、写自动化脚本、搭建监控,每一步都配有可执行的命令和配置示例。
## 第一步:搭建可以随便折腾的实验环境
不管用 Windows 还是 macOS,都建议先在虚拟机里装一个 Linux 发行版。推荐使用当前主流的 CentOS Stream 或 Ubuntu LTS,两者在企业里都很常见。
**操作路径**:
1. 下载 VirtualBox 或 VMware Workstation Player(免费版即可)
2. 下载 Ubuntu 22.04 LTS ISO 或 CentOS Stream 9 ISO
3. 创建虚拟机时分配 2 核 CPU、4GB 内存、40GB 磁盘(最小化安装即可)
4. 安装完成后用 `ip a` 查看 IP 地址,然后用 MobaXterm 或 FinalShell 远程连接
**验证环境**:执行 `uname -a` 能看到内核版本和架构,说明系统已正常启动。
## 第二步:掌握高频命令和文件管理
这一阶段不需要记下所有命令,重点掌握文件操作、用户权限、进程管理和文本处理。
**核心命令清单**:
- `ls -lh` 查看文件详情,`cd /etc` 切换目录
- `cp -r /src /dst` 复制目录,`mv` 移动/重命名,`rm -f` 强制删除
- `chmod 755 file` 修改权限,`chown user:group file` 修改所有者
- `ps aux | grep nginx` 过滤进程,`kill -9 PID` 强制终止
- `grep 'error' /var/log/syslog` 搜索日志,`awk '{print $1}'` 提取第一列
- `systemctl status sshd` 检查服务状态,`journalctl -u sshd` 查看服务日志
**练习场景**:写一个简单的查找日志中所有 5xx 错误的命令,并统计出现次数。
## 第三步:安装并配置常用服务(Nginx + MySQL)
运维最常打交道的是 Web 服务和数据库。这里以 Ubuntu 为例演示。
**安装 Nginx**:
```bash
sudo apt update
sudo apt install nginx -y
sudo systemctl enable --now nginx
```
检查是否运行:`curl http://localhost` 看到 Welcome to nginx 页面则成功。
**修改默认页面**:
```bash
sudo echo '
My First Server
' > /var/www/html/index.html
```
**安装 MySQL**:
```bash
sudo apt install mysql-server -y
sudo mysql_secure_installation # 设置 root 密码、移除匿名用户等
```
登录测试:`sudo mysql -u root -p` 输入密码后看到 `mysql>` 提示符即可。
**实战配置**:创建一个数据库和用户用于后续项目。
## 第四步:用 Shell 脚本实现自动化
学会写简单的 Shell 脚本能大幅提升效率,也是运维进阶的基石。
**第一个脚本示例**:
```bash
#!/bin/bash
# 每天凌晨备份 /var/www 目录到 /backup,保留最近7天的备份
BACKUP_DIR="/backup"
SOURCE="/var/www"
DATE=$(date +%Y%m%d)
tar -czf "$BACKUP_DIR/www-$DATE.tar.gz" "$SOURCE"
find "$BACKUP_DIR" -name "www-*.tar.gz" -mtime +7 -delete
echo "Backup completed at $(date)"
```
保存为 `backup.sh`,添加执行权限 `chmod +x backup.sh`,然后放入 cron 定时任务:
```bash
crontab -e
0 3 * * * /home/youruser/backup.sh
```
**验证**:执行一次脚本,检查 `/backup` 目录下是否生成了 `.tar.gz` 文件,并解压查看内容。
## 第五步:搭建基础监控(Prometheus + Node Exporter)
学到这里你已经可以管理单台服务器了,但企业里往往需要监控多台机器的资源。
**安装 Node Exporter(被监控端)**:
```bash
wget https://github.com/prometheus/node_exporter/releases/download/v1.6.0/node_exporter-1.6.0.linux-amd64.tar.gz
tar xzf node_exporter-1.6.0.linux-amd64.tar.gz
sudo mv node_exporter-1.6.0.linux-amd64/node_exporter /usr/local/bin/
node_exporter --version # 验证安装
```
创建 systemd 服务文件 `/etc/systemd/system/node_exporter.service`:
```ini
[Unit]
Description=Node Exporter
[Service]
ExecStart=/usr/local/bin/node_exporter
Restart=always
User=nobody
[Install]
WantedBy=multi-user.target
```
启动:`sudo systemctl enable --now node_exporter`,访问 `http://服务器IP:9100/metrics` 看到一堆指标即成功。
**安装 Prometheus(服务端)**:
在另一台机器或本机另开端口,参考官方文档用类似方式解压并启动,然后编辑 `prometheus.yml` 添加 Node Exporter 作为 target。
**避坑指南**:
- 防火墙一定要放行对应端口(9100、9090),命令:`sudo ufw allow 9100/tcp`
- 如果 `curl` 不通,先用 `ss -tlnp | grep 9100` 确认进程是否在监听
- Node Exporter 默认以 nobody 运行,可能会缺权限读取某些指标,可以改为 `User=root` 或配置文件权限
**效果验证**:打开浏览器访问 `http://Prometheus服务器IP:9090`,在查询框输入 `node_cpu_seconds_total` 能看到数据曲线,说明监控链路跑通。
## 常见问题解答
**Q1:学习过程中遇到命令找不到怎么办?**
A:先用 `which 命令名` 看是否在 PATH 里,如果没有执行 `sudo apt install 命令名`(Ubuntu)或 `sudo yum install 命令名`(CentOS)。
**Q2:服务器被误操作搞崩了怎么恢复?**
A:虚拟机环境下直接恢复快照;生产环境建议在操作前备份重要配置文件(`cp /etc/nginx/nginx.conf /etc/nginx/nginx.conf.bak`)。
**Q3:脚本定时执行没生效?**
A:检查 crontab 用户是否正确(当前用户),日志文件 `/var/log/cron` 或用 `grep CRON /var/log/syslog` 查看具体错误。
如果你按照上述路线一步步搭建,现在应该具备了一台可远程管理的 Linux 服务器,安装了 Nginx 和 MySQL,能写脚本做备份,还挂上了资源监控。下一步可以继续深入学习 Ansible 自动化、Docker 容器化、以及 Kubernetes 编排,这些都是企业运维岗位的加分项。如果在练习中遇到具体报错,欢迎在评论区留言,我会根据实际案例继续补充排错细节。