Linux系统是使用Linux内核及开源自由软件组成的一套操作系统,是一种类UNIX系统,其内核在年10月5日由林纳斯·托瓦兹首次发布。它的主要特性:Linux文件一切皆文件、完全开源免费、支持多用户和多任务、同时还支持多种架构平台、可靠的安全性、良好的稳定性、具有强大的网络功能、多样图形界面;近几年Linux系统慢慢吸引了不少人,正是由于它的强大,支撑着巨大的项目,并不断影响着大多数人的生活。
如今的互联网,绝大多数的网站、服务、游戏均是跑在Linux上面的,虽说Linux发行版众多,只要玩熟了一种发行版,了解了Linux精髓、基本架构、设计原理,其他都是触类旁通的,千万不要在选择哪一发行版而浪费很多时间,不值当的,这就如同我是上清华好,还是上北大好呢?统称为[清北谜题]了,这里小编个人建议新手还是选择CentOS或者RHEL上手为好。
不管是学习语文、英语,还是学习数学、物理,不管你采用何种方法,都离不开三个阶段:记忆、掌握、运用。也许描述的并不十分准确,但大体上是这样子的。以此类推,对于如何学习Linux,也是可以参照上述三个阶段来学习的。
因此,对于学习Linux而言,第一步就是记住Linux命令,知道其中的原理。但是,Linux命令非常多,难道都需要记住?这肯定是不现实的。所以,我们要先知道哪些Linux命令是必须要记住的,哪些Linux命令是只要了解一下就可以的,哪些Linux命令是无关紧要的,要学会拈轻掇重。
那么具体需要掌握哪些知识呢?这里罗列一些必须掌握的知识:
1、了解LinuxFHS,这是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》
安全
《Linuxfirewalls》
《白帽子讲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运维自动化……
这里只是简单介绍一些,远远不止这些,希望我们能够一起加油,当你真正入门后,你会接触更多,对这个行业有更深层次的认识,需要学习的还有更多,给自己定更多的目标,当你学完这些,会对你以后的职业生涯有更好的帮助。
5.职业发展方向
其实学完Linux技术可以有很多发展方向,就目前来说还是比较好找工作的:Linux运维、Linux运维架构师、Linux运维自动化,Linux开发的、DevOps等等岗位,根据自己所掌握的Linux技术,给自己定位一个发展方向,并一直努力下去,如果想更好的提高自己,获得更高的薪水,可以考下红帽认证,对以后的工作还是有很大用处的。
6.技术的革新
对于IT技术的不断革新,发展速度非常之快,如何成为强者,不被社会所淘汰,需要我们提高自身能力,近些年一直很火的:OpenStack、Doctor、Kubernetes、云计算、同时还需要掌握一门开发语言:Python、shell、golang(其一)等等,都是需要我们自己去学习,不断适应公司/企业需要的技能,才能更有竞争力。
本文通过学习linux的不同方面为大家整理了相关内容,内容可能不大全面,欢迎大家也分享自己对Linux的认识,学习方法,相信只要我们有自己的计划和目标,并一直坚持下去,一定会在Linux的道路上越走越远,成为一名合格的Linu运维工程师。