Linux 与 Shell 编程 - 详细学习指南¶
📌 学习时间: 8-10 周(每周 15-20 小时) 📌 难度级别:入门 → 进阶 📌 适用人群: 985/211 计算机专业研究生、后端/运维方向求职者
📚 学习总览¶
本指南为计算机相关专业研究生量身定制,提供系统性的 Linux 系统管理与 Shell 编程学习路径。目标是帮助你在 8-10 周内掌握 Linux 运维与 Shell 编程的核心理论和工程实践能力,为进入字节跳动、腾讯、阿里巴巴、百度、华为、美团等互联网大厂做好准备。
🎯 学习目标¶
短期目标( 1-3 周)¶
- 掌握 Linux 基本概念和命令行操作
- 熟练进行文件与目录管理
- 掌握文本处理三剑客( grep/sed/awk )
- 理解用户权限体系
中期目标( 4-6 周)¶
- 熟练编写 Shell 脚本
- 掌握进程管理和系统资源监控
- 理解网络管理和服务管理
- 能独立排查系统问题
长期目标( 7-10 周)¶
- 具备自动化运维开发能力
- 完成 3 个实战项目
- 能通过大厂 Linux/运维相关面试
- 具备生产环境操作经验
🧠 核心能力矩阵¶
1. 命令行操作能力¶
| 能力维度 | 初级 | 中级 | 高级 |
|---|---|---|---|
| 文件操作 | ls/cd/cp/mv | find/locate/xargs | 复杂 find 组合 |
| 文本处理 | cat/head/tail | grep/sed 基础 | awk 编程/正则精通 |
| 权限管理 | chmod 基础 | SUID/SGID/ACL | SELinux/AppArmor |
| 进程管理 | ps/kill | top/htop/strace | 性能分析/调优 |
| 网络管理 | ping/curl | ss/tcpdump | iptables/网络排障 |
2. Shell 编程能力¶
| 能力维度 | 初级 | 中级 | 高级 |
|---|---|---|---|
| 变量与运算 | 变量赋值/引用 | 数组/字符串操作 | 间接引用/nameref |
| 流程控制 | if/for 基础 | case/while/until | 信号处理/trap |
| 函数 | 简单函数定义 | 参数传递/返回值 | 递归/函数库 |
| 文件处理 | 重定向基础 | 管道/进程替换 | 文件描述符/命名管道 |
| 工程能力 | 简单脚本 | 日志/配置/错误处理 | 框架设计/模块化 |
3. 系统管理能力¶
| 能力维度 | 初级 | 中级 | 高级 |
|---|---|---|---|
| 服务管理 | systemctl 基础 | 自定义 service | 依赖管理/调优 |
| 定时任务 | crontab 基础 | 复杂调度 | 分布式定时任务 |
| 日志管理 | 查看日志 | logrotate 配置 | ELK 日志分析 |
| 包管理 | apt/yum 安装 | 源码编译 | 私有仓库搭建 |
| 性能调优 | free/df 查看 | vmstat/iostat 分析 | sysctl/内核参数 |
📅 详细学习计划¶
第一阶段:基础夯实(第 1-3 周)¶
第 1 周: Linux 基础与文件管理¶
学习内容: - 01-Linux 基础入门.md - Linux 发展历史与发行版( 1 天) - 安装方法: WSL/虚拟机/云服务器( 1 天) - 目录结构与 FHS 标准( 1 天) - 02-文件与目录管理.md - 基本文件操作命令( 2 天) - 文件权限与特殊权限( 1 天) - 链接与通配符( 1 天)
学习时间:每天 3-4 小时,总计 20-25 小时
练习目标: - [ ] 能在命令行中自如导航文件系统 - [ ] 能正确设置文件权限 - [ ] 理解硬链接与软链接的区别 - [ ] 能编写简单的 find 命令
第 2 周:文本处理与用户管理¶
学习内容: - 03-文本处理三剑客.md - grep 与正则表达式( 2 天) - sed 流编辑器( 2 天) - awk 数据处理( 2 天) - 管道与重定向( 1 天) - 04-用户与权限管理.md(穿插学习)
学习时间:每天 3-4 小时,总计 20-25 小时
练习目标: - [ ] 能用 grep 进行日志搜索 - [ ] 能用 sed 进行批量文本替换 - [ ] 能用 awk 处理 CSV/日志文件 - [ ] 理解用户/组/权限的关系
第 3 周:进程管理与 Vim¶
学习内容: - 05-进程管理.md - 进程概念与生命周期( 1 天) - 进程监控工具( 2 天) - 系统资源监控( 1 天) - /proc 文件系统( 1 天) - 10-Vim 编辑器.md - Vim 三种模式( 1 天) - 高效编辑技巧( 1 天)
学习时间:每天 3-4 小时,总计 20-25 小时
练习目标: - [ ] 能用 top/htop 分析系统负载 - [ ] 掌握前后台进程切换 - [ ] 能用 Vim 高效编辑文件 - [ ] 配置个人 .vimrc
第二阶段:编程进阶(第 4-6 周)¶
第 4-5 周: Shell 脚本编程(重点)¶
学习内容: - 06-Shell 脚本编程.md - 变量与数据类型( 1 天) - 条件判断与分支( 2 天) - 循环结构( 2 天) - 函数与数组( 2 天) - 字符串操作与算术运算( 1 天) - 调试技巧( 1 天) - 15 个实用脚本练习( 5 天)
学习时间:每天 4-5 小时,总计 50-60 小时
练习目标: - [ ] 独立编写系统管理脚本 - [ ] 掌握错误处理和日志记录 - [ ] 能读懂并修改他人脚本 - [ ] 完成全部 15 个脚本练习
第 6 周:网络与服务管理¶
学习内容: - 07-网络管理.md - 网络工具( 2 天) - SSH 配置与远程管理( 2 天) - 防火墙基础( 1 天) - 08-服务与系统管理.md - systemd 与服务管理( 1 天) - Crontab 与日志系统( 1 天)
学习时间:每天 3-4 小时,总计 20-25 小时
第三阶段:实战冲刺(第 7-10 周)¶
第 7 周:包管理与综合复习¶
学习内容: - 09-包管理与软件安装.md - 包管理工具( 2 天) - 源码编译安装( 2 天) - 开发环境管理( 1 天) - 综合复习与查漏补缺( 2 天)
第 8-9 周:实战项目¶
学习内容: - 11-实战项目.md - 项目一:自动化服务器监控脚本( 3 天) - 项目二:日志分析与报警系统( 4 天) - 项目三:自动化部署脚本( 4 天) - 代码优化与文档编写( 3 天)
第 10 周:面试冲刺¶
学习内容: - 面试准备 - 高频面试题练习( 4 天) - 模拟手写 Shell 脚本( 2 天) - 模拟面试与复盘( 1 天)
🏆 大厂面试 Linux 考察重点¶
字节跳动¶
- Shell 脚本手写(高频)
- 日志分析命令组合
- 进程排查与性能分析
阿里巴巴¶
- Linux 系统管理
- 自动化运维脚本
- 系统性能调优
腾讯¶
- 网络相关命令
- 系统资源监控
- Shell 编程能力
美团¶
- 日志处理与分析
- 定时任务配置
- 服务管理与排障
华为¶
- Linux 内核基础
- 文件系统与磁盘管理
- 网络配置与排障
📊 每日学习模板¶
日期:____年__月__日
章节:________________
1. 今日学习内容:
-
-
-
2. 实操练习:
- [ ] 练习1:
- [ ] 练习2:
- [ ] 练习3:
3. 遇到的问题:
-
4. 解决方案:
-
5. 明日计划:
-
🔧 学习环境搭建¶
推荐配置¶
# 1. WSL2 安装(Windows 用户推荐)
wsl --install -d Ubuntu-22.04
# 2. 基础工具安装
sudo apt update && sudo apt upgrade -y # &&前一个成功才执行后一个;||前一个失败才执行
sudo apt install -y vim git curl wget net-tools htop tree
# 3. 配置 Shell 环境
echo 'alias ll="ls -alF"' >> ~/.bashrc
echo 'alias la="ls -A"' >> ~/.bashrc
echo 'export HISTSIZE=10000' >> ~/.bashrc
echo 'export HISTFILESIZE=20000' >> ~/.bashrc
source ~/.bashrc
# 4. 创建练习目录
mkdir -p ~/linux-practice/{scripts,logs,projects}
终端工具推荐¶
- Windows: Windows Terminal + WSL2
- macOS: iTerm2
- 跨平台: Tabby 、 Warp
- 远程连接: VS Code Remote SSH 、 MobaXterm
📈 技能自测检查表¶
基础篇(完成第 1-2 周后)¶
- 能说出 Linux 内核与发行版的关系
- 能用 5 种方式查找文件
- 能解释
chmod 755的含义 - 能区分硬链接和软链接
- 能用 grep 进行正则匹配
- 能用管道组合 3 个以上命令
进阶篇(完成第 3-5 周后)¶
- 能用 awk 处理结构化文本
- 能写 50 行以上的 Shell 脚本
- 能使用 if/for/while/case 结构
- 能定义和调用 Shell 函数
- 能用 top 分析 CPU 和内存使用
- 能配置 SSH 密钥认证
实战篇(完成第 6-10 周后)¶
- 能编写自动化监控脚本
- 能配置 systemd 服务
- 能配置 Crontab 定时任务
- 能编写日志分析脚本
- 能独立部署 Web 服务
- 能回答 80% 的面试题
💡 常见学习误区¶
❌ 误区一:死记硬背命令¶
正确做法:理解命令的逻辑,善用 man 和 --help,常用命令自然熟记
❌ 误区二:只看不练¶
正确做法:每个命令至少实操 3 遍, Shell 脚本要从头写到尾
❌ 误区三:忽略错误处理¶
正确做法:工程化脚本必须包含错误处理、日志记录和参数校验
❌ 误区四:跳过基础直奔高级¶
正确做法:文件操作和权限是一切的基础,必须扎实
❌ 误区五:不做笔记¶
正确做法:建立个人命令手册,记录常见问题和解决方案
🎯 本指南小结¶
Linux 与 Shell 编程是后端开发、运维、 SRE 、云计算等方向的必备技能。通过本教程的系统学习,你将建立起扎实的 Linux 基础,具备独立运维和自动化开发的能力。
核心建议: - ✅ 保持每天 2-3 小时的持续练习 - ✅ 遇到问题先尝试自己解决,再查文档 - ✅ 把学到的命令立刻用到实际场景中 - ✅ 定期回顾和总结
下一步:开始学习 01-Linux 基础入门