Linux学习路线

为什么要学习Linux?

为什么学Linux,每个人都有自己的理由:

Linux是免费的不用花一分钱,能够节约大笔的成本;

Linux是开源的,你可以根据自已的需要修改源代码;

Linux是开放的,有广泛的社区,关于Linux的讨论要远远高于windows操作系统;

学习Linux可以更好的掌握计算机技术;

Linux是未来发展的趋势,服务器,手机,掌上电脑,平板机很多都采用Linux操作系统;

Linux有非常多的发行版本,你可以根据需要做出不同的选择;

Linux让你多了一个选择,而且Linux下的病毒相比Window可以忽略不计;

Linux是一种自由哲学,一种开源的信仰;

最后Linux很好玩,让人着迷……

Linux能做什么?

世界上最快的超级计算机90%以上都使用Linux或类似操作系统,说明Linux速度快;

而且简装的Linux(如LFS)估计也是特别适合老机器了;

如果你听说过Android的话,你就会知道Linux将广泛应用于平板电脑和手机;

如果你体验过Chorme OS,Google doc,或者WebQQ的话,你会觉得操作方式有点仿Linux;

还有很多软件一般都是现出类-Unix版本,然后才出Window版本;

Linux下很多软件都是跨平台的,反之Window则不是;

Linux在Web上的优势,也将会在WebOS,云时代得到充分迸发……

如何选择Linux?

第一根据自己的硬件,你的硬件是32位你也装不了64位,你是老机器,就不要勉强体验最新版KDE,不然备受折磨,不但要心有余而且还要力足才行。

第二看你的应用平台是做什么,做服务器当然要选择稳定的服务器版本;个人电脑选用软硬件技术支持较新的最新稳定版本,测试开发可以选最前沿的不稳定版本;老机器选用最初始的LFS或者较老的版本。

第三是如何选择桌面环境,这个就好比穿衣服。硬件就是你的经济能力,硬件好可以穿新衣服和豪华的衣服,如KDE,Gnome,Unity,硬件不好就只能穿Xfce,Lxde,再差就穿Blackbox等Boxes直流,以及2000行代码左右的操作条。总之相同条件下,穿的越简朴,跑的也越快。 所有的Linux发行版,内核都是一样的,只不过是新旧的区别,所谓不同仅在于针对不同的硬件进行了配置和优化;针对不同人群喜好穿不一样的衣服(桌面环境+软件);针对不同的专业人士提供不同的软件包(教育类Eubuntu,GIS的Poseiden,CAD的CAELinux等);开发配置不同的软件管理和更新库的软件;最后就是本身的设计理念和哲学各自版本不大相同。萝卜茄子各取所爱,你完全可以去DistroWatch这个网站对比挑选自己喜好的Linux。个人倾向于Gnome桌面环境,限于目前的技术和对比,我在笔记本选择安装Ubuntu,至少Ubuntu确实比Opensuse快一些,而且使用者最多,软件,社区和资源都是比较丰富的,利于初学。另外在台式机选择安装了mint-xfce-debian-201104这个Debian Testing的滚动更新版本,她结合了mint的简洁与增强,Debian的纯自由和我最喜好的滚动更新方式。 谈论这么多其实都是Linux的皮毛,Linux的优势并不在于其有多少版本,当然选择权也是一个很重要的优势,个人反而觉得其最大的优势在于你从这些不同之中挖掘相同:比如相同的系统核心;操作几乎都可以通过Terminal来完成;不同的版本上相同软件,这些都是共性,也是真正要学习的。所以学习Linux的过程,下一步才是关键,即学习专业相关的软件,熟练应用;掌握一个“神器”级别的编辑器,如vim;不断提高编程技术,享受自由软件的理念并传播……

Linux学习路线

个人建议学习的路线如下:

第一阶段:初级入门

Linux基础知识、基本命令(起源、组成、常用命令如cp、ls、file、mkdir等常见操作命令)

Linux用户及权限基础

Linux系统进程管理进阶

Linux高效文本、文件处理命令(vim、grep、sed、awk、find等命令)

shell脚本入门(可边练习边学习)

第二阶段:中级进阶

中级进阶需要在充分了解Linux原理和基础知识之后,对上层的应用和服务进行深入学习,其中说到服务肯定涉及到网络的相关知识,是需要花时间学习的。

TCP/IP网络基础(差不多HCIA、HCIP的知识就够用)

Linux企业常用服务(如dns、http、ftp、mail、nfs等)

Linux企业级安全原理和防范技巧(系统性能/安全、安全威胁模型和保护方法

加密/解密原理及数据安全、系统服务访问控制及服务安全基础

iptables安全策略构建

shell脚本进阶(主要是结合一些应用,写一些案例)

MySQL应用原理及管理入门(能管理和搭建一个个人博客站点)

学到这里,掌握的基本技能已经够用了,已经能做一些基础的运维工作和简单维护了。

第三阶段:高级提升

http服务代理缓存加速(其中主要学习varnish、nginx缓存系统,要对CDN的知识有所了解。)

企业级负载集群(其中主要学习nginx、haproxy、lvs,要对主要知识熟练掌握,对负载均衡算法有清晰认识,)

企业级高可用集群 (其中需要对keepalived,heartbeat等进行深入讲解)

运维监控zabbix详解(主要是zabbix、cacti、nagios等监控系统,现在用的比较多的是zabbix)

运维自动化学习(需要学一些开源运维自动化工具的使用如ansible、puppet、cobbler等运维自动化工具)

能掌握到这里,基本能搞定很多工作了,可以去面试高级运维工程师,差不多薪资能达到12-20K左右

第四阶段:资深方向进阶

大数据方向(需要对Hadoop、storm等常见开源大数据系统需要深入了解)

云计算方向(主要是OpenStack这套东西,当然像一些KVM等虚拟化技术,也是需要掌握的,现在docker跟K8S也比较流行)

运维开发(主要是Python运维开发)

自动化运维(在之前自动化基础上做深入)

运维架构师(主要需要广度,差不多5年左右以上经验,可以担当此职位)