早在2009年以前,linux系统还只是为一些企业做服务器系统应用环境使用,外界非IT技术人对此系统并不十分了解,09年以后随着智能手机走进老百姓的生活,一些手机发烧友乃至一些程序员才慢慢知道手机的android系统的是基于linux系统开发的。老百姓看到装个APP应用提示获取这个、那个的权限刚开始搞不清,后来才发现其实就是要获取android系统里的某个目录的权限,于是乎Linux那神秘的面纱也被慢慢揭开。
随着智能手机、物联网、大数据、云计算的IT市场火爆,产生了一堆堆的相应技术技能的培训机构,学习过程中同学们发现linux原来在这些行当中这么重要,于是乎配套linux培训和相关书籍如雨后春笋一样遍地开花;很多小伙伴见到此情此景,就进入了选择难的境地,本人见此情景为各位学习linux提供点参考建议。
Linux有什么特殊性?
其实LINUX主要两大亮点:
1、开源(免费)
相对于windows系统需要购买,而linux是免费的。免费就会降低厂商成本,厂商可以基于linux内核进行包装,像国外的centos\redhat\ubuntu\我国的红旗乃至麒麟都基于此linux系统内核的基础上打造的,而且linux下大部分相关的软件也是免费的;windows不用多说,虽然使用度广,但基于微软系统开发的但很多软件都是要收费的;为了突破微软在OS上的禁锢,越来越多的厂商在产品上使用Linux现在去开发去构建,你像现在物联网产品,智能家居、门禁、监控很多都采用了linux系统,没别的原因,用此系统下研发环境降低产品的成本.
2、相对安全
相对windows系统来讲,相对安全,至少当前系统下的病毒和安全威胁数量,WINDOWS要比LINUX多的多。为什么说相对,之前linux使用面少时,黑客等病毒制造者都很少关注研究它,所以病毒安全性高;但现在随着android手机市场普及,移动终端及PC服务器随着市场面对扩大,安全将会对Linux形成很大的威胁,毕竟系统是免费的,支持得不到全面的保障。另外还有一点,棱镜门事件使得全世界越来越注重信息安全,linux越来越受到国家和企业的青睐和重视.
学习Linux的目的?
我觉得学习任何知识无外乎有以下2种原因。
1、工作需要:程序员开始在linux环境下开发要学;公司新上项目要建docker,要学;要给企业提供IT研发环境解决方案,要学。还有新的职位要求有linux经验,要充电,要学,等等。
2、老子愿意:问老子为什么写道德经,答:老子愿意。(这是开玩笑了,其实还是因为市场热而学)这种情况分几种,一种,好奇,平日就愿意折腾玩系统,另一种,有点人觉得好像linux运维要比windows运维工资高,还有一种:提升自己,也不知以后用不用的到,先考个RHCE玩玩。
你到底是哪一种?这里我想说:带着兴趣去学学的更快。
你要学到什么程度?
想明白为什么要学,那么定好一个目标,你要达到什么程度。
用IT招聘对linux系统的要求的3个词来划分等级:了解、熟悉、精通。
了解级别:至少要能熟练安装linux系统,对linux分区文件系统有过多的了解,知道哪个目录是干什么用的,例如找log至少知道到/var/log路径下找,其它的常用命令会用即可。
熟悉级别:这个阶段基本要求你会有一定的处理问题能力和解决用户应用环境需求,比如部署apche服务,mysql服务等,调整个网络,设置个防火墙,部署个linux环境下的监控,至少在应用环境上有过一定的案例实施。shell脚本要会编写,没事写个计划任务备份数据没啥问题等。
精通级别:好吧这个级别就是linux内核你得知道咋回事,各种版本、各种环境都能操作自如(别说你只会redhat,ubuntu这么流行你也要会)。运维的事你能完全解决,开发的事你能快速定位问题,甚至架构你也能提出不同的意见。(这需要一定的工作年限和经验积累)这三个级别自己灵活把握,以上是我理解中三个级别,不同企业对此这3个级别的定义也不同,关键结合你学linux的目的出发,毕竟linux学深了挺难的花费时间很长,学的太浅了瞎耽误工夫,
如何学习Linux?
学习套路:打破常规。
一般的初学者想,我应该报个学习班,买几本教科书,什么..私房菜,什么什么怎么学,什么入门宝典,什么入门到精通,说实话这些书有用吗?有用!但不是初学者用。
因为,现在技术环境发展太快了,有的形成案例教材的培训都是1、2两年前的东西,教材没有和现在环境接轨,你见过有几个正在工作的工程师去教实战课的,而那些教实战课的老师在拿2、3年前的案例在教你,你会了又如何?学完了发现没有类似的环境用的上;而我们要学的东西往往要和当前实际工作相关联的,速成班是能教会点当前有用的应用场景,但局限面太窄了,会影响你的职业发展,而且也不扎实;还有一些搞了一大堆命令形成了一本书,看那样的书不如看linux的命令帮助文件man或help.
学习方法:
1、先练习安装linux系统,找个vmware或vitualbox虚拟化工具,装个linux虚拟机,redhat\ubuntu\centos下载最新版本安装,这三大linux系统比较有代表性。自动分区、手动分区多安装几遍,最好能遇到安装完毕无法启动的状态。----遇到任何问题baidu.通过这种安装方式,你要达到对文件系统和分区类型的了解。
2、进入命令熟悉阶段,这时的你不要去一个个命令去看什么意思;举几个实操的小案例,结合任务方式去熟悉命令。
比如搭建一个用户登录服务器:创建账号,设置账号密码,创建磁盘配额,创建登录方式(telnet/ssh/vnc),用户的环境变量,创建samba共享,文件权限等等。
部署应用,例如常见的部署个网站,需要apache吧,tomcat也行,有人说WAMP全都搞定,无论什么方法,先下载一个站点源码部署上去,通过浏览器可以实现web节目。(这其中可能会安装配置很多文件,从中去体验)----以上怎么做呀,baidu去。其它的案例你还可以进一步去拓展,讲你现在windows的应用场景迁移到linux平台,这样你会学的更多。
3、进入扩展阶段了,做个监控平台吧,最好用nagios,(那种完全图形界面配置的工具无法锻炼你的能力),监控一下linux、windows系统性能、磁盘分区、服务等等,通过后台的命令去配置。以上完毕了,我想至少达到一个初步熟悉的阶段,再去选择有用的书,再去选择专业的培训班,我想你这时你可以用Linux技能找工作了。
总之linux的系统是打破我们windows的思维模式的系统,学习过程有时很难理解,初学很容易进入苦恼期,要有一种玩的心态去学习他,用它去搭建一些你喜欢的场景,从中逐渐了解它熟悉它。