章节简述:
Hello World!全书的开篇讲述作者学习红帽Linux系统的经验以及写书过程的感悟,分析学习Linux系统的目地与意义。
开源精神是种让每个从事Linux行业的技术人从骨子里自豪的情怀,开源产品的兴盛受益于开源社区强健的根基。
优秀的Linux运维师能够让用户真切体会到Linux系统带来的高可用、高性能与安全稳定。
本章目录结构
0.1 本书作者简介
本书作者刘遄(Liu Chuán)从事于Linux运维技术行业,高中时期便因兴趣的驱使而较早的接触到了Linux系统并开始学习运维技术,已在2012年考下红帽工程师RHCE_6版本证书,2015年初又分别考下RHCE_7版本证书与红帽架构师认证RHCA证书。
但深知水平有限且技术一般,若没有得益于良师益友的无私帮助,肯定不能如此顺利的完成Linux学业,并且同样作为一名普通的技术人,我亲身经历过半夜还在培训班的心酸,体验过拥堵6小时车程的无奈,看完过当今市面上十几本如同嚼蜡般的技术书籍,所以更加坚定了写出这本书的信念,此刻我正怀揣着一颗忐忑的心,竭尽全身心的斗志努力将知识分享给读者们,让您能够少走一些弯路。
我认为一个高超的技术导师不应该仅仅当一名技术的搬运工,而应该是优质知识的提炼者,所以在写书的过程中将主动抛弃不实用的部分,将重点难点反复实践,更不会将所有了解的知识都写到书里来证明自己的学识,而是真正贴近于新人的思考角度出发,写出一本最适合您的Linux教材。
本书意在带领读者从“0”基础开始学习linux系统,章节内配套有教学图片、视频及习题,达到增强学员兴趣与加深记忆的作用,当然这些都是免费的。才与诚合,然后事可成,恃才而败。我将付出不亚于任何人的努力,与可爱的读者们一起编写、完善这本书籍。
0.2 学习是件苦差
我不想回避这个问题——学习本是件痛苦的事情。如果学习Linux真的很简单,那么必是骗子说的谎话,起码这将不能给你带来高薪。每次起床后都会陷入几分钟的大脑作战——是该聊会天那~还是追个美剧那~还是打盘LOL那~还是看看那该死的刘遄写的那本可怕Linux教材时,请不要忘记自己最初的梦想,十年后你会感谢此时正在努力学习的自己。我身为作者的使命就是一定要对得起您花费的时间、精力、金钱,让您每学完一个章节都是一次进步。
稻盛和夫先生在《活法》有一段时刻激励着我的话,现在转送给读者们:
“工作马马虎虎,只想在兴趣和游戏中寻觅快活,充其量只能获得一时的快感,绝不能尝到从心底涌出的惊喜和快乐,但来自工作的喜悦并不像糖果那样——放进嘴里就甜味十足,而是需要从苦劳与艰辛中渗出,因此当我们聚精会神,孜孜不倦,克服艰辛后的成就感,世上没有哪种喜悦可以类比。”
“更何况人类生活中工作占据了较大的比重,如果不能从劳动中、工作中获得充实感,那么即使从别的地方找到快乐,最终我们仍然会感到空虚和缺憾。”
0.3 开源共享精神
开源的特点简单来说就是将软件程序与源代码一起打包提供,让用户可以不受限制的使用某个软件的功能并且随意修改,甚至修改成衍生产品再发布出去。具有使用自由、修改自由、重新发布自由以及创建衍生品的自由,这正好符合了黑客、极客们的追求,因此国内外开源社区的根基都很壮大,人气也很高。坦白来讲,每个从事于Linux行业的技术人或者程序员只要听到开源项目的兴起就会由衷的自豪,这是一种从骨子里带有的独特情怀,开源企业不单纯为了利益,而是互相扶持,努力服务好更多的用户,开源软件有以下重要的特性:
低风险:较比于商业软件公司,开源社区很少存在倒闭的问题,并且使用闭源软件后无疑将命运交付给他人,一旦封闭的源代码没有人来维护,将把你逼迫到进退两难的地步。
品质好:较比于闭源软件产品,开源项目通常是由社区来维护的,参与编写、维护、测试的用户众多,一般的Bug还没有等爆发就已经被修补。
低成本:开源社区推动的项目将会节省你大量的人力、物力和财力,开源工作者都是默默的付出劳动成果,为美好的世界做贡献。
更透明:没有笨蛋会把木马后门放到开放的源代码中,这样无疑把自己的罪行暴露到了上百万人眼中。
开源软件不会因为自由而牺牲程序员的利益,这样绝对会影响人类的创造激情,因此地球上现在总共有60多种被开源促进组织(Open Source Initiative)认可的开源许可协议来保证开发者的权益,对于那些一味抄袭、篡改、破解或者盗版他人作品的坏蛋,终归会在某一天收到法院的传票,对于准备编写一款开源软件的读者,我也非常建议您先了解下当前最热门的开源许可协议,选择一个合适的许可来保护自己的软件利益:
GPL许可协议(GNU General Public License):只要软件中包含有其他GPL协议的产品或代码,那么该软件就必须也采用GPL许可协议且开源及免费,因此这个协议并不适合商用软件,但包括Linux系统在内的大多数的开源软件都是基于了这个协议,拥有极大的开源软件数量,具有以下特点:
复制自由:允许将软件复制到任何人的电脑中,并且不限制复制的数量。
传播自由:允许以各种形式进行传播。
收费传播:允许在各种媒介上出售该软件,但必需提前让买家知道这个软件是可以免费获得的,并解释收费的理由(一般来讲都是能够为用户提供某种服务,以技术服务的形式来收费)。
修改自由:允许开发人员增加或删除软件的功能,但必须依然基于GPL许可协议授权。
BSD许可协议(Berkeley Software Distribution):使用该许可后将允许使用者使用、修改和重新发布代码,并且可以作为商业软件发布和销售,但需要满足下面的三个条件:
1:如果再发布的软件中包含源代码,则源代码必需使用BSD许可协议。
2:如果再发布的软件中只有二进制程序,则需要在相关文档或版权中声明原始代码中使用了BSD协议。
3:不允许用原始软件的名字、作者或机构名称做市场推广。
Apache许可协议(Apache Licence Vesion):同时为开发人员提供版权及专利许可,允许修改代码及再发布的自由,适合于商业软件,现在热门的Hadoop、apache(httpserver)、MongoDB等项目都是基于该许可,程序开发者要严格遵守下面的四个条件:
1:该软件及其衍生品必须基于Apache许可协议。
2:如果修改了源代码,需要在文档中声明。
3:若软件是基于他人的源代码,则需要保留原始代码的协议、商标、专利生命及其他原作者声明的内容。
4:如果再发布的软件中有声明文件,则需在此文件中标注Apache许可协议及其他许可协议。
MPL许可协议(The Mozilla Public License):相较于GPL许可协议,更加注重平衡的开发者对源代码的需求和收益。
MIT许可协议(Massachusetts Institute of Technology):目前限制最少的开源许可协议之一,只需要程序的开发者在修改后的源代码中保留原作者的许可信息,所以比较适合于商业软件。
0.4 为什么学习Linux系统?
当读到这个小节,相信您已经熟悉了我的写作特点(但不是讲课特点)——能用一句话讲清的事情,我绝不会造出一段话。这样的好处非常明显,首先是文章不再冗长,并配上了大量图片还会看起来非常的有乐趣,其次是能够让您一眼就找到最重要的知识和干货,所以接下来我将会用一段话总结出UNIX系统的发展历程、Linux系统的来由及红帽公司的创立,请留心每个时间点即可。
最初早在20世纪70年代,UNIX系统是开源而且免费的,但在1979年时,AT&T宣布了UNIX系统的商业化计划,随之使得软件业转变成了版权式软件产业,源代码被当作了商业机密,人们再也不能自由的享受科技成果,于是在1984年,由Richard Stallman面对于如此封闭的软件创作环境,发起了GNU源代码开放计划并制定了著名的GPL许可协议,当1987年时,GNU计划获得了一项重大突破——即gcc编译器的发布。随之在1991年10月份由芬兰赫尔辛基大学的在校生Linus Torvalds编写了一款叫做Linux的操作系统,因其较高的代码品质与基于GNU GPL许可协议的开放源代码特性,迅速就引起了GNU计划和一大批黑客程序员的支持,随后Linux系统便开始了火热的发展,到了1995年1月份,由Bob Young依据Linux系统内核,并集成了众多的源代码和程序软件,创办了RedHat公司并开始出售技术服务,进一步的推动了Linux系统的普及,1998年后,随着GNU计划的Linux系统的火热,以IBM和Inter牵头的大量巨头IT企业开始大力推动开放源代码软件的发展。现如今到了2016年,Linux内核已经发展到了4.7版本,并已经有了数百个Linux发行版本,但都依然统一使用Linus Torvalds开发/维护的系统内核。RedHat公司也成为了开源行业及Linux系统使用的带头公司。
看到这里,我想问读者一个我经常去讲课时候说的问题:“你为什么学习Linux系统?”。很多学生会为了让我高兴,直接就说因为Linux是开源的,所以我们要去学习。其实这个是完全错误的!开源的系统少说有一百个,软件至少有十万个,为什么你不都去学习?所以上面谈到的开源特性只是优势,并不是您付出精力去学习的理由。
正确的学习动力应该是:Linux系统是具有类似Unix的程序界面与操作方法且继承了其稳定性的优秀软件产品,而对于用户来讲,开源精神仅仅是一种锦上添花的东西。
大多数读者开始了解计算机和网络都是从Windows™开始的吧,肯定已经习惯了而且觉得足以应付日常工作啦。虽然微软系统确实很优秀但同时也是用户对安全性、高可用与高性能”的大大牺牲,因为你一定见过下面的图片。
所以读者是否考虑过为何需要长期稳定运行的网站服务器、处理大数据的集群系统或者需要协同工作的环境大多采用Linux系统呢?
Linux的优势读者可先作了解暂不需深究,学习中再慢慢感受。
0.5 常见的Linux版本
首先您要能够清晰的区分Linux系统内核与Linux发行版本的区别,Linux系统内核指的是一个由Linus Torvalds负责维护,提供硬件抽象层、硬盘及文件系统控制及多任务功能的系统核心程序,而Linux发行版本则是我们常说的Linux操作系统,也即是由Linux内核与各种常用软件的集合产品,全球大约有数百款的Linux发行版本,每个发行版本都有自己的特性和目标人群,我们绝不能一概而论谁是第一,谁是第二,但我可以从用户的角度选出最热门的几款来做介绍。
注:书籍中其余章节中将以"Linux系统"来替代"Linux发行版"这个词。
红帽企业系统(RedHatEnterpriseLinux,RHEL.)[点此下载]
全球最大的开源技术厂商,全世界内使用最广泛的Linux发布套件。
提供性能与稳定性极强的Linux套件系统并拥有完善的全球技术支持。
社区企业操作系统(Community Enterprise Operating System,Centos)
最初是将红帽企业系统“重新编译/发布”给用户免费使用而广泛使用。
当前已被红帽公司收购。
Fedora
最初由红帽公司发起的桌面版系统套件(目前已经不限于桌面版)
用户可免费体验到最新的技术或工具,而功能成熟后加入到RHEL中。
openSUSE
德国著名的Linux系统,全球范围内有着不错的声誉。
Gentoo
具有极高的自定执性,操作复杂,因此适合有经验的人员使用。
Debian
提供超过37500种不同的自由软件(2015年数据)且拥有很高的认可度。
对于各类内核架构支持性良好,稳定性、安全性强更有免费的技术支持。
Ubuntu
Ubuntu是一款基于Debian派生的产品,对新款硬件具有极强的兼容能力。
普遍认为Ubuntu与Fedora都是极其出色的LINUX桌面系统。
现在国内的很多书籍是以Centos系统为平台编写的,当然作者大多会列出来诸多的理由,但很多都是以讹传讹的歪曲道理,根本没有剖析到RedHat公司的运作方法和Centos系统的本质,Centos系统是通过将RHEL系统释放出的源代码二次编译的Linux系统之一,命令操作和服务配置方法自然都是完全相同,去掉了很多红帽收费的服务套件功能,并且不提供任何形式的技术支持,那么选择的理由只有一个——免费!,当“高手们”大举免费、开源、正义的旗帜来宣扬Centos系统的时候,诸不知Centos系统其实早在2014年初就已经被红帽公司收购,只是战略性的免费而已,而根据Gnu GPL许可协议,我们同样也可以免费使用RHEL系统,甚至是修改代码后创建出衍生产品,自由程度是没有任何的差异,更无关道德问题。
您正在阅读的这本《Linux就该这么学》便是基于最新的RHEL7系统编写的,知识及实验完全的相通于Centos,fedora等系统,因此当您学习完本套课程后,即便公司内的生产环境是Centos系统也一样没有任何问题,并且本书配套资料中的iso镜像与红帽RHCSA及RHCE考试系统一致,尤其适合准备考取红帽认证的学员。
随书配备的软件资源库:http://www.linuxprobe.com/tools
0.6 优秀的RHEL7系统
经过2年多的迭代更新,站在2016年再看这个小节,预测的还是很准确吧,现在国内大多数机房、多家银行、保险公司都换上了Centos7或RHEL7系统。 ——刘遄
2014年末,RedHat公司推出了当前最新的企业版Linux系统——RHEL7,国内外各大媒体都给了不少特写镜头,行业也给予了硕大的期待程度,但是时至今日RHEL7系统的市场占有率却一直不温不火,逐渐的就有人开始对RHEL7系统的未来表示担心,甚至有人还搬出各种 “大道理”来唱衰linux系统,觉得开源厂商已经过了事业最高点,开始要在服务器领域让步给Windows了,当然这些我没必要去反驳,任何一个产品都一定会有支持者和唱衰者,我们这次只评这个RHEL7系统。
在正式讨论话题之前,我希望读者已经对于Linux系统特性和应用领域有了必要的了解,知道Linux系统在服务器领域中不可小觑的市场份额,知道RedHat厂商对于Linux系统及整个开源行业的重要性影响,知道Centos也是RHEL系统的衍生品等等常识,甚至是以前使用过一段时间RHEL7系统了,基于这样的经验共识,我们才能更顺畅的讨论红帽RHEL7系统是不是个失败的产品这个问题。
要论证我在上面的看法,不如谈谈现在最烫手的热议问题:“为什么半年过去了,RHEL7系统的市场份额依然不温不火?要不要返回去学习老版本的Linux系统”,甚至有阴谋论说新版本的linux系统还在让美国用于搜集全球信息,告诫我们千万不要去碰,这个问题必需要回应,否则更多的阴谋论会层出不穷,甚至会影响到国内半瓶子的媒体对开源行业有了扭曲的理解。基于我跟读者们的经验共识和文章篇幅的限制,我们下面的论证速度会比较快,也很有意思,首先RHEL是企业版的服务器系统而不是用来玩耍折腾的桌面机系统,更何况作为桌面环境的Windows7系统在2009年7月14日发布,用了3年才开始真正普及,难道在2009年到2013年中,Windows7就是失败的产品吗?更何况红帽RHEL7系统紧密的集成了虚拟化技术Docker,支持了XFS文件系统,兼容了微软的身份管理,采用了systemd作为守护进程,性能和兼容性都有了很大的改善,无疑是一款非常优秀的操作系统,单从openstack和docker的决策上来讲,我们也应该相信红帽的开发团队不是闭门造车,所以是否应该重新考虑到底是那里出了问题?
运维人员经常会讲一句表达心理的想法:“现在的环境跑得好好的,为啥还要换?”,重新部署生产环境不是装上操作系统就能完事的,也不是把软件随便安装上就能走人的,你是否考虑过升级带来的风险?
日后生产环境出了问题,谁负责任?
旧的软件依然能否兼容与新系统?
新的系统或软件是否有Bug?
安全性如何,审计怎么做?
之前购买的第三方技术支持能力是否已经跟上?
升级后是否会影响到某些软件的版权?
新系统产生了很大变化,不习惯怎么办?
费力升级后又会对自己有什么好处?
红帽RHEL7系统的改进很多,其中最痛点的就是采用了systemd作为守护进程,几乎之前所有的运维自动化脚本还都要修改,于是我们再回来思考刚刚的这个问题,到底还要不要升级到RHEL7了?当然,服务器机房里也绝不是不更新换代,升级是早晚都必须要的,就看什么时候工作的需求超过了老版本的能力界限,就肯定会升级。比如rsyslogd日志记录服务在RHEL6中版本是v.5.8,而现在最新的版本已经是v8.18,差了3个大的主版本号,已经产生了如此大的差距,你觉得会一直用旧的版本吗?
早在2014年初,fedora系统首次采用了systemd守护进程,我当时就断言RHEL7系统也会使用systemd,所以当即更新了自己的培训课程,让很多其他机构背了init参数的同学找我说有多羡慕,所以对于不论是想要学习Linux系统还是编程语言的同学,都应该去选择当前稳定且最新的版本作为学习环境。
“稳定”:不管是做开发和运维,都是一种保障。
“最新”:老的版本会有更大的概率存在安全漏洞或者功能缺陷,而新的版本不仅漏洞出现的几率小,而且即便出现漏洞也可以获得众多开源社区和企业的支持,更快的被修复。
在最后讲一句我每次在公开的场合讲座都会表达的一个观点:“我们并不是因为开源而喜欢Linux,而是因为Linux系统真的非常优秀,开源精神仅是优秀产品上的锦上添花而已”,在我们这本《Linux就该这么学》的0.4小节中也狠狠的肯定了Linux系统对于运维行业、甚至是对世界的影响。
0.7 了解红帽认证
Linux系统有上百个不同的组织、公司、机构研发并发布出不同的版本,其中红帽公司作为一家成熟的操作系统厂商提供可靠的Linux系统和完善的求援服务。红帽企业linux系统(RedHat Enterprise Linux,RHEL)的市场占有量极大,认可度也非常高。较早时我因兴趣的驱使接触到了Linux系统并开始学习,已在2012年考下红帽工程师RHCE_6,今年又分别考下RHCE_7版本与红帽架构师认证RHCA。下面会尽量客观的、有深度的评解下红帽公司与红帽RHCSA、RHCE、RHCA认证。
RedHat成立于1993年,是全球首家收入超10亿美元的开源公司,总部位于美国而分支机构已遍布全球,红帽公司作为全球领先的开源和Linux系统提供商,其产品已被业界广泛使用。尤其红帽RHEL系统在业内拥有超高的Linux系统市场占有率,红帽公司除了提供操作系统还提供了虚拟化、中间件、应用程序、管理和面向服务架构的解决方案。而红帽认证是由红帽公司推出的Linux认证,其被认为是Linux行业乃至整个IT领域最高价值的认证之一,因为考试全部采用上机形式,所以在考察学生基础理论能力的同时还能考察到实践动手操作以及排错能力,红帽公司拥有完善的专业评估与认证标准。
红帽认证主要包括"红帽认证管理员(RHCSA)"、"红帽认证工程师(RHCE)"与"红帽认证架构师(RHCA)"。
随着红帽公司在2014年6月10日发布新版红帽企业版系统(RHEL7)后当天即在红帽英文官网更新了其对RHCSA与RHCE培训政策的调整,考生只有先通过红帽RHCSA认证后才能考取红帽RHCE认证。
红帽认证进阶等级图
红帽认证管理员(RHCSA,全称为Red Hat Certified System Administrator)属于红帽Linux的初级入门认证,比较适合Linux兴趣爱好者,需要考生对Linux系统有一定的了解并能够熟练的使用Linux命令来完成以下任务:
能够管理文件、目录、文档以及命令行环境。
能够使用分区、LVM逻辑卷来管理本地存储。
能够安装、更新、维护、配置系统与核心服务。
能够熟练创建、修改、删除用户与用户组,并要会使用LDAP进行集中目录身份认证。
能够熟练配置防火墙以及SELinux来保障系统安全。
红帽认证管理员(RHCSA)证书样张
红帽认证工程师(RHCE,全称为Red Hat Certified Engineer)属于红帽Linux的中级水平认证,考生必需已获得RHCSA认证,难度相对RHCSA更大,适合有基础的Linux运维管理员,主要考察对下列服务的管理与配置能力:
能够熟练配置防火墙规则链与SElinux安全上下文
能够配置静态路由、数据包筛选以及网络地址转换。
能够配置iSCSI互联网小型计算机系统接口服务。
能够编写Shell脚本来批量创建用户、自动完成系统的维护任务。
能够配置Http/https网络服务。
能够配置Ftp文件传输服务
能够配置NFS网络文件系统服务。
能够配置SMB服务器信息服务。
能够配置SMTP简单邮件传输服务。
能够配置Ssh远程管理服务。
能够配置NTP网络时间服务。
红帽认证管理员(RHCE)证书样张
红帽认证架构师(RHCA,全称为Red Hat Certified Architect)属于红帽Linux的最高级别认证,公认的Linux操作系统顶级认证,目前中国大陆仅通过不到300人(2015年最新数据),考生需要在获得RHCSA与RHCE认证后再完成5门课程的考试才能获得红帽RHCA认证,因此难度最大、备考时间较长、费用也最高(考试费约在1.8-2.1万左右),需要考察学生对红帽卫星服务、红帽系统集群、红帽虚拟化、系统性能调优以及红帽云系统的安装搭建与维护能力。
RHCA高分技巧:
红帽RHEL7版本的RHCA认证需要完成至少5门考试,各科考试时间不同,但依然为210分合格(70%)。
红帽非常在意RHCA认证的实用性,所以课程总是在不断调整,下面数据为2015年最新版:
考试代码 | 认证名称 |
EX210 | 红帽 OpenStack 认证系统管理员考试 |
EX220 | 红帽混合云管理专业技能证书考试 |
EX236 | 红帽混合云存储专业技能证书考试 |
EX248 | 红帽认证 JBoss 管理员考试 |
EX280 | 红帽平台即服务专业技能证书考试 |
EX318 | 红帽认证虚拟化管理员考试 |
EX401 | 红帽部署和系统管理专业技能证书考试 |
EX413 | 红帽服务器固化专业技能证书考试 |
EX436 | 红帽集群和存储管理专业技能证书考试 |
EX442 | 红帽性能调优专业技能证书考试 |
同于大家的了解,本书《Linux就该这么学》就是由一批中国的红帽架构师所编写。
0.8 精进的态度
当您读到了这个小节,是否已经下了决心来学习Linux系统呢?这本书名字叫做《Linux就该这么学》,除了本章节外的基础篇总共有20个技术章节,书籍基于最新的Linux系统编写而成,并且配套软件及资料完全免费,课程面向小白新手,从最基础开始带领您入门,并渐进式的提高课程难度,相较于传统的实地RHCE培训,至少要再多出40%的知识内容,只要你每天付出2小时来学习,一个月后就可以见到自己巨大的变化。
我们还特意开通了微信公众平台及新浪微博,每天为您推荐最高品质的Linux资讯和技术文章,并且还建立了技术交流QQ群和全国的读者书友会,帮助您解决自学时遇到的问题,如果您认可我们的努力,请将《Linux就该这么学》分享给朋友们吧。
技术交流群:
Linux技术交流QQ群A:560843
Linux技术交流QQ群B:340829(推荐)
全国书友会QQ群:
<Linux就该这么学>-北京群:193666689
<Linux就该这么学>-上海群:193666690
<Linux就该这么学>-深圳群:193666691
<Linux就该这么学>-广东群:193666692
<Linux就该这么学>-浙江群:193666693
<Linux就该这么学>-江苏群:193666694
<Linux就该这么学>-河南群:193666695
<Linux就该这么学>-四川群:193666696
<Linux就该这么学>-山东群:193666697
<Linux就该这么学>-湖北群:193666698