目录
第1章Linux系统简介与环境搭建1
1.1Linux系统简介1
1.1.1Linux系统的起源与发展1
1.1.2GNU与GPL2
1.1.3Linux系统版本2
1.1.4Linux系统的应用领域4
1.2安装Linux系统4
1.2.1安装虚拟机软件4
1.2.2下载CentOS5
1.2.3安装CentOS6
1.3Linux系统启动流程21
1.4网络配置23
1.4.1网络模式23目录<br />第1章Linux系统简介与环境搭建1<br />1.1Linux系统简介1<br />1.1.1Linux系统的起源与发展1<br />1.1.2GNU与GPL2<br />1.1.3Linux系统版本2<br />1.1.4Linux系统的应用领域4<br />1.2安装Linux系统4<br />1.2.1安装虚拟机软件4<br />1.2.2下载CentOS5<br />1.2.3安装CentOS6<br />1.3Linux系统启动流程21<br />1.4网络配置23<br />1.4.1网络模式23<br />1.4.2模式更改25<br />1.4.3网络配置27<br />1.4.4访问测试29<br />1.5目录结构31<br />1.6远程终端访问32<br />1.7SFTP远程文件管理35<br />1.8本章小结36<br />1.9本章习题36<br />第2章Linux命令与工具39<br />2.1Linux命令格式39<br />2.2用户与用户组管理40<br />2.2.1用户管理40<br />2.2.2用户组管理43<br />2.2.3用户切换46<br />2.3文件管理49<br />2.3.1文件操作49目录Linux系统管理与自动化运维2.3.2查看文件53<br />2.3.3文件搜索54<br />2.3.4权限管理56<br />2.3.5压缩解压59<br />2.4存储管理62<br />2.4.1磁盘分区62<br />2.4.2格式化67<br />2.4.3挂载68<br />2.4.4LVM逻辑卷管理70<br />2.4.5RAID磁盘阵列73<br />2.4.6创建RAID75<br />2.5进程管理77<br />2.5.1进程状态77<br />2.5.2进程管理命令78<br />2.6服务管理84<br />2.7软件包管理87<br />2.7.1RPM软件包管理87<br />2.7.2YUM软件包管理90<br />2.7.3YUM源管理93<br />2.8文本编辑器94<br />2.9本章小结98<br />2.10本章习题98<br />第3章Shell100<br />3.1Shell概述100<br />3.1.1Shell的概念100<br />3.1.2Shell的分类101<br />3.1.3Shell的使用技巧103<br />3.2Shell中的变量106<br />3.2.1���地变量106<br />3.2.2环境变量107<br />3.2.3位置变量110<br />3.2.4特殊变量111<br />3.3Shell中的符号112<br />3.3.1引号112<br />3.3.2通配符114<br />3.3.3连接符115<br />3.4正则表达式116<br />3.4.1正则表达式的概念116<br />3.4.2元字符116<br />3.5文本处理工具119<br />3.5.1grep119<br />3.5.2sed122<br />3.5.3awk126<br />3.6Shell脚本131<br />3.6.1判断结构131<br />3.6.2循环结构135<br />3.6.3break与continue139<br />3.6.4Shell脚本的基本元素与执行方式140<br />3.7脚本运维实例141<br />3.7.1模拟用户登录141<br />3.7.2监控系统运行情况142<br />3.7.3备份MySQL数据库144<br />3.8本章小结148<br />3.9本章习题149<br />第4章内核编译与管理151<br />4.1Linux内核151<br />4.1.1内核概述151<br />4.1.2内核的开发与更新152<br />4.1.3内核版本152<br />4.2内核的编译安装153<br />4.2.1获取内核源码153<br />4.2.2编译与安装156<br />4.3内核模块管理159<br />4.3.1内核模块概述159<br />4.3.2查看内核模块162<br />4.3.3加载与卸载164<br />4.3.4修改内核参数166<br />4.4本章小结167<br />4.5本章习题167<br />第5章网络服务170<br />5.1计算机网络基础170<br />5.1.1协议与体系结构171<br />5.1.2数据传输流程172<br />5.1.3IP地址与端口号173<br />5.1.4子网掩码175<br />5.1.5协议与服务176<br />5.2DHCP服务176<br />5.2.1DHCP常用术语176<br />5.2.2DHCP的工作流程177<br />5.2.3安装配置DHCP178<br />5.3DNS服务182<br />5.3.1DNS简介182<br />5.3.2安装DNS187<br />5.3.3BIND配置文件详解189<br />5.3.4部署主从DNS服务器192<br />5.4电子邮件服务196<br />5.4.1电子邮件服务概述196<br />5.4.2电子邮件协议197<br />5.4.3基于Postfix的邮件发送199<br />5.4.4基于Dovecot的邮件收取201<br />5.5FTP服务205<br />5.5.1FTP概述206<br />5.5.2VSFTP简介206<br />5.5.3配置匿名FTP服务器210<br />5.5.4禁止指定用户登录214<br />5.6本章小结216<br />5.7本章习题216<br />第6章集中化运维工具——Ansible和SaltStack218<br />6.1运维概述218<br />6.1.1运维的概念218<br />6.1.2传统的运维面临的问题219<br />6.2Ansible220<br />6.2.1Ansible简介220<br />6.2.2YAML简介221<br />6.2.3Ansible的安装223<br />6.2.4配置SSH无密码登录223<br />6.2.5主机目录225<br />6.2.6Ansible的常用模块226<br />6.2.7playbook234<br />6.2.8playbook的基本语法235<br />6.2.9role238<br />6.3SaltStack241<br />6.3.1SaltStack简介241<br />6.3.2SaltStack的安装配置242<br />6.3.3远程命令245<br />6.3.4模块方法247<br />6.3.5grains组件252<br />6.3.6pillar256<br />6.3.7state257<br />6.3.8部署LAMP环境264<br />6.4本章小结267<br />6.5本章习题268<br />第7章监控系统270<br />7.1监控系统简介270<br />7.2监控软件简介272<br />7.3Zabbix的安装与配置275<br />7.3.1Web环境搭建275<br />7.3.2Server端安装配置281<br />7.3.3Agent端安装配置288<br />7.3.4连通性测试289<br />7.4如何使用Zabbix290<br />7.4.1创建Zabbix用户290<br />7.4.2添加Host291<br />7.4.3配置Item295<br />7.4.4创建Trigger300<br />7.4.5设置Action303<br />7.5数据可视化310<br />7.5.1图表的使用310<br />7.5.2分屏的实现313<br />7.6Zabbix中的模板318<br />7.6.1新建Template318<br />7.6.2关联模板320<br />7.7Zabbix中的宏321<br />7.8本章小结323<br />7.9本章习题324<br />第8章网络**与防火墙325<br />8.1网络**325<br />8.1.1网络**简介325<br />8.1.2威胁网络**的因素326<br />8.2网络攻击与防御327<br />8.2.1常见的网络攻击类型327<br />8.2.2常用的防御措施331<br />8.3防火墙332<br />8.3.1防火墙概述332<br />8.3.2防火墙的分类334<br />8.3.3防火墙技术334<br />8.4IDS337<br />8.4.1IDS概述337<br />8.4.2IDS分类338<br />8.5IPS339<br />8.6iptables340<br />8.6.1iptables简介340<br />8.6.2iptables状态检测342<br />8.6.3iptables的规则编写343<br />8.7firewalld345<br />8.7.1firewalld简介346<br />8.7.2命令行管理方式347<br />8.7.3图形界面管理方式349<br />8.8本章小结351<br />8.9本章习题351<br />第9章KVM虚拟化技术354<br />9.1虚拟化简介354<br />9.1.1虚拟化概述354<br />9.1.2软件虚拟化和硬件虚拟化355<br />9.1.3半虚拟化与全虚拟化356<br />9.1.4主流虚拟化产品357<br />9.2KVM虚拟化原理与架构360<br />9.2.1系统虚拟化原理360<br />9.2.2KVM虚拟化原理与架构361<br />9.3搭建KVM虚拟化环境362<br />9.3.1硬件环境要求362<br />9.3.2KVM的安装配置363<br />9.4KVM核心配置368<br />9.4.1CPU配置中的基本概念368<br />9.4.2CPU配置370<br />9.4.3内存虚拟化374<br />9.4.4内存配置374<br />9.5Libvirt375<br />9.5.1Libvirt概述376<br />9.5.2Libvirt域的XML配置文件377<br />9.5.3virsh379<br />9.5.4virtmanager382<br />9.6本章小结385<br />9.7本章习题385<br /><br />显示全部信息前 言序
江苏传智播客教育科技股份有限公司(简称传智播客)是一家致力于培养高素质软件开发人才的科技公司,“黑马程序员”是传智播客旗下高端IT教育品牌。
“黑马程序员”的学员多为大学毕业后,想从事IT行业,但各方面条件还不成熟的年轻人。“黑马程序员”的学员筛选制度非常严格,包括了严格的技术测试、自学能力测试,还包括性格测试、压力测试、品德测试等。百里挑一的残酷筛选制度确保学员质量,并降低企业的用人风险。
自“黑马程序员”成立以来,教学研发团队一直致力于打造精品课程资源,不断在产、学、研三个层面创新自己的执教理念与教学方针,并集中“黑马程序员”的优势力量,有针对性地出版了计算机系列教材60多册,制作教学视频数十套,发表各类技术文章数百篇。
“黑马程序员”不仅斥资研发IT系列教材,还为高校师生提供以下配套学习资源与服务。
为大学生提供的配套服务
1. 请登录在线平台: http://yx.boxuegu.com,免费获取海量学习资源,还有专业老师在线为您答疑解惑。序<br />江苏传智播客教育科技股份有限公司(简称传智播客)是一家致力于培养高素质软件开发人才的科技公司,“黑马程序员”是传智播客旗下高端IT教育品牌。<br />“黑马程序员”的学员多为大学毕业后,想从事IT行业,但各方面条件还不成熟的年轻人。“黑马程序员”的学员筛选制度非常严格,包括了严格的技术测试、自学能力测试,还包括性格测试、压力测试、品德测试等。百里挑一的残酷筛选制度确保学员质量,并降低企业的用人风险。<br />自“黑马程序员”成立以来,教学研发团队一直致力于打造精品课程资源,不断在产、学、研三个层面创新自己的执教理念与教学方针,并集中“黑马程序员”的优势力量,有针对性地出版了计算机系列教材60多册,制作教学视频数十套,发表各类技术文章数百篇。<br />“黑马程序员”不仅斥资研发IT系列教材,还为高校师生提供以下配套学习资源与服务。<br />为大学生提供的配套服务<br />1. 请登录在线平台: http://yx.boxuegu.com,免费获取海量学习资源,还有专业老师在线为您答疑解惑。<br />2. 针对高校学生在学习过程中存在的压力等问题,我们还面向大学生量身打造了IT技术女神——“播妞”,可提供教材配套源码和习题答案以及更多IT其它干货资源,同学们快来添加吧!“播妞”微信: 208695827、“播妞”QQ: 3231342131。<br />“播妞”微信<br />“播妞”QQ<br /><br /><br /><br />为教师提供的配套服务<br />针对高校教学,“黑马程序员”为IT系列教材精心设计了“教案 授课资源 考试系统 题库 教学辅助案例”的系列教学资源,高校老师请登录在线平台: http://yx.boxuegu.com或关注码大牛老师微信/QQ: 2011168841,获取配套资源,也可以扫描下方二维码,加入专为IT教师打造的师资服务平台——“教学好助手”,获取*新教师教学辅助资源的相关动态。<br />前言Linux系统管理与自动化运维<br /><br />前言<br /><br />前些年,由于运维行业技术要求相对较低,为了节省开支,部分企业选择由开发人员兼顾运维岗位,运维行业逐渐没落。随着云服务的发展,运维对工作人员的专业程度要求越来越高,运维不再是普通开发人员可以兼任的岗位,IT行业对专业运维人员的需求逐渐增加,运维再次成为IT行业中可与开发比肩的、必不可少的分支,掌握专业运维知识的人员也成为IT职场中备受青睐的稀缺人才。<br />然而,黑马程序员在近些年的观察和研究中发现: 面临就业的高校学子虽然已经学习了编程语言与操作系统等的相关课程,但缺乏动手能力,难以将理论联系实践,这皆因他们所用教材的体系结构不够系统,或者知识不够全面,或者讲解的知识较深奥,以至于学生难以掌握切实可用的技能。<br />针对这种现象,黑马程序员决定推出一本更符合学生实际需求的教材。为保障学生在学习的过程中能学有所得,在学习之后能学以致用,黑马程序员经过大量调研,推出了Linux运维课程中的初级教材——《Linux系统管理与自动化运维》。<br />为什么要学习本书<br />Linux操作系统自诞生至今,逐步发展并日渐完善,因其开源、**、稳定等特性,成为众多企业与政府部门搭建服务器的**平台,此外,Linux在移动应用与嵌入式开发领域也被广泛应用,因此,Linux系统的使用与Linux环境的维护成为众多计算机从业人员需要掌握的**技能。<br />本书是由黑马程序员编写的Linux系统管理与运维的入门书籍,主要涵盖Linux常用命令、Shell编程基础、内核、网络服务原理与服务器配置、常用运维工具、网络**以及虚拟化技术等知识。在环境选择上,本书选用符合企业需求的常用工具搭建运维环境;在内容安排上,本书从Linux系统基础入手,先**读者熟悉Linux系统,掌握Linux系统的使用方法,再对网络服务、运维工具、网络**等进阶内容进行介绍;在讲解方式上,本书将理论与实践相结合,为大多知识点配备相应案例,保证读者在掌握理论知识的同时强化动手能力。<br />如何使用本书<br />本书以与企业中所用环境Red Hat Enterprise Linux较为接近的Linux版本——CentOS 7.3为开发环境,并选用各企业常用且适用的批量运维工具Ansible、SaltStack,系统监控工具Zabbix实现Linux系统的日常维护。本书中涉及的命令、语法与工具都配备了具体的案例,旨在让读者了解并掌握Linux系统的管理与维护。<br />若本书用于课堂教学,建议教师在讲解理论知识后,先引导学生自主动手实现教材中提供的案例,培养学生思考问题、分析问题、解决问题的能力,以帮助学生更深刻地理解、掌握相应知识。<br />若读者为自主学习者,则建议读者勤思考、勤练习、勤总结,尽量完成并熟练掌握教材中配备的案例,并通过章节配套测试题进行自我检测,查漏补缺。<br />前言Linux系统管理与自动化运维本书分为9章,每章的大体内容如下。<br /> 第1章首先介绍了Linux系统的背景,包括Linux的起源、发展、GNU与GPL、Linux系统版本、应用领域;其次介绍了Linux环境搭建过程、Linux系统启动流程;再次介绍了VMware虚拟网络配置、目录结构;*后介绍了Linux的远程终端访问和远程文件管理。通过本章的学习,读者可对Linux系统的背景有所了解,并能顺利搭建Linux环境、配置网络,掌握Linux的远程终端访问方式及远程文件的管理。<br /> 第2章讲解了Linux系统中的基本命令与开发工具,其中命令分为与用户、文件、存储、进程、服务、软件包相关的命令,开发工具主要是Vi编辑器。掌握本章所讲知识,可提高Linux系统使用的效率。<br /> 第3章讲解了与Shell相关的知识,包括Shell概述、Shell中的变量及符号、正则表达式、文本处理工具以及Shell脚本基础语法等。<br /> 第4章讲解了Linux内核编译与管理等知识,主要包括Linux内核简介、内核的编译安装、内核模块的管理等。<br /> 第5章先对计算机网络基础知识进行了介绍,然后讲解了Linux系统中常见网络服务的原理与安装配置,包括DHCP服务、DNS服务、电子邮件服务以及FTP服务。<br /> 第6章陈述了运维的意义,并对企业中常用的集中化运维工具——Ansible和SaltStack的安装与使用方法进行了介绍。<br /> 第7章讲解了监控系统的架构、常见监控软件,并介绍了如何在Linux系统中通过监控软件Zabbix监控设备环境。<br /> 第8章讲解了与网络**相关的知识,包括网络**的定义、常见的网络攻击与防御方式、防火墙、IDS、IPS等,*后对CentOS系统中使用的防火墙工具——iptables、firewalld的使用方式进行了介绍。<br /> 第9章主要讲解了与KVM虚拟化技术相关的知识,包括虚拟化简介、KVM虚拟化原理与架构、如何搭建KVM虚拟化环境、KVM核心配置以及KVM管理工具——Libvirt。<br />读者若不能完全理解教材中所讲知识,可登录博学谷平台,配合平台中的教学视频进行学习。此外,读者在学习的过程中,务必要勤于练习,确保真正掌握所学知识。若在学习的过程中遇到无法解决的困难,建议读者不要纠结于此,继续往后学习,或可豁然开朗。<br />致谢<br />本书的编写和整理工作由传智播客教育科技股份有限公司完成,主要参与人员有吕春林、高美云、薛蒙蒙、郑瑶瑶等,全体人员在近一年的编写过程中付出了辛勤的努力,在此一并表示衷心的感谢。<br />意见反馈<br />尽管我们尽了*大的努力,但书中难免会有不妥之处,欢迎各界专家和读者朋友们提出宝贵意见,我们将不胜感激。您在阅读本书时,如发现任何问题或有不认同之处可以通过电子邮件与我们取得联系。<br />请发送电子邮件至: itcast_book@vip.sina.com。<br /><br />黑马程序员<br />2018年3月于北京显示全部信息免费在线读第5章网络服务学习目标
了解计算机网络基础知识
掌握DHCP服务原理
掌握DNS服务原理
理解电子邮件服务原理
熟悉电子邮件服务器的搭建方法
掌握FTP服务原理当今社会是信息化社会,信息的传播离不开网络,随着计算机与因特网的发展和普及,网络已渗入到社会生活的各行各业,大到操作系统,小到手机应用,都与网络息息相关,因此,Linux系统中网络服务的搭建与配置是运维人员必须掌握的**技能。本章主要对Linux系统中常用的几种网络服务的原理与配置方法进行讲解,由于网络服务的介绍会涉及与网络相关的知识,在讲解网络服务之前先对计算机网络的基础知识进行讲解。
5.1计算机网络基础
计算机网络(network)是继电信网络、有线电视网络之后出现的***大型网络。在计算机领域中,网络由若干个节点和连接这些节点的链路组成,网络中的节点可以是计算机、交换机、路由等。如图51(a)所示,是一个*简单的计算机网络模型。
图51网络与互联网
此外,计算机网络之间可以相互连接,组成更大的网络,如图51(b)所示,这种网络被称为互联网(internet)。互联网中*为知名的是起源于美国的因特网(Internet),因特网是当今世界上*大的国际性网络。
根据网络的覆盖范围,网络可分为广域网(Wide Area Network,WAN)和局域网(Local Area Network,LAN)。局域网覆盖的范围较小,通常为一个城市或一个小型区域(如公司或学校);广域网覆盖的范围从几十公里到几千公里,可连接多个城市和**,形成国际性的远程网络。
5.1.1协议与体系结构