Linux 就该这么学
内容简单介绍
本书源自日均阅读量近万次火爆的线上同名课程,口碑与影响力俱佳,旨在打造简单易学且有用性强的轻量级 Linux 新手教程。
本书基于红帽 RHEL 系统编写,且内容通用于 CentOS、Fedora 等系统。本书共分为20章,内容涵盖了部署虚拟环境、安装 Linux 系统;经常使用的 Linux 命令;与文件读写操作有关的技术;使用 Vim 编辑器编写和改动配置文件;用户身份与文件权限的设置;硬盘设备分区、格式化以及挂载等操作;部署 RAID 磁盘阵列和 LVM;firewalld 防火墙与 iptables 防火墙的差别和配置;使用 ssh 服务管理远程主机;使用 Apache 服务部署静态站点;使用 vsftpd 服务传输文件;使用 Samba 或 NFS 实现文件共享。使用 BIND 提供域名解析服务;使用 DHCP 动态管理主机地址。使用 Postfix 与 Dovecot 部署邮件系统;使用 Squid 部署代理缓存服务;使用 iSCSI 服务部署网络存储;使用 MariaDB 数据库管理系统;使用 PXE Kickstart 无人值守安装服务。使用 LNMP 架构部署动态站点环境等。此外。本书还深度点评了红帽 RHCSA、RHCE、RHCA 认证,方便读者备考。
本书适合打算系统、全面学习 Linux 技术的初学人员阅读,具有一定 Linux 使用经验的用户也能够通过本书来温习自己的 Linux 知识。
作者简单介绍
刘遄(Liu Chuán),计算机信息技术方向教育学硕士。LinuxProbe 站点创始人兼核心讲师。在高中时期便因兴趣的驱使而较早地接触 Linux 系统并開始学习运维技术。刘遄老师于2012年~2015年期间分别获得红帽 RHCE project师认证以及 RHCA 架构师 ding 级认证。多年以来。一直从事 Linux 运维技术和红帽认证课程的培训工作,当前是国内开源行业颇具影响力的技术型大 V。
本书内容
前言
本书作者刘遄(Liu Chuán)从事于 Linux 运维技术行业,高中时期便因兴趣的驱使而较早地接触到了 Linux 系统并開始学习运维技术,并且在2012年获得红帽project师 RHCE 6 版本号证书,在2015年初又分别获得红帽project师 RHCE 7 版本号证书与红帽架构师认证 RHCA 顶级证书。
虽然如此。但依旧深知水平有限且技术一般,若不是得益于良师益友的无私帮助。肯定不能如此顺利地取得上述成绩。并且,作为一名普通的技术人,我亲身经历过半夜还在培训班的心酸,体验过拥堵6小时车程的无奈。也翻看过市面上十几本如同嚼蜡般的 Linux 技术书籍,这让我更加坚定了写作本书的信念。此刻,我正是怀揣着一颗忐忑的心,尽自己最大的努力把有用的知识分享给读者,希望你们能够少走一些弯路,更快地入门 Linux 系统。
窃以为,一名技术高超的导师不应该仅仅是技术的搬运工,而应该是优质知识的提炼者,所以在写作本书的过程中,我不希望也不会将自己了解掌握的全部技术知识都写到书里,借此来炫技,而是从真正贴近于新人学习特点的角度出发,主动摒弃了不有用的部分,并把重点、难点重复实践,以加深读者对理论基础的理解,并彻底掌握生产环境中用到的技术内容。
本书基于最新的 Linux 系统 RHEL 7 编写而成,并且配套软件及资料全然免费,课程面向 Linux 新手。本书会从零基础带领读者入门 Linux 系统。然后渐进式地提高内容难度,使其匹配生产环境对运维人员的要求。
并且,本书每章都配套有大量的图、表、命令演示样例以及课后习题,以达到增强读者学习兴趣与加深记忆的效果。
最后,本书以及配套资源相较于当前的 RHCE 培训,至少要多出40%的内容。仅仅要您能每天坚持学习,相信这绝对是您体验最佳、进步最快的一次学习经历。
最后想说的是,我的写作初心事实上并不高雅,仅仅是在还债,还十几年来中国有如此多的培训机构赚了那么多钱,但却没有培训机构真正给学员提供一本好教材的债。而这应该是我们的学员早就应该享受的服务,不能再选择性失明了。
而到了2017年,我的写作初衷也融入了一点小私心。除了运营好《Linux 就该这么学》图书的在线学习站点 http://www.linuxprobe. com/,服务很多其它的学员和读者之外。还要把我们的免费开源图书做到远超其它培训机构收费教材的水平。并坚持做中国开源站点的道德典范,不欺骗,不作恶,保持最纯净的技术交流环境。而我们想要得到的也非常easy——假设您认可了刘遄老师的付出并惬意我们的服务,还请把本书告诉身边的朋友。让很多其它的人知道我们在做的这件非常酷的事。
学习是件苦差事
我不想回避这个问题——学习是件痛苦的事情。假设说学习 Linux 真的非常easy,那必是骗子的谎言,起码这不能给您带来高薪。
在每次起床后的几分钟时间里,大脑都会陷入斗争状态——是该聊会天呢,还是要追个美剧呢,还是打一局英雄联盟呢,还是看一下那该死的刘遄写的那本可怕的 Linux 教材呢?这个时候。请不要忘记自己最初的梦想。十年后的你。一定会感激如今拼命努力学习的自己。
身为作者。我的使命就是让本书对得起你为此花费的时间、精力和金钱,让你每学完一个章节都是一次进步。
稻盛和夫先生在《活法》中有段一直激励着我的话,如今转送给正在阅读本书的你:
“工作马马虎虎。仅仅想在兴趣和游戏中寻觅快活,充其量仅仅能获得一时的快感,绝不能尝到从心底涌出的惊喜和快乐。但来自工作的喜悦并不像糖果那样——放进嘴里就甜味十足。而是须要从苦劳与艰辛中渗出。因此当我们全神贯注。孜孜不倦,克服艰辛后的成就感。世上没有哪种喜悦能够类比”。
“更何况人类生活中工作占领了较大的比重。假设不能从劳动中、工作中获得充实感,那么即使从别的地方找到快乐。终于我们仍然会感到空虚和缺憾”。
开源共享精神
简单来说,开源软件的特点就是把软件程序与源码文件一起打包提供给用户,让用户在不受限制地使用某个软件功能的基础上还能够按需进行改动,或编制成衍生产品再公布出去。用户具有使用自由、改动自由、又一次公布自由以及创建衍生品的自由。这也正好符合了黑客和极客对自由的追求,因此国内外开源社区的根基都非常庞大,人气也相当高。
坦白来讲,每位投身于 Linux 行业的技术人或者程序猿仅仅要听到开源项目就会由衷地感到自豪,这是一种从骨子里带有的独特情怀。开源的企业不单纯是为了利益,而是互相扶持,努力服务好很多其它的用户。开源软件最重要的特性有以下这些。
- 低风险:使用闭源软件无疑把命运交付给他人,一旦封闭的源码没有人来维护,你将进退维谷;并且相较于商业软件公司。开源社区非常少存在倒闭的问题。
- 高品质:相较于闭源软件产品,开源项目一般是由开源社区来研发及维护的,參与编写、维护、測试的用户量众多,一般的 bug 还没有等爆发就已经被修补。
- 低成本:开源工作者都是在幕后默默且无偿地付出劳动成果,为美好的世界贡献一份力量,因此使用开源社区推动的软件项目能够节省大量的人力、物力和財力。
- 更透明:没有哪个笨蛋会把木马、后门等放到开放的源码中,这样无疑是把自己的罪行暴露在阳光之下。
可是。假设开源软件为了单纯追求“自由”而牺牲程序猿的利益,这将会影响程序猿的创造激情,因此世界上如今有60多种被开源促进组织(Open Source Initiative)认可的开源许可协议来保证开源工作者的权益。
对于那些仅仅知道一味抄袭、篡改、破解或者盗版他人作品的不法之徒,终归会在某一天收到法院的传票。对于准备编写一款开源软件的开发者。也非常建议先了解一下当前最热门的开源许可协议,选择一个合适的开源许可协议来最大限度保护自己的软件权益。
- GNU GPL(GNU General Public License。GNU 通用公共许可证):仅仅要软件中包括了遵循 GPL 协议的产品或代码,该软件就必须也遵循 GPL 许可协议且开源、免费。因此这个协议并不适合商用软件。遵循该协议的开源软件数量极其庞大,包括 Linux 系统在内的大多数的开源软件都是基于这个协议的。GPL 开源许可协议最大的4个特点例如以下所看到的。
- 复制自由:同意把软件拷贝到不论什么人的电脑中,并且不限制复制的数量。
- 传播自由:同意软件以各种形式进行传播。
- 收费传播:同意在各种媒介上出售该软件,但必须提前让买家知道这个软件是能够免费获得的;因此,一般来讲,开源软件都是通过为用户提供有偿服务的形式来盈利的。
- 改动自由:同意开发者增加或删除软件的功能,但软件改动后必须依旧基于GPL许可协议授权。
- BSD(Berkeley Software Distribution,伯克利软件公布版)许可协议:用户能够使用、改动和又一次公布遵循该许可的软件,并且能够将软件作为商业软件公布和销售。前提是须要满足以下3个条件。
- 假设再公布的软件中包括源码,则源码必须继续遵循 BSD 许可协议。
- 假设再公布的软件中仅仅有二进制程序,则须要在相关文档或版权文件里声明原始代码遵循了 BSD 协议。
- 不同意用原始软件的名字、作者名字或机构名称进行市场推广。
- Apache 许可证版本号(Apache License Version)许可协议:在为开发者提供版权及专利许可的同一时候。同意用户拥有改动代码及再公布的自由。该许可协议适用于商业软件,如今热门的 Hadoop、Apache HTTP Server、MongoDB 等项目都是基于该许可协议研发的,程序开发者在开发遵循该协议的软件时,要严格遵守以下的4个条件。
- 该软件及其衍生品必须继续使用 Apache 许可协议。
- 假设改动了程序源码。须要在文档中进行声明。
- 若软件是基于他人的源码编写而成的。则须要保留原始代码的协议、商标、专利声明及其它原作者声明的内容信息。
- 假设再公布的软件中有声明文件,则需在此文件里标注 Apache 许可协议及其它许可协议。
- MPL(Mozilla Public License,Mozilla公共许可)许可协议:相较于 GPL 许可协议。MPL 更加注重对开发者的源码需求和收益之间的平衡。
- MIT(Massachusetts Institute of Technology)许可协议:眼下限制最少的开源许可协议之中的一个,仅仅要程序的开发者在改动后的源码中保留原作者的许可信息就可以,因此普遍被商业软件所使用。
为什么学习 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 系统便进入了如火如荼的发展阶段。
1994年1月,Bob Young 在 Linux 系统内核的基础之上,集成了众多的源码和程序软件,公布了红帽系统并開始出售技术服务。这进一步推动了 Linux 系统的普及。
1998年以后。随着 GNU 源码开放计划和 Linux 系统的继续火热,以 IBM 和 Intel 为首的多家 IT 企业巨头開始大力推动开放源码软件的发展。到了2017年年底。Linux 内核已经发展到了4.13版本号,并且 Linux 系统版本号也有数百个之多,但它们依旧都使用 Linus Torvalds 开发、维护的 Linux 系统内核。RedHat 公司也成为了开源行业及 Linux 系统的带头公司。
在讲课时,我经常会问同学们一个问题:“为什么学习 Linux 系统?”非常多学生为了让我高兴,直接就说“由于 Linux 系统是开源的,所以要去学习”。事实上这个想法是全然错误的!开源的操作系统少说有100个,开源的软件至少也有十万个,为什么不去逐个学习?所以上面谈到的开源特性仅仅是一部分优势,并不足以成为您付出精力去努力学习的理由。
对于用户来讲,开源精神仅具备锦上添花的效果,因此正确的学习动力应该源自于:Linux 系统是一款优秀的软件产品,具有相似 UNIX 的程序界面,并且继承了 UNIX 的稳定性,能够较好地满足工作需求。
大多数读者应该都是从微软的 Windows 系统開始了解计算机和网络的。因此肯定会有这种想法“Windows 系统非常好用啊。并且也可足以满足日常工作需求呀”。
客观来讲,Windows 系统确实非常优秀,可是在安全性、高可用性与高性能方面却难以让人惬意。您应该见过以下这张图片。
想必读者如今已经能猜到,为什么要在须要长期稳定执行的站点server上、在处理大数据的集群系统中以及须要协同工作的环境中採用 Linux 系统了。通过下图也能够看出 Linux 系统相较于 Windows 系统的具体优势。
常见的 Linux 系统版本号
在介绍常见的 Linux 系统版本号之前,首先须要区分 Linux 系统内核与 Linux 发行套件系统的不同。
- Linux 系统内核指的是一个由 Linus Torvalds 负责维护,提供硬件抽象层、硬盘及文件系统控制及多任务功能的系统核心程序。
- Linux 发行套件系统是我们常说的 Linux 操作系统,也即是由 Linux 内核与各种经常使用软件的集合产品。
全球大约有数百款的 Linux 系统版本号,每一个系统版本号都有自己的特性和目标人群。以下将能够从用户的角度选出最热门的几款进行介绍。
注:
本书全篇将以“Linux 系统”来替代“Linux 发行套件系统”这个词。
- 红帽企业版 Linux(RedHat Enterprise Linux。RHEL):红帽公司是全球最大的开源技术厂商,RHEL 是全世界内使用最广泛的 Linux 系统。RHEL 系统具有极强的性能与稳定性,并且在全球范围内拥有完好的技术支持。
RHEL 系统也是本书、红帽认证以及众多生产环境中使用的系统。
- 社区企业操作系统(Community Enterprise Operating System,CentOS):通过把 RHEL 系统又一次编译并公布给用户免费使用的 Linux 系统,具有广泛的使用人群。CentOS 当前已被红帽公司“收编”。
- Fedora:由红帽公司公布的桌面版系统套件(眼下已经不限于桌面版)。
用户可免费体验到最新的技术或工具。这些技术或工具在成熟后会被增加到 RHEL 系统中,因此 Fedora 也称为 RHEL 系统的“试验田”。
运维人员假设想时刻保持自己的技术率先,就应该多关注此类 Linux 系统的发展变化及新特性。不断改变自己的学习方向。
- openSUSE:源自德国的一款著名的 Linux 系统,在全球范围内有着不错的声誉及市场占有率。
- Gentoo:具有极高的自定制性。操作复杂。因此适合有经验的人员使用。读者能够在学习完本书后尝试一下该系统。
- Debian:稳定性、安全性强,提供了免费的基础支持,能够良好地支持各种硬件架构,以及提供近十万种不同的开源软件,在国外拥有非常高的认可度和使用率。
- Ubuntu:是一款派生自 Debian 的操作系统,对新款硬件具有极强的兼容能力。Ubuntu 与 Fedora 都是极其出色的 Linux 桌面系统,并且 Ubuntu 也可用于server领域。
如今国内大多数 Linux 相关的图书都是环绕 CentOS 系统编写的,作者大多也会给出环绕 CentOS 进行写作的一系列理由,可是非常多理由都站不住脚,根本没有剖析到 CentOS 系统与 RHEL 系统的本质关系。
CentOS 系统是通过把 RHEL 系统释放出的程序源码经过二次编译之后生成的一种 Linux 系统,其命令操作和服务配置方法与 RHEL 全然相同,可是去掉了非常多收费的服务套件功能,并且还不提供不论什么形式的技术支持。出现故障后仅仅能由运维人员自己解决。
经过这般分析基本上能够推断出,选择 CentOS 的理由仅仅剩下——免费!
当人们大举免费、开源、正义的旗帜来宣扬 CentOS 系统的时候,殊不知 CentOS 系统事实上早在2014年年初就已经被红帽公司“收编”。当前仅仅是战略性的免费而已。再者说,依据 GNU GPL 许可协议。我们相同也能够免费使用 RHEL 系统。甚至是改动其代码创建衍生产品。开源系统在自由程度上没有不论什么差异,更无关道德问题。
本书是基于最新的 RHEL 7 系统编写的,书中内容及实验全然通用于 CentOS、Fedora 等系统。也就是说,当您学完本书后。即便公司内的生产环境部署的是 CentOS 系统。也照样能够搞得定。更重要的是,本书配套资料中的 ISO 镜像与红帽 RHCSA 及 RHCE 考试基本保持一致。因此更适合备考红帽认证的考生使用。
随书配备的 ISO 镜像文件下载地址:http://www.linuxprobe.com/tools
深度评解红帽 RHCSA、RHCE、RHCA 认证:http://www.linuxprobe.com/redhat-certificate
优秀的 RHEL 7系统
注:
本小节的内容是我在2015年写给学员的一篇文章,如今 RHEL 7 系统已经经过近三年的迭代更新。此时再回看这篇文章。发现我的预測还是非常准确吧。当前,国内大多数机房都已经部署 RHEL 7系统,国内外多家银行机构、保险公司系统也纷纷上线 CentOS 7 或 RHEL 7 系统,但我依旧想引用这篇文章来帮助读者了解 RHEL 7 系统。并且我也深信这篇文章相同也会适用于未来的 RHEL 8 系统。
2014年年末,RedHat 公司推出了当前最新的企业版 Linux 系统——RHEL 7。彼时国内外各大媒体都给了不少特写镜头。行业也给予了硕大的期待。可是,时至今日 RHEL 7 系统的市场占有率却一直不温不火,于是有人開始对 RHEL 7 系统的未来表示操心,甚至有人还拿出各种论调来唱衰 Linux 系统。觉得开源厂商已经过了事业最高点。要在server领域让步于 Windows 系统了。这些话事实上并不是必需去反驳,不论什么一个产品都会有其拥趸和黑粉,时间会向全部人证明一切。我们如今仅仅是来单纯地聊一聊这个 RHEL 7 系统。
在正式开聊之前。希望读者对 Linux 系统特性和运维领域有主要的了解,知道 Linux 系统在server领域中占领着不可小觑的市场份额,认识到 RedHat 厂商对 Linux 系统及整个开源行业的重要影响,更知道 CentOS 系统事实上是 RHEL 系统的衍生品。假设曾经使用过一段时间的 RHEL 7 系统。我们就更能顺畅地讨论“红帽 Linux 系统是否是一个失败的产品”这个问题。
我们先来看一个烫手的热议问题:“为什么半年过去了,RHEL 7 系统的市场份额依旧不温不火?要不要返回去学习老版本号的 Linux 系统?”甚至有阴谋论说美国在使用新版本号的 Linux 系统来搜集全球信息,告诫我们千万不要去碰。这个问题必须要回应,否则很多其它的阴谋论会层出不穷,甚至会让国内某些认知能力欠缺的媒体对开源行业产生误解甚至曲解。
基于前面提到的与读者共同拥有的经验共识和篇幅限制,以下的论证速度会比較快。也会非常有意思。首先。RHEL 是企业版的server系统而不是用来玩耍折腾的桌面机系统,更何况作为桌面操作系统的 Windows 7 在2009年7月14日公布之后,整整用了3年才開始真正普及,难道在2009年到2013年间,Windows 7 就是失败的产品吗?再者,RHEL 7 系统创新式地集成了 Docker 虚拟化技术,支持 XFS 文件系统。兼容微软的身份管理,并採用 systemd 作为系统初始化进程,其性能和兼容性相较于之前版本号都有了非常大的改善,非常明显是一款非常优秀的操作系统。最后,事实上单从纳入 OpenStack 和 Docker 的决策上来讲,就应该相信红帽的开发团队不是在闭门造车。因此应该又一次考虑究竟是哪里出了问题。
运维人员在心里经常会想:“如今的环境跑得好好的,为什么要换呢?”又一次部署生产环境不是说装上操作系统万事大吉,也不是把软件随便安装上就能拍屁股走人的,还要考虑升级带来的风险。
- 日后的生产环境出了问题,谁来负责?
- 旧的软件依旧能否与新系统兼容?
- 新的系统或软件是否有 bug?
- 安全性怎样。审计怎么做?
- 之前购买的第三方技术支持能否够具备相应的能力?
- 升级后是否会影响到某些软件的版权,是否须要又一次付费?
- 不习惯新系统带来的变化怎么办?
- 费力升级后对自己有什么优点?
……
客观来讲,这次 RHEL 7 系统的改变实在太大。最重要的是它採用了 systemd 作为初始化进程。这样一来,差点儿之前全部的运维自己主动化脚本都须要改动。那么,究竟还要不要升级到 RHEL 7?当然,也不是说server机房中的生产环境从不更新换代,当工作需求超过了当前版本号的能力范围时,就必须要进行升级。
比方,rsyslogd 日志记录服务在 RHEL 6 系统中的版本号是5.8。而如今最新的版本号已经是8.1。
这两个版本号之间差了3个大的主版本号号,其功能就有了非常大的差距,您觉得会一直用旧的版本号吗?
早在2014年年初。Fedora 系统首次採用了 systemd 系统初始化进程,当时我就断言 RHEL 7系统也会使用 systemd,所以当即更新了自己的培训课程。这也让身在其它培训机构还在学习 init 參数的用户新生艳羡。
所以,不论是学习 Linux 还是编程语言,都应该选择当前稳定且最新的版本号作为学习环境。
- 稳定:不管是进行开发还是运维。稳定压到一切。
- 最新:老版本号可能会有更大的概率存在安全漏洞或者功能缺陷,而新版本号不仅出现漏洞的概率小,并且即便出现漏洞。也会高速得到众多开源社区和企业的响应并更快地修复。
我每次在公开场合讲座时都会表达这样一个观点:“我们并非由于开源而喜欢 Linux。而是由于 Linux 系统真的非常优秀,开源精神仅仅是锦上添花而已。
”我们在前文中已经狠狠地肯定了 Linux 系统对运维行业甚至是对世界的影响。大家要做的就是去相信我对运维行业未来发展的推断,然后放手来学习吧。
了解红帽认证
红帽公司成立于1993年。是全球首家收入超10亿美元的开源公司。总部位于美国。分支机构遍布全球。
红帽公司作为全球率先的开源和 Linux 系统提供商,其产品已被业界广泛认可并使用,尤其是 RHEL 系统在业内拥有超高的 Linux 系统市场占有率。
红帽公司除了提供操作系统之外,还提供了虚拟化、中间件、应用程序、管理和面向服务架构的解决方式。
红帽认证是由红帽公司推出的 Linux 认证。该认证被觉得是 Linux 行业乃至整个 IT 领域价值最高的认证之中的一个。红帽认证考试全部採用上机形式,在考察学生基础理论能力的同一时候还考察了实践动手操作以及排错能力。红帽公司针对红帽认证制定了完好的专业评估与认证标准,其认证主要包括红帽认证系统管理员(RHCSA)、红帽认证project师(RHCE)与红帽认证架构师(RHCA)。
2014年6月10日,红帽公司在公布新版红帽企业版系统(RHEL 7)的当天即在红帽英文官网更新了其对 RHCSA 与 RHCE 培训政策的调整,考生仅仅有先通过红帽 RHCSA 认证后才干考取红帽 RHCE 认证。
红帽认证进阶等级图
红帽认证系统管理员(Red Hat Certified System Administrator,RHCSA)属于 Linux 系统的0基础认证。比較适合 Linux 爱好者。
该认证要求考生对 Linux 系统有一定的了解,并且能够熟练使用 Linux 命令来完毕以下任务:
- 管理文件、文件夹、文档以及命令行环境。
- 使用分区、LVM 逻辑卷管理本地存储。
- 安装、更新、维护、配置系统与核心服务;
- 熟练创建、改动、删除用户与用户组,并使用 LDAP 进行集中文件夹身份认证。
- 熟练配置防火墙以及 SELinux 来保障系统安全。
红帽认证管理员(RHCSA)证书演示样例
红帽认证project师(Red Hat Certified Engineer,RHCE)属于 Linux 系统的中级水平认证,难度相对 RHCSA 认证来讲更大,并且要求考生必须已获得 RHCSA 认证。该认证适合有基础的 Linux 运维管理员,主要考察对下列服务的管理与配置能力:
- 熟练配置防火墙规则链与 SElinux 安全上下文;
- 配置 iSCSI(互联网小型计算机系统接口)服务;
- 编写 Shell 脚本来批量创建用户、自己主动完毕系统的维护任务。
- 配置 HTTP/HTTPS 网络服务。
- 配置 FTP 服务;
- 配置 NFS 服务;
- 配置 SMB 服务。
- 配置 SMTP 服务。
- 配置 SSH 服务;
- 配置 NTP 服务。
红帽认证project师(RHCE)证书演示样例
红帽认证架构师(Red Hat Certified Architect,RHCA)属于 Linux 系统的最高级别认证。是公认的 Linux 操作系统顶级认证。眼下中国仅有不到1000人(2017年更新数据)持有该认证。考生须要在获得 RHCSA 与 RHCE 认证后再完毕5门课程的考试才干获得 RHCA 认证,因此难度最大,备考时间最长。费用也最高(考试费约在1.8万元~2.1万元人民币)。
该认证考察的是考生对红帽卫星服务、红帽系统集群、红帽虚拟化、系统性能调优以及红帽云系统的安装搭建与维护能力。
红帽认证架构师(RHCA)证书演示样例
RHCA 高分技巧
红帽 RHEL 7 版本号的 RHCA 认证须要完毕至少5门考试。这5门考试的时间不同。但均为210分合格(70%)。并且红帽公司非常注重 RHCA 架构师认证的有用性,所以课程总是在随行业趋势而不断调整。
下表为2017年最新版的考试课程。欲取得红帽 RHCA 认证,您必须通过以下随意5门认证考试。
考试代码 | 认证名称 |
---|---|
EX210 | 红帽 OpenStack 认证系统管理员考试 |
EX220 | 红帽混合云管理专业技能证书考试 |
EX236 | 红帽混合云存储专业技能证书考试 |
EX248 | 红帽认证 JBoss 管理员考试 |
EX280 | 红帽平台即服务专业技能证书考试 |
EX318 | 红帽认证虚拟化管理员考试 |
EX401 | 红帽部署和系统管理专业技能证书考试 |
EX413 | 红帽server固化专业技能证书考试 |
EX436 | 红帽集群和存储管理专业技能证书考试 |
EX442 | 红帽性能调优专业技能证书考试 |
本书组织结构
第1章,部署虚拟环境安装 Linux 系统:从零基础具体解说了虚拟机软件与红帽 Linux 系统,完整演示了 VM 虚拟机的安装与配置过程,以及红帽 RHEL 7 系统的安装、配置过程和初始化方法。此外,本章还涵盖了在 Linux 系统中找回 root 管理员password、RPM 与 Yum 软件仓库的知识,以及 RHEL 7 系统中 systemd 初始化进程的特色与用法。
第2章,新手必须掌握的 Linux 命令:本章首先介绍系统内核和 Shell 终端的关系与作用,然后介绍 bash 解释器的4大优势并学习 Linux 命令的执行方法。本章还精挑细选了数十个 Linux 命令,它们与系统工作、系统状态、工作文件夹、文件、文件夹、打包压缩与搜索等主题相关。学习这些最基础的 Linux 命令,能够为今后学习更复杂的命令和服务做好必备知识铺垫。
第3章,管道符、重定向与环境变量:本章解说了与文件读写操作有关的重定向技术的5种模式,让读者通过实验切实理解每一个重定向模式的作用,解决输出信息的保存问题;然后深入解说了管道命令符,帮助读者掌握命令之间的搭配用法。进一步提高命令输出值的处理效率;随后通过解说 Linux 系统命令行中的通配符和常见转义符,让您输入的 Linux 命令具有更准确的意义,为下一章学习编写 Shell 脚本打好功底。
第4章,Vim 编辑器与 Shell 命令脚本:本章解说了怎样使用 Vim 编辑器来编写、改动文档。然后通过逐个配置主机名称、系统网卡以及 Yum 软件仓库參数文件等实验。帮助读者加深 Vim 编辑器中诸多命令、快捷键、模式切换方法的理解;然后把前面章节中解说的 Linux 命令、命令语法与 Shell 脚本中的各种流程控制语句通过 Vim 编辑器写到 Shell 脚本中结合到一起,实现终于能够自己主动化工作的脚本文件;本章最后演示了怎样通过 at 命令与 crond 计划任务服务来分别实现一次性的系统任务设置和长期性的系统任务设置,从而让日常的工作更加高效,更自己主动化。
第5章,用户身份与文件权限:本章具体解说了文件的全部者、所属组以及其它人可对文件进行的读(r)写(w)执行(x)等操作,以及怎样在 Linux 系统中增加、删除、改动用户账户信息。我们还能够使用 SUID、SGID 与 SBIT 特殊权限更加灵活地设置系统权限功能,来弥补对文件设置一般操作权限时所带来的不足。隐藏权限能够给系统增加一层隐形的防护层,让黑客最多仅仅能查看关键日志信息,而不能进行改动或删除。而文件的訪问控制列表(Access Control List,ACL)能够进一步让单一用户、用户组对单一文件或文件夹进行特殊的权限设置,让文件具有能满足工作需求的最小权限吧。本章最后还将解说怎样使用 su 命令与 sudo 服务让普通用户具备超级管理员的权限。不仅能够满足日常的工作需求。还能够确保系统的安全性。
第6章,存储结构与磁盘划分:本章具体地分析了 Linux 系统中最常见的 Ext3、Ext4 与 XFS 文件系统的不同之处。并带领各位读者着重练习硬盘设备分区、格式化以及挂载等经常使用的硬盘管理操作,以便熟练掌握文件系统的用法。在打下坚实的理论基础与完毕一些相关的实践练习后,我们还将进一步完整地部署 SWAP(交换)分区、配置 quota 磁盘配额服务,以及掌握 ln 命令带来的软硬链接。
第7章。使用 RAID 与 LVM 磁盘阵列技术:本章深入解说了各个经常使用 RAID 技术方案的特性,并通过实际部署 RAID 10、RAID 5+ 备份盘等方案来更直观地查看 RAID 的强大效果,以便进一步满足生产环境对硬盘设备的 I/O 读写速度和数据冗余备份机制的需求。同一时候,考虑到用户可能会动态调整存储资源。本章还将介绍 LVM(Logical Volume Manager,逻辑卷管理器)的部署、扩容、缩小、快照以及卸载删除的相关知识。
第8章,iptables 与 firewalld 防火墙:本章解说了 RHEL 7 中新增的 firewalld 防火墙与先前版本号中 iptables 防火墙之间的差别。并分别使用 iptables、firewall-cmd、firewall-config 和 TCP Wrappers 等防火墙策略配置服务来完毕数十个依据真实工作需求而设计的防火墙策略配置实验。在学习完这些实验之后,各位读者不仅能够熟练地过滤请求的流量,还能够基于服务程序的名称对流量进行同意和拒绝操作。确保 Linux 系统的安全性万无一失。
第9章,使用 ssh 服务管理远程主机:本章解说了怎样使用 nmtui 命令配置网络參数。以及通过 nmcli 命令查看网络信息并管理网络会话服务,从而让您能够在不同工作场景中高速地切换网络执行參数;还解说了怎样手工绑定 mode6 模式双网卡,实现网络的负载均衡。本章还深入介绍了 SSH 协议与 sshd 服务程序的理论知识、Linux 系统的远程管理方法以及在系统中配置服务程序的方法,并採用实验的形式演示了使用基于密钥验证的 sshd 服务程序进行远程登录。以及使用 screen 服务程序远程管理 Linux 系统的不间断会话等技术。
第10章。使用 Apache 服务部署静态站点:本章通过对照当前主流的 Web 服务程序来使读者更好地理解各自的优势及特点,并真正掌握在 Linux 系统中配置服务的技巧。本章还具体解说了 SELinux 服务的作用、三种工作模式以及策略管理方法,确保读者掌握 SELinux 域和 SELinux 安全上下文的配置方法。
第11章,使用 vsftpd 服务传输文件:本章解说了什么是文件传输协议(File Transfer Protocol,FTP),以及怎样部署 vsftpd 服务程序。然后深度剖析了 vsftpd 主配置文件里最经常使用的參数及其作用,并完整演示了 vsftpd 服务程序三种认证模式的配置方法;本章还涵盖了可插拔认证模块的原理、作用以及有用配置方法。
第12章。使用 Samba 或 NFS 实现文件共享:本章解说了 Samba 服务的理论知识,以及 SMB 协议与 Samba 服务程序的起源和发展过程,并通过实验的方式部署文件共享服务来深入了解 Samba 服务程序中相关參数的作用;还解说了怎样配置网络文件系统(Network File System,NFS)服务来简化 Linux 系统之间的文件共享工作。以及通过部署 NFS 服务在多台 Linux 系统之间挂载并使用资源。
第13章,使用 BIND 提供域名解析服务:本章解说了 DNS 域名解析服务的原理以及作用,介绍了域名查询功能中正向解析与反向解析的作用,实践部署了 DNS 主server、DNS 从server、DNS 缓存server。并通过实验的方式演示了怎样在 DNS 主server上部署正、反解析工作模式。以便让大家深刻体会到 DNS 域名查询的便利和强大。
第14章,使用 DHCP 动态管理主机地址:本章解说了动态主机配置协议的作用,以及在 Linux 系统中配置部署 dhcpd 服务程序的方法。剖析了 dhcpd 服务程序配置文件内每一个參数的作用。并通过自己主动分配 IP 地址、绑定 IP 地址与 MAC 地址等实验。让各位读者更直观地体会 DHCP 协议的强大之处。
第15章。使用 Postifx 与 Dovecot 部署邮件系统:本章介绍了 SMTP、POP3、IMAP4 等常见的电子邮件协议。以及 MUA、MTA、MDA 这三种服务角色的作用。还完整地演示了在 Linux 系统中使用 Postfix 和 Dovecot 服务程序配置电子邮件系统服务的方法。重点解说了经常使用的配置參数,此外将结合 BIND 服务程序提供的 DNS 域名解析服务来验证client主机与server之间的邮件收发功能。最后还介绍了怎样在电子邮件系统中设置用户别名。以帮助大家在生产环境中更好地控制、管理电子邮件账户以及信箱地址。
第16章,使用 Squid 部署代理缓存服务:本章介绍了代理服务的原理以及作用、Squid 服务程序正向解析和反向解析的理论以及配置方法。在掌握了 Squid 服务程序的标准正向代理模式、透明正向代理模式、訪问控制列表功能以及反向代理等有用功能之后,读者不但能够进一步理解代理服务。提升服务控制能力,并且在步入运维岗位后能够游刃有余地处理相关问题。
第17章。使用 iSCSI 服务部署网络存储:本章开篇介绍了计算机硬件存储设备的不同接口技术的优缺点。并由此切入 iSCSI 技术主题的解说。本章还将带领大家在 Linux 系统上部署 iSCSI 服务端程序,并分别基于 Linux 系统和 Windows 系统来訪问远程的存储资源。
第18章,使用 MariaDB 数据库管理系统:本章介绍了数据库以及数据库管理系统的理论知识,然后介绍了 MariaDB 数据库管理系统的内容。接下来将通过动手实验的方式。帮助各位读者掌握 MariaDB 数据库管理系统的一些常规操作。最后还介绍了数据库的备份与恢复方法。
第19章,使用 PXE+Kickstart 无人值守安装服务:本章介绍了能够实现无人值守安装服务的 PXE+Kickstart 服务程序,并带领大家动手安装部署 PXE + TFTP + FTP + DHCP + Kickstart 等服务程序,从而搭建出一套可批量安装 Linux 系统的无人值守安装系统。在学完本章内容之后,运维新手就能够避免枯燥乏味的重复性工作,大大提高系统安装的效率。
第20章,使用 LNMP 架构部署动态站点环境:LNMP 动态站点部署架构是一套由 Linux + Nginx + MySQL + PHP 组成的动态站点系统解决方式,具有免费、高效、扩展性强且资源消耗低等优良特性。
本章首先对照了使用源码包安装服务程序与使用 RPM 软件包安装服务程序的差别,然后解说了怎样手工编译源码包并安装各个服务程序,以及怎样使用 Discuz! X3.2 版本号论坛系统验证架构环境。
感谢你们相信并选择我
首先,感谢广大读者从众多 Linux 图书中终于选择了本书,感谢你们的厚爱与信任。相信本书不会让你们失望的。
其次。感谢尾随刘遄老师一起努力打拼的各位成员。他们是(以增加团队时间排序):逄增宝、岳永、张宏宇、冯琪、黄烨婧、冯振华、张振宇、唐资富、刘峰、王辉、苏西云、李帅、陶武杰、王浩、郭建鹏、周晓雪、郝大发、倪家兴、郑帅、姜显赫、高军、王毅、任维国、张雄、周阳、程伟、任倩倩、吴向平、华世发。感谢你们相信我,为了我们共同的事业而奋勇向前。假设没有你们的帮助和支持,就不会有如今的成绩。在过去两年中。我们从一个每天仅仅有十几人次訪问的小博客,发展到了每天将近一万人次訪问的公众站点。在两年内更是接连开通了近30个 QQ 技术交流群。群内读者已超过5万人;微信公众号也从0做到了10万粉丝。这些都是此前中国不论什么一本技术类电子图书没有达到的高度和成就。尤其在近期一年。我们的发展速度远远率先于同行业全部的资讯站点和教育机构。优质图书内容与读者口碑让我们走的每一步都如此扎实。如今我们能够非常自豪地讲:“我们用努力留住了用户,用户看到了我们的付出。”
再次。感谢人民邮电出版社的傅道坤编辑。我们在2015年末初次接触后傅老师便主动提起出版本号书的想法,随后一起用了近2年的时间共同打磨本书。感谢傅老师一直以来给予的信任和中肯有用的建议。感谢北京联合大学应用科技学院王廷梅院长在我研究生进修教育学期间的照应和悉心培育,是您引导我步入了教育学和计算机科学与技术专业。不忘母校。不忘联大。
最后也是最重要的,感谢我的父母和妻子。当我在2015年说想要写一本 Linux 技术图书的时候。感谢你们相信了我。
感谢我的妻子能够理解我的压力,一起来协助管理在线培训班及招生工作,让我有了很多其它的时间来写作。
假设没有你们的信任和陪伴,我不敢想象自己如今会是什么样子。
读者服务
本书是一本注重有用性的 Linux 技术自学图书。自电子版公布后日均阅读量近万次。本书以及兴许的进阶篇图书将继续一如既往地免费、完整地提供给各位读者。
当前,我们正在世界各地部署图书配套站点的镜像server,旨在用最快的站点响应速度满足您心中那个求知的小宇宙。此外,我们的团队成员在完好、更新本书内容以及配套软件的同一时候,还将为您收集、整理值得每天一看的“新闻资讯”和“技术干货”。当然,也欢迎您到我们的 QQ 技术群(http://www.linuxprobe.com/club)中寻找技术大牛!
而这一切的便利与服务,仅仅差您如今的一个选择,赶紧拿起手机扫描以下的微信二维码吧。
编辑手记
与刘遄老师初次相识是在2016年。
当时由于自身的工作性质使然。每天都在网络上四处瞎逛。寻求一些能够拿来进行纸质出版的资源。并时刻幻想着哪一天也能捡到个宝,让我有机会打造一本有爆款潜力的高质量精品图书。
直到有一天。偶然闯入刘遄老师运营的 www.linuxprobe.com 站点,看到他精心编写的本书同名线上教程以及真有用户的全五星好评,不由地心中暗喜“天不负我”!
于是。马不停蹄地给刘遄老师发邮件、加 QQ。商讨合作事宜。终于,在不亚于“求职面试”难度的多轮沟通之后,我们在与兄弟出版社的竞争中脱颖而出,赢得了刘老师的“芳心”。然后才有了大家如今看到的这本打着“异步社区”LOGO 的《Linux 就该这么学》。
在本书写作出版期间,我经常会与刘遄老师进行交流。讨论稿件本身的问题、封面设计事宜。以及后期的营销计划,刘老师所具备的专业、严谨、细心和执行力让我深感折服。
沟通多了之后,话题也慢慢地从图书本身向外扩展。工作、生活、家庭、课业都是我们谈论的话题。慢慢地,我也得知,刘遄老师早在高中时期便由于兴趣驱使而接触到 Linux 系统并開始学习运维技术。还先后获得了红帽认证管理员、红帽认证project师以及最顶级的红帽认证架构师等证书。刘遄老师对 Linux 技术发自肺腑的热爱和痴迷,是他多年以来一直从事 Linux 系统运维培训以及红帽认证课程培训的源动力。
在这个行业的长期浸淫,也让他成长为国内开源行业颇具影响力的技术大 V。
刘遄老师针对 Linux 系统培训的教学思想相当具有前瞻性和独特性。他始终觉得。一名优秀的 IT 技术培训讲师应该将技术知识进行提炼总结之后再传授给学生,而不能仅仅是一名技术知识的搬运工。这也是《Linux 就该这么学》的写作原则。在本书写作过程中,刘遄老师真正做到了断舍离,他从真正贴近于新人学习特点的角度出发,抛弃了不重要、不有用的内容,着重将笔墨用在了“重点、难点知识的解说,以及与理论基础的结合、实践”方面,由此写就了一本最适合 Linux 新手入门的教程。
刘遄老师花费了近3年时间写作的这本《Linux 就该这么学》,前后修订1500余次,在出版之前又拿出半年时间再次修正、校对,这也从源头保障了图书的品质。当前。本书电子版的日均訪问量近10000次,累计在线阅读人数已达到百万级别。是国内当之无愧的高质量 Linux 系统自学图书。
本书基于最新的红帽系统 RHEL 7 编写,可是其内容也通用于 CentOS、Fedora 等常见的 Linux 衍生版本号。难能可贵的是。刘遄老师还在书中解说了红帽认证考试体系以及考试要求。假设您有志于考取红帽认证。也能够与刘老师进一步交流。
为了减少各位读者的学习门槛。保持学习热情。提高学习效率。刘老师对本书的内容编排也是煞费苦心。书中的章节内容会保持适度的关联性。读者在依照章节顺序学习之时。能够通过“学新”而起到“温故”的效果。
不管读者学习 Linux 系统的目的是出于兴趣,还是为了谋求一份高薪工作,这本高品质、高颜值的《Linux 就该这么学》都是您入门 Linux 系统的首选教程。
Choose it! Buy it! Read it!
傅道坤
本书责任编辑
第1章 部署虚拟环境安装 Linux 系统
本章解说了例如以下内容:
准备您的工具。
安装配置 VM 虚拟机;
安装您的 Linux 系统;
重置 root 管理员password;
RPM(红帽软件包管理器)。
Yum 软件仓库。
systemd 初始化进程。
本章从零基础具体解说了虚拟机软件与红帽 Linux 系统,完整演示了 VM 虚拟机的安装与配置过程,以及红帽 RHEL 7系统的安装、配置过程和初始化方法。此外,本章还涵盖了在 Linux 系统中找回 root 管理员password、RPM 与 Yum 软件仓库的知识。以及 RHEL 7系统中 systemd 初始化进程的特色与用法。
1.1 准备您的工具
所谓“工欲善其事,必先利其器”,在本章学习过程中。读者须要搭建出为今后练习而使用的红帽 RHEL 7系统环境。
您不须要为了练习实验而特意再购买一台新电脑。下文会解说怎样通过虚拟机软件来模拟出仿真系统。
虚拟机是能够让用户在一台真机上模拟出多个操作系统的软件。
一般来讲当前主流的硬件配置足以胜任安装虚拟机的任务,并且依据刘遄老师近10年的运维技术学习及多年的在线培训经验来看,建议您不管经济条件是否同意,都不应该在学习期间把 Linux 系统安装到真机上面,由于在学习过程中都免不了要“折腾”您的 Linux 操作系统。通过虚拟机软件安装的系统不仅能够模拟出硬件资源,把实验环境与真机文件分离保证数据安全,更酷的是当操作失误或配置有误导致系统异常的时候。能够高速把操作系统还原至出错前的环境状态。进而减少重装系统的等待时间(在真机上安装 Linux 操作系统每次至少须要30分钟)。
近期几年在讲课时,总会发现同学们使用的实验环境五花八门。有 CentOS,有 RHEL 6,还有 Debian 系统等。结果每次给他们排错时都费心劳力。苦不堪言,并且特别无语。就像您报名去学习日料,老师用柳刃。您非要用长刀,结果寿司肯定会被切的稀巴烂。聪明的学生在学习时一定会採用跟老师一样的工具和环境,这样出现故障后能够首先排除环境问题并迅速定位错误。等技术学的足够扎实了,到了生产环境中自然也就具备了随心选择工具和环境的能力。所以尤其建议没有报名參加刘遄老师开设的付费培训班的同学。一定要充分发挥自己的自学能力,否则长期的实验出错一定会影响您的学习兴趣。
另外。说来也非常郁闷,事实上我在初中时就有学习 Linux 系统的打算,但那时候上网还不便捷,想要安装 Linux 系统就必须去买光盘才行,而那个时候安装 Linux 系统至少须要6张光盘(CD-ROM 容量大约为700MB),狠下心买回家后尝试安装了几次却一直报错,由于搞不懂报错原因而仅仅能放弃了。2015年春节前打扫屋子时又翻出了这些光盘。这次终于找到了当年出错误的原因,原来是第五张光盘被“刮花”了,系统相关的依赖关系包被损坏。终于导致 Linux 系统安装失败。原本能够早几年就能够接触到 Linux 系统。结果由于这个原因而耽搁。真的是既郁闷又尴尬,所以这里必须狠狠地提醒各位同学:“工具准备齐全后一定要校验完整性。不要重蹈我的覆辙”。
1.2 安装配置 VM 虚拟机
VMware WorkStation 虚拟机软件是一款桌面计算机虚拟软件。让用户能够在单一主机上同一时候执行多个不同的操作系统。
每一个虚拟操作系统的硬盘分区、数据配置都是独立的,并且多台虚拟机能够构建为一个局域网。Linux 系统对硬件设备的要求非常低。我们没有必要再买一台电脑,课程实验用虚拟机全然能够搞定,并且 VM 还支持实时快照、虚拟网络、拖曳文件以及 PXE(Preboot Execute Environment。预启动执行环境)网络安装等方便有用的功能。
可能会有读者有疑问“为什么要用收费的虚拟机产品来搭建实验环境。而不是用一些免费的开源虚拟机软件呢?”本书前言中讲到。我们学习Linux系统的原因不是由于它免费,也不是由于它开源。而是由于 Linux 系统真的非常好用,这个结论相同也适用于 VMware Workstation 这款产品。
<strike></strike>
执行下载完毕的 Vmware Workstation 虚拟机软件包,将会看到如图1-1所看到的的虚拟机程序安装向导初始界面。
图1-1 虚拟机软件的安装向导初始界面
在虚拟机软件的安装向导界面单击“下一步”button。如图1-2所看到的。
图1-2 虚拟机的安装向导
在终于用户许可协议界面选中“我接受许可协议中的条款”复选框。然后单击“下一步”button,如图1-3所看到的。
图1-3 接受许可条款
选择虚拟机软件的安装位置(可选择默认位置)。选中“增强型键盘驱动程序”复选框后单击“下一步”button。如图1-4所看到的。
依据自身情况适当选择“启动时检查产品更新”与“帮助完好 VMware Workstation Pro”复选框。然后单击“下一步”button,如图1-5所看到的。
选中“桌面”和“開始菜单程序文件夹”复选框。然后单击“下一步”button,如图1-6所看到的。
图1-4 选择虚拟机软件的安装路径
图1-5 虚拟机的用户体验设置
图1-6 虚拟机图标的快捷方式生成位置
一切准备就绪后。单击“安装”button,如图1-7所看到的。
图1-7 准备開始安装虚拟机
进入安装过程,此时要做的就是耐心等待虚拟机软件的安装过程结束。如图1-8所看到的。
图1-8 等待虚拟机软件安装完毕
大约5~10分钟后,虚拟机软件便会安装完毕,然后再次单击“完毕”button,如图1-9所看到的。
双击桌面上生成的虚拟机快捷图标。在弹出的如图1-10所看到的的界面中,输入许可证密钥,或者选择试用之后,单击“继续”button(这里选择的是“我希望试用 VMware Worksatation 12 30天”复选框)。
在出现“欢迎使用 VMware Workstation 12”界面后,单击“完毕”button,如图1-11所看到的。
在桌面上再次双击快捷方式,此时便看到了虚拟机软件的管理界面,如图1-12所看到的。
图1-9 虚拟机软件安装向导完毕界面
图1-10 虚拟机软件许可验证界面
图1-11 虚拟机软件的感谢界面
图1-12 虚拟机软件的管理界面
注意,在安装完虚拟机之后。不能马上安装 Linux 系统,由于还要在虚拟机内设置操作系统的硬件标准。仅仅有把虚拟机内系统的硬件资源模拟出来后才干够正式步入 Linux 系统安装之旅。
VM 虚拟机的强大之处在于不仅能够调取真实的物理设备资源,还能够模拟出多网卡或硬盘等资源,因此全然能够满足大家对学习环境的需求。再次强调,真的不用特意购买新电脑。
在图1-12中,单击“创建新的虚拟机”选项,并在弹出的“新建虚拟机向导”界面中选择“典型”单选button。然后单击“下一步”button。如图1-13所看到的。
图1-13 新建虚拟机向导
选中“稍后安装操作系统”单选button,然后单击“下一步”button,如图1-14所看到的。
图1-14 选择虚拟机的安装来源
注:
在近几年的讲课过程中真是遇到了非常多不听话的学生,明明要求选择“稍后安装操作系统”单选button,结果非要选择“安装程序光盘镜像文件”单选button。并把下载好的 RHEL 7系统的镜像选中。这样一来,虚拟机会通过默认的安装策略为您部署最精简的 Linux 系统,而不会再向您询问安装设置的选项。
假设您是购买图书自行学习的话。请一定不要低估兴许实验的难度和 Linux 知识体系的难度,更不要高估自己的自学和排错能力,否则可能会由于系统长期报错而丧失学习兴趣,得不偿失。
对于经济条件同意、有意愿深入了解 Linux 系统并考取红帽 RHCE 的同学,能够看一下刘遄老师主讲的培训介绍:http://www.linuxprobe.com/training。
在图1-15中。将客户机操作系统的类型选择为“Linux”,版本号为“Red Hat Enterprise Linux 7 64位”,然后单击“下一步”button。
图1-15 选择操作系统的版本号
填写“虚拟机名称”字段。并在选择安装位置之后单击“下一步”button,如图1-16所看到的。
将虚拟机系统的“最大磁盘大小”设置为 20.0GB(默认就可以),然后单击“下一步”button,如图1-17所看到的。
单击“自己定义硬件”button,如图1-18所看到的。
图1-16 命名虚拟机及设置安装路径
图1-17 虚拟机最大磁盘大小
图1-18 虚拟机的配置界面
在出现的图1-19所看到的的界面中。建议将虚拟机系统内存的可用量设置为 2GB。最低不应低于 1GB。假设自己的真机设备具有非常强的性能。那么也建议将内容量设置为 2GB。由于将虚拟机系统的内存设置得太大没有必要。
依据您真机的性能设置 CPU 处理器的数量以及每一个处理器的核心数量。并开启虚拟化功能,如图1-20所看到的。
图1-19 设置虚拟机的内存量
图1-20 设置虚拟机的处理器參数
光驱设备此时应在“使用 ISO 镜像文件”中选中了下载好的RHEL系统镜像文件,如图1-21所看到的。
图1-21 设置虚拟机的光驱设备
VM 虚拟机软件为用户提供了3种可选的网络模式,分别为桥接模式、NAT 模式与仅主机模式。这里选择“仅主机模式”,如图1-22所看到的。
图1-22 设置虚拟机的网络适配器
- 桥接模式:相当于在物理主机与虚拟机网卡之间架设了一座桥梁,从而能够通过物理主机的网卡訪问外网。
- NAT模式:让 VM 虚拟机的网络服务发挥路由器的作用。使得通过虚拟机软件模拟的主机能够通过物理主机訪问外网。在真机中 NAT 虚拟机网卡相应的物理网卡是 VMnet8。
- 仅主机模式:仅让虚拟机内的主机与物理主机通信,不能訪问外网,在真机中仅主机模式模拟网卡相应的物理网卡是 VMnet1。
把 USB 控制器、声卡、打印机设备等不须要的设备统统移除掉。
移掉声卡后能够避免在输入错误后发出提示声音,确保自己在今后实验中思绪不被打搅。然后单击“关闭”button,如图1-23所看到的。
图1-23 终于的虚拟机配置情况
返回到虚拟机配置向导界面后单击“完毕”button,如图1-24所看到的。虚拟机的安装和配置顺利完毕。
当看到如图1-25所看到的的界面时。就说明您的虚拟机已经被配置成功了。接下来准备步入属于您的 Linux 系统之旅吧。
图1-24 结束虚拟机配置向导
图1-25 虚拟机配置成功的界面
1.3 安装您的 Linux 系统
安装 RHEL 7或 CentOS 7系统时。您的电脑的 CPU 须要支持 VT(Virtualization Technology。虚拟化技术)。
所谓 VT。指的是让单台计算机能够切割出多个独立资源区,并让每一个资源区依照须要模拟出系统的一项技术,其本质就是通过中间层实现计算机资源的管理和再分配,让系统资源的利用率最大化。事实上仅仅要您的电脑不是五六年前买的。价格不低于三千元,它的 CPU 就肯定会支持 VT 的。假设开启虚拟机后依旧提示“CPU 不支持 VT 技术”等报错信息,请重新启动电脑并进入到 BIOS 中把 VT 虚拟化功能开启就可以。
在虚拟机管理界面中单击“开启此虚拟机”button后数秒就看到 RHEL 7系统安装界面。如图1-26所看到的。
在界面中,Test this media & install Red Hat Enterprise Linux 7.0和 Troubleshooting 的作用各自是校验光盘完整性后再安装以及启动救援模式。此时通过键盘的方向键选择 Install Red Hat Enterprise Linux 7.0选项来直接安装 Linux 系统。
图1-26 RHEL 7系统安装界面
接下来按回车键后開始载入安装镜像,所需时间大约在30~60秒,请耐心等待,如图1-27所看到的。
选择系统的安装语言后单击 Continue button。如图1-28所看到的。
注:
请读者不用操心英语基础的问题,由于 Linux 系统中用的 Linux 命令具有特定的功能和意义,而非英语单词本身的意思。比方 free 的意思是“自由”、“免费”,而 free 命令在 Linux 系统中的作用是查看内存使用量。因此即便是英语水平非常高,仅仅要没有不论什么 Linux 基础知识,在看到这些 Linux 命令后也须要又一次学习。
再者,把系统设置成英文后还能够锻炼一下英语阅读能力。不知不觉地就把 Linux 系统和英文一起学了。岂不是更好?!假设您执意选择中文安装语言,也能够在图1-28中进行选择。
图1-27 安装向导的初始化界面
图1-28 选择系统的安装语言
在安装界面中单击 SOFTWARE SELECTION 选项。如图1-29所看到的。
RHEL 7系统的软件定制界面能够依据用户的需求来调整系统的基本环境,比如把 Linux 系统用作基础server、文件server、Web server或工作站等。
此时您仅仅需在界面中单击选中 Server with GUI 单选button,然后单击左上角的 Done button就可以,如图1-30所看到的。
注:
之前看过一个新闻,说是苹果公司某员工在 iOS 系统的用户说明书末尾加了一句“反正你们也不会去看”。事实上这件事情有时候也能够用来调侃部分读者的学习状态,刘遄老师绝不会把无用的知识写到本书中。但就是这样一张如此醒目的截图也总是有同学视而不见,结果採用了默认的 Minimal Install 单选button安装 RHEL 7系统,终于导致非常多命令不能执行。服务搭建不成功。请一定留意!
图1-29 安装系统界面
图1-30 选择系统软件类型
返回到 RHEL 7系统安装主界面,单击 NETWORK & HOSTNAME 选项后,将 Hostname 字段设置为 linuxprobe.com,然后单击左上角的 Done button,如图1-31所看到的。
返回到安装主界面,单击 INSTALLATION DESTINATION 选项来选择安装媒介并设置分区。此时不须要进行不论什么改动,单击左上角的 Done button就可以。如图1-32所看到的。
注:
读者可能会有这种疑问“为什么我们不像其它 Linux 图书那样,讲一下手动分区的方法呢”?原因非常easy,由于 Linux 系统依据 FHS(Filesystem Hierarchy Standard,文件系统层次结构标准)把不同的文件夹定义了相应的不同功能,这部分内容会在第6章中具体介绍。
并且通过刘遄老师近期这几年的教学经验来看,即便如今写出了操作步骤,读者们大多也仅仅是点点鼠标,并不能真正理解当中的知识,效果不一定好,更何况在接下来的实验中,手动分区相对于自己主动分区来说也没有明显的优点。
所以读者大可不必操心学不到,我们书籍的规划课程章节是非常科学的。
图1-31 配置网络和主机名
图1-32 系统安装媒介的选择
返回到安装主界面。单击 Begin Installation button后就可以看到安装进度,在此处选择 ROOT PASSWORD。如图1-33所看到的。
图1-33 RHEL 7系统的安装界面
然后设置 root 管理员的password。
若坚持用弱口令的password则须要单击2次左上角的 Done button才干够确认,如图1-34所看到的。这里须要多说一句,当您在虚拟机中做实验的时候,password无所谓强弱,但在生产环境中一定要让 root 管理员的password足够复杂,否则系统将面临严重的安全问题。
图1-34 设置 root 管理员的password
Linux 系统安装过程一般在30~60分钟,在安装过程期间耐心等待就可以。安装完毕后单击 Reboot button,如图1-35所看到的。
图1-35 系统安装完毕
重新启动系统后将看到系统的初始化界面,单击 LICENSE INFORMATION 选项。如图1-36所看到的。
图1-36 系统初始化界面
选中 I accept the license agreement 复选框,然后单击左上角的 Done button,如图1-37所看到的。
图1-37 同意许可说明书
返回到初始化界面后单击 FINISH CONFIGURATION 选项,就可以看到 Kdump 服务的设置界面。假设临时不打算调试系统内核,也能够取消选中 Enable kdump 复选框。然后单击 Forward button,如图1-38所看到的。
图1-38 禁用 Kdump 服务
在如图1-39所看到的的系统订阅界面中。选中 No, I prefer to register at a later time 单选button,然后单击 Finish button。此处设置为不注冊系统对兴许的实验操作和生产工作均无影响。
虚拟机软件中的 RHEL 7系统经过又一次的重新启动后。我们终于能够看到系统的欢迎界面。如图1-40所看到的。在界面中选择默认的语言 English (United States),然后单击 Next button。
图1-39 临时不正确系统进行注冊
图1-40 系统的语言设置
将系统的输入来源类型选择为 English (US)。然后单击 Next button,如图1-41所看到的。
图1-41 设置系统的输入来源类型
为 RHEL 7系统创建一个本地的普通用户,该账户的username为 linuxprobe,password为 redhat,然后单击 Next button,如图1-42所看到的。
图1-42 创建本地的普通用户
依照图1-43所看到的的设置来设置系统的时区,然后单击 Next button。
图1-43 设置系统的时区
在图1-44所看到的的界面中单击 Start using Red Hat Enterprise Linux Server button。出现如图1-45所看到的的界面。
至此,RHEL 7系统完毕了全部的安装和部署工作。
准备開始学习 Linux 系统吧。
图1-44 系统初始化结束界面
图1-45 系统的欢迎界面
1.4 重置 root 管理员password
平日里让运维人员头疼的事情已经非常多了,因此偶尔把 Linux 系统的password忘记了并不用慌,仅仅需简单几步就能够完毕password的重置工作。可是。假设您是第一次阅读本书,或者之前没有 Linux 系统的使用经验。请一定先跳过本节,等学习完 Linux 系统的命令后再来学习本节内容。假设您刚刚接手了一台 Linux 系统,要先确定是否为 RHEL 7系统。假设是,然后再进行以下的操作。
[root@linuxprobe ~]# cat /etc/redhat-release Red Hat Enterprise Linux Server release 7.0 (Maipo)
重新启动 Linux 系统主机并出现引导界面时。按下键盘上的 e 键进入内核编辑界面。如图1-46所看到的。
图1-46 Linux 系统的引导界面
在 linux16 參数这行的最后面追加“rd.break”參数,然后按下 Ctrl + X 组合键来执行改动过的内核程序,如图1-47所看到的。
图1-47 内核信息的编辑界面
大约30秒过后。进入到系统的紧急求援模式,如图1-48所看到的。
图1-48 Linux 系统的紧急救援模式
依次输入以下命令,等待系统重新启动操作完毕,然后就能够使用新password linuxprobe 来登录 Linux 系统了。
命令行执行效果如图1-49所看到的。
图1-49 重置 Linux 系统的 root 管理员password
mount -o remount,rw /sysrootchroot /sysrootpasswdtouch /.autorelabelexitreboot
1.5 RPM(红帽软件包管理器)
在 RPM(红帽软件包管理器)公布之前,要想在 Linux 系统中安装软件仅仅能採取源码包的方式安装。
早期在 Linux 系统中安装程序是一件非常困难、耗费耐心的事情,并且大多数的服务程序仅仅提供源码。须要运维人员自行编译代码并解决很多的软件依赖关系,因此要安装好一个服务程序。运维人员须要具备丰富知识、高超的技能。甚至良好的耐心。并且在安装、升级、卸载服务程序时还要考虑到其它程序、库的依赖关系。所以在进行校验、安装、卸载、查询、升级等管理软件操作时难度都非常大。
RPM 机制则为解决这些问题而设计的。
RPM 有点像 Windows 系统中的控制面板,会建立统一的数据库文件。具体记录软件信息并能够自己主动分析依赖关系。
眼下 RPM 的优势已经被公众所认可,使用范围也已不局限在红帽系统中了。表1-1是一些经常使用的 RPM 软件包命令,当前不须要记住它们,大致混个“脸熟”就足够了。
表1-1 经常使用的 RPM 软件包命令
安装软件的命令格式 | rpm -ivh filename.rpm |
---|---|
升级软件的命令格式 | rpm -Uvh filename.rpm |
卸载软件的命令格式 | rpm -e filename.rpm |
查询软件描写叙述信息的命令格式 | rpm -qpi filename.rpm |
列出软件文件信息的命令格式 | rpm -qpl filename.rpm |
查询文件属于哪个RPM的命令格式 | rpm -qf filename |
1.6 Yum 软件仓库
虽然 RPM 能够帮助用户查询软件相关的依赖关系,但问题还是要运维人员自己来解决。而有些大型软件可能与数十个程序都有依赖关系,在这种情况下安装软件会是非常痛苦的。Yum 软件仓库便是为了进一步减少软件安装难度和复杂度而设计的技术。Yum 软件仓库能够依据用户的要求分析出所需软件包及其相关的依赖关系,然后自己主动从server下载软件包并安装到系统。Yum 软件仓库的技术拓扑如图1-50所看到的。
Yum 软件仓库中的 RPM 软件包能够是由红帽官方公布的。也能够是第三方公布的,当然也能够是自己编写的。《Linux 就该这么学》随书提供的镜像光盘内已经包括了大量可用的 RPM 红帽软件包,后文中具体解说这些软件包。表1-2所看到的为一些常见的 Yum 命令。当前仅仅需对它们有一个简单印象就可以。
图1-50 Yum 软件仓库的技术拓扑图
表1-2 常见的 Yum 命令
命令 | 作用 |
---|---|
yum repolist all | 列出全部仓库 |
yum list all | 列出仓库中全部软件包 |
yum info 软件包名称 | 查看软件包信息 |
yum install 软件包名称 | 安装软件包 |
yum reinstall 软件包名称 | 又一次安装软件包 |
yum update 软件包名称 | 升级软件包 |
yum remove 软件包 | 移除软件包 |
yum clean all | 清除全部仓库缓存 |
yum check-update | 检查可更新的软件包 |
yum grouplist | 查看系统中已经安装的软件包组 |
yum groupinstall 软件包组 | 安装指定的软件包组 |
yum groupremove 软件包组 | 移除指定的软件包组 |
yum groupinfo 软件包组 | 查询指定的软件包组信息 |
1.7 systemd 初始化进程
Linux 操作系统的开机过程是这种,即从 BIOS 開始,然后进入 Boot Loader。再载入系统内核。然后内核进行初始化,最后启动初始化进程。初始化进程作为 Linux 系统的第一个进程,它须要完毕 Linux 系统中相关的初始化工作,为用户提供合适的工作环境。红帽 RHEL 7系统已经替换掉了熟悉的初始化进程服务 System V init。正式採用全新的 systemd 初始化进程服务。
假设您之前学习的是 RHEL 5或 RHEL 6系统。可能会不习惯。
systemd 初始化进程服务採用了并发启动机制,开机速度得到了不小的提升。虽然 systemd 初始化进程服务具有非常多新特性和优势,但眼下还是以下4个槽点。
- 槽点1:systemd 初始化进程服务的开发者 Lennart Poettering 就职于红帽公司。这让其它系统的粉丝非常不爽。
- 槽点2: systemd 初始化进程服务仅仅可在 Linux 系统下执行,“抛弃”了 UNIX 系统用户。
- 槽点3:systemd 接管了诸如 syslogd、udev、cgroup 等服务的工作,不再甘心仅仅做初始化进程服务。
- 槽点4:使用 systemd 初始化进程服务后,RHEL 7系统变化太大。而相关的參考文档不多。令用户着实为难。
不管怎样,RHEL 7系统选择 systemd 初始化进程服务已经是一个既定事实。因此也没有了“执行级别”这个概念,Linux 系统在启动时要进行大量的初始化工作。比方挂载文件系统和交换分区、启动各类进程服务等,这些都能够看作是一个一个的单元(Unit)。systemd 用目标(target)取代了 System V init 中执行级别的概念。这两者的差别如表1-3所看到的。
表1-3 systemd 与 System V init 的差别以及作用
System V init 执行级别 | systemd 目标名称 | 作用 |
---|---|---|
0 | runlevel0.target, poweroff.target | 关机 |
1 | runlevel1.target, rescue.target | 单用户模式 |
2 | runlevel2.target, multi-user.target | 等同于级别3 |
3 | runlevel3.target, multi-user.target | 多用户的文本界面 |
4 | runlevel4.target, multi-user.target | 等同于级别3 |
5 | runlevel5.target, graphical.target | 多用户的图形界面 |
6 | runlevel6.target, reboot.target | 重新启动 |
emergency | emergency.target | 紧急 Shell |
假设想要将系统默认的执行目标改动为“多用户,无图形”模式。可直接用 ln 命令把多用户模式目标文件连接到/etc/systemd/system/文件夹:
[root@linuxprobe ~]# ln -sf /lib/systemd/system/multi-user.target /etc/systemd/ system/default.target
假设有读者之前学习过 RHEL 6系统,或者已经习惯使用 service、chkconfig 等命令来管理系统服务。那么如今就比較郁闷了,由于在 RHEL 7系统中是使用 systemctl 命令来管理服务的。
表1-4和表1-5所看到的 RHEL 6系统中 System V init 命令与 RHEL 7系统中 systemctl 命令的对照,您能够先大致了解一下,兴许章节中会经经常使用到它们。
表1-4 systemctl 管理服务的启动、重新启动、停止、重载、查看状态等经常使用命令
System V init 命令(RHEL 6系统) | systemctl 命令(RHEL 7系统) | 作用 |
---|---|---|
service foo start | systemctl start foo.service | 启动服务 |
service foo restart | systemctl restart foo.service | 重新启动服务 |
service foo stop | systemctl stop foo.service | 停止服务 |
service foo reload | systemctl reload foo.service | 又一次载入配置文件(不终止服务) |
service foo status | systemctl status foo.service | 查看服务状态 |
表1-5 systemctl 设置服务开机启动、不启动、查看各级别下服务启动状态等经常使用命令
System V init 命令(RHEL 6系统) | systemctl 命令(RHEL 7系统) | 作用 |
---|---|---|
chkconfig foo on | systemctl enable foo.service | 开机自己主动启动 |
chkconfig foo off | systemctl disable foo.service | 开机不自己主动启动 |
chkconfig foo | systemctl is-enabled foo.service | 查看特定服务是否为开机自己主动启动 |
chkconfig --list | systemctl list-unit-files --type=service | 查看各个级别下服务的启动与禁用情况 |
复习题
1.为什么建议读者校验下载的系统镜像或工具?
答:为了保证软件包的安全与完整性。
2.使用虚拟机安装 Linux 系统时,为什么要先选择稍后安装操作系统,而不是去选择 RHEL 7系统镜像光盘?
答:在配置界面中若直接选择了 RHEL 7系统镜像,则 VMware Workstation 虚拟机会使用内置的安装向导自己主动进行安装,终于安装出来的系统跟我们兴许进行实验所需的系统环境会不一样。
3.RPM(红帽软件包管理器)仅仅有红帽企业系统在使用。对吗?
答: RPM 已经被 CentOS、Fedora、openSUSE 等众多 Linux 系统採用,它真的非常好用!
4.简述 RPM 与 Yum 软件仓库的作用。
答: RPM 是为了简化安装的复杂度,而 Yum 软件仓库是为了解决软件包之间的依赖关系。
5.RHEL 7系统採用了 systemd 作为初始化进程。那么怎样查看某个服务的执行状态?
答:执行命令“systemctl status 服务名.service”可查看服务的执行状态,当中服务名后的.service 能够省略。
第2章 新手必须掌握的 Linux 命令(一)
第2章 新手必须掌握的 Linux 命令(二)
第3章 管道符、重定向与环境变量
第4章 Vim 编辑器与 Shell 命令脚本(一)
第4章 Vim 编辑器与 Shell 命令脚本(二)
第5章 用户身份与文件权限(一)
第5章 用户身份与文件权限(二)
第6章 存储结构与磁盘划分
第7章 使用 RAID 与 LVM 磁盘阵列技术
第8章 iptables 与 firewalld 防火墙
第9章 使用 ssh 服务管理远程主机
第10章 使用 Apache 服务部署静态站点
第11章 使用 vsftpd 服务传输文件
第12章 使用 Samba 或 NFS 实现文件共享
第13章 使用 BIND 提供域名解析服务
第14章 使用 DHCP 动态管理主机地址
第15章 使用 Postifx 与 Dovecot 部署邮件系统
第16章 使用 Squid 部署代理缓存服务
第17章 使用 iSCSI 服务部署网络存储
第18章 使用 MariaDB 数据库管理系统
第19章 使用 PXE+Kickstart 无人值守安装服务
第20章 使用 LNMP 架构部署动态站点环境
阅读全文: http://gitbook.cn/gitchat/geekbook/5b690899fa9fe34011ed8da4