Linux就该这么学 一名Linux运维工程师养成记

Linux就该这么学 一名Linux运维工程师养成记

时间:2020-03-09 18:15 作者:admin 点击:
阅读模式

Linux系统是使用Linux内核及开源自由软件组成的一套操作系统,是一种类UNIX系统,其内核在1991年10月5日由林纳斯·托瓦兹首次发布。它的主要特性:Linux文件一切皆文件、完全开源免费、支持多用户和多任务、同时还支持多种架构平台、可靠的安全性、良好的稳定性、具有强大的网络功能、多样图形界面;近几年Linux系统慢慢吸引了不少人,正是由于它的强大,支撑着巨大的项目,并不断影响着大多数人的生活。

如今的互联网,绝大多数的网站、服务、游戏均是跑在Linux上面的,虽说Linux发行版众多,只要玩熟了一种发行版,了解了Linux精髓、基本架构、设计原理,其他都是触类旁通的,千万不要在选择哪一发行版而浪费很多时间,不值当的,这就如同我是上清华好,还是上北大好呢?统称为[清北谜题]了,这里小编个人建议新手还是选择CentOS或者RHEL上手为好。

不管是学习语文、英语,还是学习数学、物理,不管你采用何种方法,都离不开三个阶段:记忆、掌握、运用。也许描述的并不十分准确,但大体上是这样子的。以此类推,对于如何学习Linux,也是可以参照上述三个阶段来学习的。

因此,对于学习Linux而言,第一步就是记住Linux命令,知道其中的原理。但是,Linux命令非常多,难道都需要记住?这肯定是不现实的。所以,我们要先知道哪些Linux命令是必须要记住的,哪些Linux命令是只要了解一下就可以的,哪些Linux命令是无关紧要的,要学会拈轻掇重。

那么具体需要掌握哪些知识呢?这里罗列一些必须掌握的知识:

1、了解Linux FHS,这是Linux的体系结构,明白大致原理

2、重复60个常用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知识的专业书籍,然后自己参照书籍去学习,这样也是不错的。

看书可以系统化的学习、循序渐进,不会初学者不知道从哪儿开始的感觉。建议选择一本Linux入门书籍,前期可以安装一个Linux虚拟机,重复练习为主要手段,把一本书好好吃透,重点是吃透,那么你也就入门了,尤其推荐想自学Linux系统的同学看一下《Linux就该这么学》,这本书从零基础开始讲起,涵盖的知识不仅实用,而且有实验可以做,随时检查自己的学习进度。

小编在此罗列一些学习过程中觉得不错的书籍,推荐给朋友。

入门书:

《鸟哥的私房菜(基础篇)》

《鸟哥的私房菜(服务篇)》

《Linux命令行与Shell脚本编程大全(第2版)》

《UNIX/Linux 系统管理技术手册》

《UNIX编程艺术》

计算机及操作系统原理书:

《深入理解计算机系统(原书第2版)》

《现代操作系统 (原书第3版)》

深入理解Linux系统 (说明:开发类的书籍只求读懂其讲到的原理部分就成)

原理篇:

《Linux内核设计与实现(原书第3版)》

《Linux程序设计(第4版)》

《构建嵌入式Linux系统(第二版)》

《深入理解LINUX内核(第三版)》

《UNIX网络编程 卷1:套接字联网API(第3版)》

《UNIX网络编程 卷2:进程间通信(第2版)》

《UNIX 环境高级编程(第2版)》

《程序员的自我修养—链接、装载与库》

《Linux设备驱动程序(第三版)》

实做篇:

《手把手教你构建自己的Linux系统》

《高性能Linux服务器构建实战》

shell

我看过最好的 《shell编程艺术》

lamp/lnmp

nginx: 《取代Apache的高性能Web服务器》

apache:《Apache服务器配置与使用工作笔记》

mysql:《高性能MySQL》

安全

《Linux firewalls》

《白帽子讲web安全》

架构

《大型网站技术架构》

《构建高性能web站点》

docker

《Docker技术入门与实战》

nosql

《redis设计与实现》

《mongodb权威指南》

自动化

《Puppet实战》

《SaltStack技术入门与实战》

云计算、虚拟化

《OpenStack开源云王者归来 云计算、虚拟化、Nova、Swift、Quantum与Hadoop》

python

《Python基础教程》

监控

《Zabbix企业级分布式监控系统》

《华章科技:Nagios系统监控实践》

红帽认证管理员(RHCSA)证书示例

单单拥有理论知识显然是不够的,如何更好的学习Linux系统?应该每个人都有不同的观点,无不例外,最终目的是要学会如何使用,学到Linux的其中的精髓所在,方法很重要:

1. 选择发行版系统——CentOS/RHEL

不建议使用其他发行版本,如果能熟练使用一种发行版,其他的发行版不是太大问题,只是命令上有所差别,请大家不要在这个问题上纠结,就好像大家说“PHP是世界上最好的语言”一样,一定不要在选择发行版本上浪费时间。

2. 选择一本比较适合入门的书籍或导师

一本好书籍,能使学习事半功倍,一位好导师,能让Linux学习更加轻松,如《Linux就该这么学》,比较容易入门,内容精简,讲解透彻,但是你还可以读适合自己的书籍,也并不一定要读我推荐的这本,因为我完整的读完过,觉得确实适合初学者。

3. 多练习、学会总结和思考

因为学习每一项技术都是在别人造好的轮子上不断的模仿再模仿,只有多去练习,才能够明白其中的原理,通过理解的方式去记忆,这样就学会的很快。不懂的地方一定要查资料,善于使用搜索引擎(百度/Google),系统的去学习,多练习,把书中的实验做透,掌握其中的原理,然后去总结,查漏补缺,最好的思考也很重要,不要光学习,还要思考下这项技术应用的场景,所使用的原理等等,多思考为什么。

4. 从基础学起,迎难而上

Linux技能点:Linux系统基础—Linux系统管理—Linux服务管理—Linux安全管理和防范—Linux高级运维—Linux运维自动化……

这里只是简单介绍一些,远远不止这些,希望我们能够一起加油,当你真正入门后,你会接触更多,对这个行业有更深层次的认识,需要学习的还有更多,给自己定更多的目标,当你学完这些,会对你以后的职业生涯有更好的帮助。