author:joker、starduster
目标:
- 我们为什么要使用 Unix/Linux
- 了解 Unix/Linux 基本结构
- 了解我们的互联网的基本结构,尤其是分层模型,这对我们管理服务器至关重要
参考资料
目标:
- 熟悉常用linux系统的安装
测试方向:
- Virtual Box 安装CentOS/Debian(Desktop/Server)
- 尝试安装 Gentoo、Arch 等没有自带安装引导的发行版(可选)
时长: 1~2周
参考资料:
- 谷歌
- Archwiki
目标:
ls
,mv
,useradd
,usermod
等命令vim
,nano
,emacs
编辑器- Linux 权限
- CentOS/Debian 系的
yum
/apt
包管理器
测试方向:
- 了解更新源原理,熟悉管理器的常用操作,如
apt-cache search
,了解什么是依赖,怎么处理依赖关系,了解yum
和apt-get
使用上的一些区别 - 文件/用户权限管理
时长: 2~4周
参考资料:
- 《鸟哥的私房菜(基础篇)》
- man手册
目标:
- Apache/Nginx
- PHP/Python 后端服务
- MySQL
测试方向:
- LNMP/LAMP 环境搭建(重点了解配置文件格式)
- MySQL数据库安装配置及基本操作
- PHP 和 Apache/Nginx 如何交互(fastcgi、uwsgi、mod_php)
时长: 4周
参考资料:
- 《鸟哥的私房菜(服务器篇)》
- 《深入理解 Nginx》
- 《MySQL 必知必会》
- 官方文档:nginx.org,中文翻译:淘宝 tengine 项目文档翻译
目标:
- Shell 脚本入门
- crontab 及进程机制
- 学习如何管理服务器
测试方向:
- 了解 bash 的基本语法和一些保留字如反引号
`
、中括号[
等 - 使用管道(
|
)和重定向(>
、>>
)传递参数和信息,使用find
、grep
、xargs
进行信息处理 - 分支判断和条件、循环的语法
- 使用
awk
和sed
输入输出流和文本处理 - 使用
netstat
等判断服务器网络状态、使用ps``top
进行进程管理, - 使用
iptables
对网络进行基本管理 - 使用
cron
定时任务处理
时长: 4~6周
参考资料:
- 《高级 Bash 脚本编程指南》(HTML version on TLDP)
- 《Linux 命令行与 Shell 脚本编程大全》
- 极客学院 Wiki
- Linux 工具快速教程
- Google shell style guide
目标:
- Python 基础语法
- Python 常见库的使用
- 开发(爬虫,数据处理,后台开发,CUDA等方向)
测试方向:
- Python 实现 Linux 服务监控及数据存取
- 开发方向任选,成品展示
时长: 3~6周
参考资料:
- 《Python cookbook》,python 标准库
- 官方手册
- 廖雪峰的网站
- 深入 Python3
- Googel python style guide
一开始我是想把标题写成入门指南的,实际上写的并不只是入门的内容,关键在于动手去做,走过上面这些,可能已经半年、一年或者更长时间过去,接下来有什么发展方向,相信到时候自己自有体会,在这里列出一些可以参考的方向:
- Nginx 高级应用(负载均衡、反向代理),了解 HAProxy、Squid、Redis 等工具—— Web 方向
- 深入了解数据库结构,了解关系型之外的数据库如 Mongodb —— DBA(数据库管理员)方向
- 了解 KVM OpenVZ Docker —— 虚拟化方向
- ······
如果你想作为一个 SA 走出校园,这些网站可能帮得到你:
Happy coding~