美河学习在线 www.eimhe.com 收集分享
Linux 基础篇
Linux 基础篇总共包含 8 个章节,第 1 章到第 8 章学习内容分别包括:Linux 快速入
门、Linux 发展及系统安装、CentOS Linux 系统管理、Linux 必备命令、Linux 用户和组、
Linux 软件包管理、磁盘管理、Linux 文件共享管理等。
读者通过对基础篇 8 个章节的深入学习,可以更加了解 Linux 发展历程,了解 Linux
发行版之间的特性以及 Linux 内核命名规范,基于虚拟机环境手动安装 CentOS 操作系统,
能够快速上手,快速的入门 Linux。
同时能够熟练掌握 Linux 操作系统完整的流程,掌握 Linux 操作系统用户和组管理
的机制,对 Linux 系统文件及目录进行权限定制和分配,从而提升 Linux 操作系统使用
安全,更加保证系统的稳定性。
对 Linux 必备命令的掌握程度,直接决定后期对 Linux 系统能否进行娴熟的操作,
同时掌握 Linux 高效学习大绝招,养成学习 Linux 的习惯和方法,对后期的 Linux 学习
能起到事半功倍的效果。
俗话说“基础不牢,地动山摇”,熟练掌握 Linux 基础必备篇的相关内容,能够独立
维护和管理企业 Linux 操作系统,为后期维护企业生产环境服务器打下坚实的基础。
Linux 进阶篇
Linux 进阶篇总共包含 6 个章节,第 9 章到第 14 章学习内容分别包括:HTTP 协议详
解、Apache WEB 服务器企业实战、MySQL 数据库服务器企业实战、LAMP 企业架构实战、
Zabbix 分布式监控系统实战、Nginx 高性能 WEB 服务器实战等。
读者通过对进阶篇 6 个章节的深入学习,可以基于基础篇学习的 Linux 操作系统管
理,快速上手独立维护和管理企业各种服务,例如主流的 Apache、Nginx WEB 服务器,
深入学习 HTTP 协议,掌握 HTTP 底层通信原理等。
美河学习在线 www.eimhe.com 收集分享
同时能熟练构建企业级数据库管理集群,MySQL 主从复制,一主多从、读写分离实战
保证网站数据的完整,对数据库配置文件进行调优、增加索引提供数据查询效率,如果
数据库异常或者缓慢,可以基于 MySQL 慢查询日志定位慢 SQL。
进阶篇引入 Redis 高性能缓存服务器,互联网各大公司都在使用 Redis,熟练掌握
Redis 对升职加薪及网站性能有巨大的帮助,Redis 缓存还可以提高用户访问 WEB 网站的
效率,增强用户体验。同时随着企业服务器不断增加,基于 Zabbix 分布式监控系统能够
实时监控服务器 CPU、内存、硬盘、网卡及服务器上各种应用的监控,做到有故障第一时
间给相关人员发送微信报警,第一时间处理问题。
互联网主流 WEB 服务器软件 Nginx,得到各大企业的 SA 的青睐,应用也非常的广泛,
对 Nginx 深入掌握,对运维能力的提升是非常大的,通过进阶篇的对 Nginx 的深入学习,
能够熟练掌握 Nginx 工作原理、安装配置、管理升级、负载均衡及动静分离、虚拟主机、
参数调优、Nginx Location、Nginx Rewrite、日志切割、防盗链、HTTPS 等核心技术,
能更好的维护生产环境 Nginx 高性能 WEB 服务器。
Linux 高级篇
Linux 进阶篇总共包含 9 个章节,第 15 章到第 23 章学习内容分别包括:Linux 性能
优化、大数据量备份、Shell 企业实战基础、Shell 实战高级编程、自动化运维趋势、Puppet
自动化运维实战、Ansible 自动化运维实战、Jenkins 企业级自动化实战、企业级高并发
网站集群等。
读者通过对进阶篇 9 个章节的深入学习,可以能够独立维护和管理企业上百台、千
台服务器,能够在企业中独当一面,打造企业级千万 PV 门户网站架构。
同时能够掌握对 MYSQL 2T+大数量的备份,Linux 服务器内核进行优化、对内核故障
排错,服务器异常能够快速解决,编写企业生产环境各种 Shell 脚本工具,实现网站自
动化维护和部署、Shell 高级实战编程章讲述了 11 个高级实战脚本案例满足企业各种场
景使用,基于 Shell 编程独立开发各种脚本,例如:构建网站服务器数据备份、LAMP、
美河学习在线 www.eimhe.com 收集分享
LNMP 一键安装部署、服务器硬件信息收集存入 DB、MYSQL 主从实战、自动修改千台服务
器 IP、Zabbix 自动部署客户端、Nginx、Tomcat 自动部署、Docker 虚拟化管理平台、Bind
高级管理等脚本等。
对 Linux 高级篇的学习能够完全胜任万台服务器的维护和管理,基于 Puppet 各种案
例实现主动部署管理、客户端自动获取配置、批量管理服务器等,通过轻量级 Ansible
自动化部署工具,实现至少 1000 台服务器的运维和管理,通过各种资源模块对服务器进
行管理,同时可以编写 Playbook 剧本实现对服务器流程化管理,减轻人工干预,实现对
服务器和 web 网站高效维护。
高级篇引入 Jenkins 自动化部署平台,讲述传统网站部署、主流网站部署的方法,
基于 Jenkins 构建企业级自动化平台,支持 SVN、GIT 仓库,结合 Ansible 自动化运维工
具打造企业级自动化部署平台,让运维工作更加的轻松。
本篇最后一个章节以 9 个企业级高级实战集群部署,例如 Nginx+keepalived、
Redis+keepalived、LVS+Keepalived、Haproxy+keepalived 满足企业各个应用环境的部
署,真正学以致用,满足企业高速的发展!
第1章 Linux 快速入门
Linux 是一套免费使用和自由传播的类 UNIX 操作系统,是一个基于 POSIX 移植操作
系统接口(Portable Operating System Interface of UNIX,POSIX)和 UNIX 的多用户、
多任务、支持多线程和多 CPU 的操作系统。
目前被广泛使用于企业服务器、WEB 网站平台、大数据、虚拟化、Android、超级计
算机等领域,未来 Linux 将应用各行各业,例如云计算、物联网、人工智能等。
本章向读者介绍 Linux 发展简介、Linux 发行版特点、32 位及 64 位 CPU 特性及 Linux
内核命名规则。
美河学习在线 www.eimhe.com 收集分享
1.1 为什么要学习 Linux
我们为什么要学习 Linux?我们目前的处境是什么?我们想达到什么样的目标?在
谈到这三个问题时,相信每个人都有自己的答案,我们来自不同的家庭,各种经历也都
不一样,但最终的目标都是希望通过学习技术,提升自己的专业技术。真正做一个对社
会有贡献的人。
想想我们刚步入学堂的那一刻起,心里就狠狠下决心,以后不管做什么,都要有一
番出息,可是 20 年、30 年过去了,我们收获了什么,得到了什么,到底是在追求什么?
方向又在哪里呢?
在生活中各种挫折、感情、生活以及很多零碎的事情,让我们很难静下心来学习,
当我们某天突然惊醒,年少已不在。所以今天就下定决心,现在就要学习,去行动,去
改变。
人生最可怕的是在自以为舒适的地方待得太久,等到外界改变来的时候,已经晚了,
我们不能像温水煮青蛙一样,待在温水里,没有觉察到周围事物的变化,最终被社会所
淘汰,如图 1-1 所示。
图 1-1 温水煮青蛙
美河学习在线 www.eimhe.com 收集分享
1.2 Linux 操作系统简介
Linux 操作系统是基于 UNIX 以网络为核心的设计思想,是一个性能稳定的多用户网
络操作系统,Linux 能运行各种工具软件、应用程序及网络协议,它支持安装在 32 位和
64 位 CPU 硬件上。
通常的讲,Linux 这个词本身只表示 Linux 内核,但是人们已经习惯用 Linux 来形容
整个基于 Linux 内核的操作系统,并且是一种使用 GNU 通用公共许可证(GNU General
Public License,GPL)工程各种工具和数据库的操作系统。
GNU 是“GNU is Not Unix”,UNIX 是一种广泛使用的商业操作系统,由于 GNU 将要
实现以 UNIX 系统的接口标准,因此 GNU 计划可以分别开发不同的操作系统部件,并且采
用了部分当时已经可自由使用的软件。
为了保证 GNU 软件可以自由地“使用、复制、修改和发布”,所有的 GNU 软件都在
一份禁止其他人添加任何限制的情况下授权所有权利给任何人的协议条款里,我们把这
个条款称之为 GNU 通用公共许可证(GNU General Public License,GPL)。
1991 年的 10 月 5 日,Linux 创始人 Linus Torvalds 在 comp.os.minix 新闻组上发
布消息,正式向外宣布 Linux 内核的诞生,1994 年 3 月 Linux 1.0 发布,代码量 17 万行,
当时是完全按照自由免费的协议发布,随后正式采用 GPL 协议,目前 GPL 协议版本包括:
GPLv1、GPLv2、GPLv3 以及未来的 GPLv4、GPLv5 等。
1.3 Linux 操作系统优点
随着 IT 产业的不断发展,Linux 操作系统应用领域越来越广泛,尤其是近年来 Linux
在服务器领域飞速的发展,主要得益于 Linux 操作系统具备的如下优点:
❑ 开源免费;
❑ 系统迭代更新;
❑ 系统性能稳定;
❑ 安全性高;
美河学习在线 www.eimhe.com 收集分享
❑ 多任务,多用户;
❑ 耗资源少;
❑ 内核小;
❑ 应用领域广泛;
❑ 使用及入门容易。
1.4 Linux 操作系统发行版
学习 Linux 操作系统,需要选择不同的发行版本,Linux 操作系统是一个大类别,Linux
操作系统主流发行版本包括:Red Hat Linux、CentOS、Ubuntu、SUSE Linux、Fedora Linux
等,具体发行版本区别如下:
1. Red Hat Linux
Red Hat Linux 是最早的 Linux 发行版本之一,同时也是最著名的 Linux 版本,Red Hat
Linux 已经创造了自己的品牌,也是读者经常听到的“红帽操作系统”。Red Hat 1994
年创立,目前公司全世界有 3000 多人,一直致力于开放的源代码体系,向用户提供一套
完整的服务,这使得它特别适合在公共网络中使用。这个版本的 Linux 也使用最新的内
核,还拥有大多数人都需要使用的主体软件包。
Red Hat Linux 发行版操作系统的安装过程非常简单,图形安装过程提供简易设置服
务器的全部信息,磁盘分区过程可以自动完成,还可以通过图形界面(Graphical User
Interface,GUI)完成安装,即使对于 Linux 新手来说这些都非常简单。后期如果想批
量安装 Red Hat Linux 系统,可以通过批量的工具来实现快速安装。
2. CentOS
社区企业版操作系统(Community Enterprise Operating System,CentOS)是 Linux
发行版之一,它是来自于 Red Hat Enterprise Linux 依照开放源代码所编译而成。由于
出自同样的源代码,因此有些要求高度稳定性的服务器以 CentOS 替代商业版的 Red Hat
Enterprise Linux 使用。
CentOS 于 Red Hat Linux 不同之处在于 CentOS 并不包含封闭的源代码软件,可以开
美河学习在线 www.eimhe.com 收集分享
源免费使用,得到运维人员、企业、程序员的青睐,CentOS 发行版操作系统是目前企业
使用最多的系统之一,2016 年 12 月 12 日,CentOS 基于 Red Hat Enterprise Linux 的
CentOS Linux 7 (1611) 系统正式对外发布。
3. Ubuntu
Ubuntu 是一个以桌面应用为主的 Linux 操作系统,其名称来自非洲南部祖鲁语或豪
萨语的“ubuntu”一词(译为吾帮托或乌班图),意思是“人性”、“我的存在是因为大
家的存在”,是非洲传统的一种价值观。
Ubuntu 基于 Debian 发行版和 GNOME 桌面环境, Ubuntu 发行版操作系统的目标在于
为一般用户提供一个最新的、同时稳定的以开放自由软件构建而成的操作系统,目前
Ubuntu 具有庞大的社区力量,用户可以方便地从社区获得帮助。
4. SUSE Linux
SUSE(发音 /ˈsuːsə/),SUSE Linux 出自德国,SuSE Linux AG 公司发行维护的
Linux 发行版,是属于此公司的注册商标 2003 年 11 月 4 日,Novell 表示将会对 SUSE 提
出收购。收购的工作于 2004 年 1 月完成。
Novell 也向大家保证 SUSE 的开发工作仍会继续下去,Novell 更把公司内全线电脑
的系统换成 SUSE LINUX,并同时表示将会把 SUSE 特有而优秀的系统管理程序 - YaST2
以 GPL 授权释出。
5. Fedora Linux
Fedora 是一个知名的 Linux 发行版,是一款由全球社区爱好者构建的面向日常应用
的快速、稳定、强大的操作系统。它允许任何人自由地使用、修改和重发布,无论现在
还是将来。它由一个强大的社群开发,这个社群的成员以自己的不懈努力,提供并维护
自由、开放源码的软件和开放的标准。
Fedora 约每六个月会发布新版本,美国当地时间 2015 年 11 月 3 日,北京时间 2015
年 11 月 4 日,Fedora Project 宣布 Fedora 23 正式对外发布,2017 年 6 月发布 Fedora
26 版本。
美河学习在线 www.eimhe.com 收集分享
1.5 32 位与 64 位操作系统的区别
学习 Linux 操作系统之前,需要理解计算机基本的常识,计算机内部对数据的传输
和储存都是使用二进制,二进制是计算技术中广泛采用的一种数制,而 Bit(比特)则表
示二进制位,二进制数是用 0 和 1 两个数码来表示的数。基数为 2,进位规则是“逢二进
一”,0 或者 1 分别表示一个 Bit 二进制位。
Bit 位是计算机最小单位,而字节是计算机中数据处理的基本单位,转换单位为:
1Byte=8Bit,4Byte=32Bit。
随着计算机技术的发展,尤其是中央处理器(Central Processing Unit,CPU)技
术的变革,CPU 的位数指的是通用寄存器(General-Purpose Registers, GPRs)的数据
宽度,也就是处理器一次可以处理的数据量多少。
目前主流 CPU 处理器分为 32 位 CPU 处理器和 64 位 CPU 处理器,32 位 CPU 处理器可
以一次性处理 4 个字节的数据量。而 64 位处理器一次性处理 8 个字节的数据量
(1Byte=8bit),64 位 CPU 处理器对计算机处理器在 RAM 里(随机存取储存器)处理信息
的效率比 32 位 CPU 做了很多优化,效率更高。
X86_32 位操作系统和 X86_64 操作系统也是基于 CPU 位数的支持,具体区别如下:
❑ 32 位操作系统表示 32 位 CPU 对内存寻址的能力;
❑ 64 位操作系统表示 64 位 CPU 对内存寻址的能力;
❑ 32 位的操作系统安装在 32 位 CPU 处理器和 64 位 CPU 处理器上;
❑ 64 位操作系统只能安装 64 位 CPU 处理器上;
❑ 32 位操作系统对内存寻址不能超过 4GB;
❑ 64 位操作系统对内存寻址可以超过 4GB,企业服务器更多安装 64 位操作系统,
支持更多内存资源的利用;
❑ 64 位操作系统是为高性能处理需求设计,数据处理、图片处理、实时计算等领
域需求;
❑ 32 位操作系统是为普通用户设计,普通办公、上网冲浪等需求。