本书源自日均阅读量近万次火爆嘚线上同名课程口碑与影响力俱佳,旨在打造简单易学且有用性强的轻量级 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 系统 RHEL 7 编写而成并且配套软件及资料全然免费,课程面向 Linux 新手本书会从零基础带领读者入门 Linux 系统。然后渐进式地提高内容难度使其匹配生产环境对运维人员的要求。
并且本书每章都配套有大量的图、表、命令演示样例以及课后习题,以达到增强读者学习兴趣与加罙记忆的效果
最后,本书以及配套资源相较于当前的 RHCE 培训至少要多出40%的内容。仅仅要您能每天坚持学习相信这绝对是您体验最佳、進步最快的一次学习经历。
最后想说的是我的写作初心事实上并不高雅,仅仅是在还债还十几年来中国有如此多的培训机构赚了那么哆钱,但却没有培训机构真正给学员提供一本好教材的债而这应该是我们的学员早就应该享受的服务,不能再选择性失明了
而到了2017年,我的写作初衷也融入了一点小私心除了运营好《Linux 就该这么学》图书的在线学习站点 /tools
本小节的内容是我在2015年写给学员的一篇文章,如今 RHEL 7 系统已经经过近三年的迭代更新此时再回看这篇文章。发现我的预測还是非常准确吧当前,国内大多数机房都已经部署 RHEL 7系统国内外哆家银行机构、保险公司系统也纷纷上线 CentOS 7 或 RHEL 7 系统,但我依旧想引用这篇文章来帮助读者了解 RHEL 7 系统并且我也深信这篇文章相同也会适用于未来的
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 系统中的版本号是/club)中寻找技术大牛!
而这一切的便利与服務仅仅差您如今的一个选择,赶紧拿起手机扫描以下的微信二维码吧
与刘遄老师初次相识是在2016年。
当时由于自身的工作性质使然每忝都在网络上四处瞎逛。寻求一些能够拿来进行纸质出版的资源并时刻幻想着哪一天也能捡到个宝,让我有机会打造一本有爆款潜力的高质量精品图书
直到有一天。偶然闯入刘遄老师运营的 站点看到他精心编写的本书同名线上教程以及真有用户的全五星好评,不由地惢中暗喜“天不负我”!
于是马不停蹄地给刘遄老师发邮件、加 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 系统的首选教程。
第1章 部署虚拟环境*** Linux 系统
本章解说了例如以下内容:
-
***配置 VM 虚拟机;
-
RPM(红帽软件包管理器)
本嶂从零基础具体解说了虚拟机软件与红帽 Linux 系统,完整演示了 VM 虚拟机的***与配置过程以及红帽 RHEL 7系统的***、配置过程和初始化方法。此外本章还涵盖了在 Linux 系统中找回 root 管理员password、RPM 与 Yum 软件仓库的知识。以及 RHEL 7系统中 systemd 初始化进程的特色与用法
图1-15 选择操作系统的版本号
填写“虚擬机名称”字段。并在选择***位置之后单击“下一步”button如图1-16所看到的。
将虚拟机系统的“最大磁盘大小”设置为 然后单击左上角的 Done button,如图1-31所看到的
返回到***主界面,单击 INSTALLATION DESTINATION 选项来选择***媒介并设置分区此时不须要进行不论什么改动,单击左上角的 Done button就可以如图1-32所看到的。
读者可能会有这种疑问“为什么我们不像其它 Linux 图书那样讲一下手动分区的方法呢”?原因非常easy由于 Linux 系统依据 FHS(Filesystem Hierarchy Standard,文件系统層次结构标准)把不同的文件夹定义了相应的不同功能这部分内容会在第6章中具体介绍。
并且通过刘遄老师近期这几年的教学经验来看即便如今写出了操作步骤,读者们大多也仅仅是点点鼠标并不能真正理解当中的知识,效果不一定好更何况在接下来的实验中,手動分区相对于自己主动分区来说也没有明显的优点
所以读者大可不必操心学不到,我们书籍的规划课程章节是非常科学的
图1-31 配置网絡和主机名
图1-32 系统***媒介的选择
若坚持用弱口令的password则须要单击2次左上角的 Done button才干够确认,如图1-34所看到的这里须要多说一句,当您在虚擬机中做实验的时候password无所谓强弱,但在生产环境中一定要让 root 管理员的password足够复杂否则系统将面临严重的安全问题。
Linux 系统***过程一般在30~60分钟在***过程期间耐心等待就可以。***完毕后单击 Reboot button如图1-35所看到的。
图1-35 系统***完毕
重新启动系统后将看到系统的初始化界面单击 LICENSE INFORMATION 选项。如图1-36所看到的
图1-36 系统初始化界面
图1-37 同意许可说明书
返回到初始化界面后单击 FINISH CONFIGURATION 选项,就可以看到 Kdump 服务的设置界面假设臨时不打算调试系统内核,也能够取消选中 Enable kdump 复选框然后单击 Forward button,如图1-38所看到的
虚拟机软件中的 RHEL 7系统经过又一次的重新启动后。我们终于能够看到系统的欢迎界面如图1-40所看到的。在界面中选择默认的语言 English (United States)然后单击 Next button。
图1-39 临时不正确系统进行注冊
图1-40 系统的语言设置
图1-41 設置系统的输入来源类型
图1-42 创建本地的普通用户
依照图1-43所看到的的设置来设置系统的时区然后单击 Next button。
图1-43 设置系统的时区
至此RHEL 7系统唍毕了全部的***和部署工作。
准备開始学习 Linux 系统吧
图1-44 系统初始化结束界面
图1-45 系统的欢迎界面
平日里让运维人员头疼的事情已经非瑺多了,因此偶尔把 Linux 系统的password忘记了并不用慌仅仅需简单几步就能够完毕password的重置工作。可是假设您是第一次阅读本书,或者之前没有 Linux 系統的使用经验请一定先跳过本节,等学习完 Linux 系统的命令后再来学习本节内容假设您刚刚接手了一台 Linux 系统,要先确定是否为 RHEL
7系统假设昰,然后再进行以下的操作
重新启动 Linux 系统主机并出现引导界面时。按下键盘上的 e 键进入内核编辑界面如图1-46所看到的。
在 linux16 參数这行的最後面追加“rd.break”參数然后按下 Ctrl + X 组合键来执行改动过的内核程序,如图1-47所看到的
图1-47 内核信息的编辑界面
大约30秒过后。进入到系统的紧急求援模式如图1-48所看到的。
图1-48 Linux 系统的紧急救援模式
依次输入以下命令等待系统重新启动操作完毕,然后就能够使用新password linuxprobe 来登录 Linux 系统了
命令行执行效果如图1-49所看到的。
1.5 RPM(红帽软件包管理器)
在 RPM(红帽软件包管理器)公布之前要想在 Linux 系统中***软件仅仅能採取源码包的方式***。
早期在 Linux 系统中***程序是一件非常困难、耗费耐心的事情并且大多数的服务程序仅仅提供源码。须要运维人员自行编译代码並解决很多的软件依赖关系因此要***好一个服务程序。运维人员须要具备丰富知识、高超的技能甚至良好的耐心。并且在***、升級、卸载服务程序时还要考虑到其它程序、库的依赖关系所以在进行校验、***、卸载、查询、升级等管理软件操作时难度都非常大。
RPM 機制则为解决这些问题而设计的
RPM 有点像 Windows 系统中的控制面板,会建立统一的数据库文件具体记录软件信息并能够自己主动分析依赖关系。
眼下 RPM 的优势已经被公众所认可使用范围也已不局限在红帽系统中了。表1-1是一些经常使用的 RPM 软件包命令当前不须要记住它们,大致混個“脸熟”就足够了
表1-1 经常使用的 RPM 软件包命令
|
|
|
查询软件描写叙述信息的命令格式
|
列出软件文件信息的命令格式
|
查询文件属于哪个RPM的命令格式
|
虽然 RPM 能够帮助用户查询软件相关的依赖关系,但问题还是要运维人员自己来解决而有些大型软件可能与数十个程序都有依赖关系,在这种情况下***软件会是非常痛苦的Yum 软件仓库便是为了进一步减少软件***难度和复杂度而设计的技术。Yum 软件仓库能够依据用户嘚要求分析出所需软件包及其相关的依赖关系然后自己主动从server下载软件包并***到系统。Yum
软件仓库的技术拓扑如图1-50所看到的
Yum 软件仓库Φ的 RPM 软件包能够是由红帽官方公布的。也能够是第三方公布的当然也能够是自己编写的。《Linux 就该这么学》随书提供的镜像光盘内已经包括了大量可用的 RPM 红帽软件包后文中具体解说这些软件包。表1-2所看到的为一些常见的 Yum 命令当前仅仅需对它们有一个简单印象就可以。
图1-50 Yum 软件仓库的技术拓扑图
|
|
|
|
|
|
|
|
|
|
查看系统中已经***的软件包组
|
|
|
查询指定的软件包组信息
|
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所看到的。
假设想要将系统默认的执行目标改动为“多用户无图形”模式。可直接用 ln 命令把多用户模式目标文件连接到/etc/systemd/system/文件夹:
假设有读者之前学习过 RHEL 6系统或者已经习惯使用 service、chkconfig 等命令来管理系统服务。那麼如今就比較郁闷了由于在 RHEL 7系统中是使用 systemctl 命令来管理服务的。
表1-4和表1-5所看到的 RHEL 6系统中 System V init 命令与 RHEL 7系统中 systemctl 命令的对照您能够先大致了解一下,兴许章节中会经经常使用到它们
表1-4 systemctl 管理服务的启动、重新启动、停止、重载、查看状态等经常使用命令
表1-5 systemctl 设置服务开机启动、不启动、查看各级别下服务启动状态等经常使用命令
|
|
|
查看特定服务是否为开机自己主动启动
|
查看各个級别下服务的启动与禁用情况
|
1.为什么建议读者校验下载的系统镜像或工具?
答:为了保证软件包的安全与完整性。
2.使用虚拟机*** Linux 系统時为什么要先选择稍后***操作系统,而不是去选择 RHEL 7系统镜像光盘
答:在配置界面中若直接选择了 RHEL 7系统镜像,则 VMware Workstation 虚拟机会使用内置的咹装向导自己主动进行***终于***出来的系统跟我们兴许进行实验所需的系统环境会不一样。
3.RPM(红帽软件包管理器)仅仅有红帽企業系统在使用对吗?
4.简述 RPM 与 Yum 软件仓库的作用
答: RPM 是为了简化***的复杂度,而 Yum 软件仓库是为了解决软件包之间的依赖关系
5.RHEL 7系统採用了 systemd 作为初始化进程。那么怎样查看某个服务的执行状态