说说我当初是如何学Linux的
今天我就说说我当初是如何从一名普通桌面维护工程师,通过学习和努力转成Linux运维工程师的,以及作为Linux运维工程师需要一些什么技能和知识,希望可以帮到一些对 Linux 有兴趣或者想往Linux这个方向转的,都可以看看。
15年我还在做普通的桌面维护工作,技术还算行,就是杂事很多。虽然说我们公司的Windows服务器也算稳定,可是公司每天都有很多杂事儿,一会打电话来说我输入法用不了了,一会说我office打不开Excel了,很浪费精力。持续了两年时间都是浑浑噩噩的。如今的互联网,绝大多数的网站、服务、游戏均是跑在Linux上面的,我不想再做这种打杂的工作了,因为自己也算是有计算机方面的基础,自信学起Linux来应该也不慢。于是网上找了一些视频和学习Linux方面的电子书。真的是贪多嚼不烂啊!在对比了大部分的电子书目录后,只选择了一本Linuxprobe网站里的电子书和一套Linux学习视频,我是觉得:只要掌握透彻了一本书,再差也不会差到哪儿去。因为在Windows上基础还行,很快搭好了学习环境,后面就是辛苦的实操了,反复练习。
现在我从事Linux运维已经2年了,一路下来,走了些弯路,但是总的来说,自己学很慢,我差不多花了大半年年时间,投入了相当的时间和精力,特别是在实操,。下面我想写下我的刚开始的阶段来帮助想学Linux的朋友。
作为刚入门的同学,无非视频、书籍、网站帖子之类的学习方式,视频虽然讲得详细,但是所需要花费的时间也是巨大的,据我了解很少有人能持之以恒把一系列视频看完;网站帖子之类的,一般都比较散乱,不成学习系统,学起来如同没有头的苍蝇;书籍从目录来看就非常有条理,看书可以系统化的学习、循序渐进,不会初学者不知道从哪儿开始的感觉。建议使用我上面的那本,如果有更好的,也你可以,但是一定要坚持,前期可以安装一个Linux虚拟机,重复练习为主要手段,把一本书好好吃透,重点是吃透,那么你也就入门了。
那么具体需要掌握哪些知识呢?这里罗列一些必须掌握的知识:
1、了解Linux FHS,这是Linux的体系结构,明白大致原理
2、不重复80个常用Linux基础、运维命令,挂载
3、TCP/IP协议,网络配置相关知识
4、SSH原理及应用
5、防火墙的基本配置,iptables
在Linux下面掌握一些初级工具、技能是非常有必要的:
1、Vim编辑器,无论对于写配置文件,还是写语言脚本,Vim始终是Linux上面的必备神气,需要掌握基本操作方法、快捷键。
2、Git版本控制,很多人可能觉得没有必要,这个是开发才学的嘛,其实不然,今天Devops的日渐崛起,对于传统运维工程师来说是一个挑战,也是一个机遇。工程师们日常需要写大量的脚本,可以使用Git来管理、备份常用代码、脚本。
3、Shell编程,写脚本当然需要Shell啦,这也是基础。同上,作为Devops来说,再学习一门高效的脚本语言也是必需的,这里推荐Python,不过这是后话,先把Shell掌握了再说吧。
其实如果你把上面的要求掌握到80%,基本上算入门了,接下来需要去学习一些硬件知识,做运维工程师会经常和网络设备,服务器等硬件设备打交道,对于硬件知识也要做到了解。特别是判断硬件的优劣的核心参数,比如内存的存储介质、容量、速度、奇偶校验,CPU的制造工艺、核数线程、内外频、缓存等等。我们在工作中不仅仅只需要"软知识","硬知识"也是必不可少的关键技能,特别是当公司业务剧增,需要新增机房、服务器时,就要用很多"硬知识"了,网络传输介质的选择、UPS等等,都应该有所了解。
之前学习的都是基础的"软知识",接下来就要学习一些高级的"软知识"。掌握最常用的服务搭建,每个公司也业务架构都不太一样,但是常用的服务也就那些,简单来说业务架构就是各种服务不同形式的组合。 对于Linux运维工程师来说,你公司需要搭建各种服务器,比如文件共享服务器、Git服务器、数据库服务器、常见Web架构的部署、大公司可能还需要DHCP服务器等等。
一般来说你搭建某类服务器,都会有官方的指导手册。比如MySQL服务器的搭建、Git服务器搭建等等。Google到官网按照Tutorial手册一步一步来(翻*墙自己找梯子,百度到官网也行),基本上八九不离十的,当然也有很多网友现成的帖子可以直接翻翻看。这里需要注意的是,Linux的版本不一样,服务安装会有一些差异,当你遇到问题搜索的时候,建议加上Linux的发行版本,这样可以更加精准的匹配问题,你可以放心,你遇到的问题,你前面的无数人已经遇到过了(乐于分享回馈后来人)。
最后推荐 《Linux就该这么学》 ,就是我之前在网站里学过的电子书,现在出了纸质版。我觉得还是踏踏实实的多实操,练习,再难得东西,都没有多难,现在的人啊。都是太懒了,才跑不动的。