第1章 必须掌握的Linux基础 1
1.1 认识 Linux 1
1.1.1 Windows与 Linux的区别 1
1.1.2 UNIX与 Linux的区别 2
1.2 GNU公共许可证 2
1.3 Linux的核版本 3
1.4 Linux的发行版本 3
1.5 Red Hat Enterprise Linux 7的新特性 3
1.5.1 systemd服务管理软件 4
1.5.2 网络 4
1.5.3 文件系统和存储 5
1.5.4 虚拟化 6
1.6 学习Linux的建议 6
1.7 小结 7
1.8 习题 7
第2章 Red Hat Enterp rise Linux的安装 8
2.1 安装前的准备 8
2.1.1 硬件准备 8
2.1.2 选择安装方式 9
2.2 在虚拟机上安装Linux 10
2.2.1 虚拟机简介 10
2.2.2 安装VMware虚拟机 11
2.2.3 创建虚拟机 13
2.2.4 安装Red Hat Enterprise Linux 15
2.3 Linux 的第一次启动 25
2.3.1 本地登录 25
2.3.2 远程登录 26
2.4 小结 28
2.5 习题 29
第3章 Red Hat Enterprise Linux的图形界面 30
3.1 Linux的桌面系统简介 30
3.1.1 X Window系统 30
3.1.2 KDE桌面环境 31
3.1.3 GNOME桌面环境 32
3.2 桌面系统的操作 32
3.2.1 菜单管理 33
3.2.2 设置输入法 33
3.2.3 设置日期和时间 34
3.2.4 配置网卡和有线 35
3.2.5 使用U盘、光盘和移动硬盘 36
3.2.6 注销和关机 37
3.3 小结 37
3.4 习题 38
第4章 Red Hat Enterprise Linux的命令行界面 39
4.1 认识Linux命令行模式 39
4.1.1 为什么要先学习Shell 40
4.1.2 如何进入命令行 41
4.2 bash Shell的使用 42
4.2.1 别名的使用 42
4.2.2 历史命令的使用 43
4.2.3 命令补齐 44
4.2.4 命令行编辑 44
4.2.5 通配符 45
4.3 管道与重定向 46
4.3.1 标准输入与输出 46
4.3.2 输入重定向 47
4.3.3 输出重定向 49
4.3.4 错误输出重定向 50
4.3.5 管道 51
4.4 Linux的目录结构 51
4.5 常用运维命令 53
4.5.1 过滤文本grep 53
4.5.2 文本操作awk和sed 58
4.5.3 打包或解包文件tar 59
4.5.4 压缩或解压缩文件和目录zip/unzip 60
4.5.5 查看系统负载uptime 62
4.5.6 显示系统内存状态free 63
4.5.7 单次任务at 63
4.5.8 周期任务crond 64
4.5.9 使用poweroff终止系统运行 66
4.5.10 使用init命令改变系统运行级别 66
4.6 文本编辑器vi的使用 67
4.6.1 进入与退出vi 67
4.6.2 移动光标 67
4.6.3 输入文本 68
4.6.4 复制与粘贴 68
4.6.5 删除与修改 69
4.6.6 查找与替换 69
4.6.7 执行Shell命令 69
4.6.8 保存文档 70
4.7 范例——用脚本备份重要文件和目录 70
4.8 小结 73
4.9 习题 73
第5章 Linux文件管理与磁盘管理 75
5.1 认识Linux分区 75
5.2 Linux中的文件管理 76
5.2.1 文件的类型 76
5.2.2 文件的属性与权限 78
5.2.3 改变文件所有权 79
5.2.4 改变文件权限 80
5.3 Linux 中的磁盘管理 82
5.3.1 查看磁盘空间占用情况 82
5.3.2 查看文件或目录所占用的空间 83
5.3.3 调整和查看文件系统参数 84
5.3.4 格式化文件系统 85
5.3.5 挂载/卸载文件系统 86
5.3.6 基本磁盘管理 88
5.4 交换空间管理 92
5.5 磁盘冗余阵列RAID 93
5.6 范例——监控硬盘空间 94
5.7 小结 95
5.8 习题 95
第6章 Linux日志系统 97
6.1 Linux中常见的日志文件 97
6.2 Linux日志系统 100
6.2.1 rsyslog日志系统简介 101
6.2.2 rsyslog配置文件及语法 101
6.3 使用日志轮转 103
6.3.1 logrotate命令及配置文件参数说明 103
6.3.2 利用logrotate轮转Nginx日志 105
6.4 范例——利用系统日志定位问题 106
6.4.1 查看系统登录日志 107
6.4.2 查看历史命令 107
6.4.3 查看系统日志 107
6.5 小结 107
6.6 习题 108
第7章 用户和组 109
7.1 Linux的用户管理 109
7.1.1 Linux用户登录过程 109
7.1.2 Linux的用户类型 110
7.2 Linux用户管理机制 111
7.2.1 用户账号文件/etc/passwd 111
7.2.2 用户密码文件/etc/shadow 112
7.2.3 用户组文件/etc/group 113
7.3 Linux用户管理命令 113
7.3.1 添加用户 113
7.3.2 更改用户 115
7.3.3 删除用户 116
7.3.4 更改或设置用户密码 116
7.3.5 su切换用户 117
7.3.6 sudo普通用户获取超级权限 119
7.4 用户组管理命令 120
7.4.1 添加用户组 120
7.4.2 删除用户组 121
7.4.3 修改用户组 121
7.4.4 查看用户所在的用户组 122
7.5 范例——批量添加用户并设置密码 122
7.6 小结 124
7.7 习题 124
第8章 应用程序的管理 126
8.1 软件包管理基础 126
8.1.1 RPM 127
8.1.2 DPKG 127
8.2 RPM的使用 127
8.2.1 安装软件包 127
8.2.2 升级软件包 130
8.2.3 查看已安装的软件包 131
8.2.4 卸载软件包 131
8.2.5 查看一个文件属于哪个RPM包 132
8.2.6 获取RPM包的说明信息 132
8.3 从源代码安装软件 133
8.3.1 软件配置 133
8.3.2 编译软件 134
8.3.3 软件安装 134
8.4 普通用户如何安装常用软件 138
8.5 Linux函数库 140
8.6 范例——从源码安装Web服务软件Nginx 141
8.7 小结 146
8.8 习题 147
第9章 系统启动控制与进程管理 148
9.1 启动管理 148
9.1.1 Linux系统的启动过程 148
9.1.2 Linux运行级别 149
9.1.3 服务单元控制 150
9.2 Linux进程管理 155
9.2.1 进程的概念 155
9.2.2 进程管理工具与常用命令 156
9.3 系统运维常见操作 163
9.3.1 更改Linux的默认运行级别 163
9.3.2 更改sshd默认端口 22 163
9.3.3 查看某一个用户的所有进程 164
9.3.4 确定占用内存比较高的程序 165
9.3.5 终止进程 165
9.3.6 终止属于某一个用户的所有进程 166
9.3.7 根据端口号查找对应进程 166
9.4 范例——进程监控 166
9.5 小结 168
9.6 习题 168
第10章 Linux网络管理 169
10.1 网络管理协议 169
10.1.1 TCP/IP协议简介 169
10.1.2 UDP 与ICMP协议简介 171
10.2 网络管理命令 172
10.2.1 检查网络是否通畅或网络连接速度ping 172
10.2.2 配置网络或显示当前网络接口状态ifcongig 174
10.2.3 显示添加或修改路由表route 177
10.2.4 复制文件至其他系统scp 177
10.2.5 复制文件至其他系统rsync 179
10.2.6 显示网络连接、路由表或接口状态netstat 181
10.2.7 探测至目的地址的路由信息traceroute 183
10.2.8 测试、登录或控制远程主机telnet 185
10.2.9 下载网络文件wget 186
10.3 Linux网络配置 187
10.3.1 Linux网络相关配置文件 188
10.3.2 配置Linux系统的IP地址 188
10.3.3 设置主机名 190
10.3.4 设置默认网关 191
10.3.5 设置DNS服务器 191
10.4 动态主机配置协议DHCP 192
10.4.1 DHCP的工作原理 192
10.4.2 配置DHCP服务器 193
10.4.3 配置DHCP客户端 194
10.5 Linux域名服务DNS 195
10.5.1 DNS简介 196
10.5.2 DNS服务器配置 196
10.5.3 DNS服务测试 201
10.6 范例——监控网卡流量 201
10.7 小结 204
10.8 习题 204
第11章 网络文件共享NFS、Samba和FTP 205
11.1 网络文件系统NFS 205
11.1.1 网络文件系统NFS简介 205
11.1.2 配置NFS服务器 206
11.1.3 配置NFS客户端 210
11.2 文件服务器Samba 211
11.2.1 Samba服务简介 211
11.2.2 Samba服务的安装与配置 211
11.3 FTP服务器 216
11.3.1 FTP服务概述 216
11.3.2 vsftp的安装与配置 217
11.3.3 proftpd的安装与配置 224
11.3.4 如何设置FTP才能实现文件上传 229
11.4 小结 230
11.5 习题 230
第12章 搭建MySQL服务 231
12.1 MariaDB简介 231
12.2 MariaDB服务的安装与配置 232
12.2.1 MariaDB概述 232
12.2.2 MariaDB rpm包安装 232
12.2.3 MariaDB源码安装 235
12.2.4 MariaDB程序介绍 237
12.2.5 MariaDB配置文件介绍 237
12.2.6 MariaDB的启动与停止 239
12.3 MariaDB基本管理 246
12.3.1 使用本地socket方式登录MariaDB服务器 246
12.3.2 使用TCP方式登录MariaDB服务器 247
12.3.3 MariaDB存储引擎 249
12.4 MariaDB日常维护 252
12.4.1 MariaDB权限管理 252
12.4.2 MariaDB 日志管理 257
12.4.3 MariaDB备份与恢复 262
12.4.4 MariaDB复制 269
12.4.5 MariaDB复制搭建过程 271
12.5 小结 276
12.6 习题 276
第13章 安装和配置Oracle数据库管理系统 278
13.1 Oracle数据库管理系统简介 278
13.1.1 Oracle的版本命名机制 278
13.1.2 Oracle的版本选择 280
13.2 Oracle数据库体系结构 281
13.2.1 认识Oracle数据库管理系统 281
13.2.2 物理存储结构 282
13.2.3 逻辑存储结构 282
13.2.4 数据库实例 283
13.3 安装Oracle数据库服务器 283
13.3.1 检查软硬件环境 284
13.3.2 下载Oracle安装包 285
13.3.3 依赖软件包安装 286
13.3.4 创建Oracle用户组和用户 290
13.3.5 修改内核参数 291
13.3.6 修改用户限制 292
13.3.7 修改用户配置文件 293
13.3.8 准备安装目录和安装文件 293
13.3.9 安装软件 294
13.4 创建数据库 302
13.4.1 用DBCA创建数据库 302
13.4.2 手工创建数据库 305
13.4.3 打开数据库 306
13.4.4 关闭数据库 307
13.5 小结 308
13.6 习题 308
第14章 Apache服务和LAMP 309
14.1 Apache HTTP服务的安装与配置 309
14.1.1 HTTP协议简介 309
14.1.2 Apache服务的安装、配置与启动 311
14.1.3 Apache基于IP的虚拟主机配置 324
14.1.4 Apache基于端口的虚拟主机配置 327
14.1.5 Apache基于域名的虚拟主机配置 329
14.1.6 Apache安全控制与认证 332
14.2 LAMP集成的安装、配置与测试实战 337
14.3 习题 342
第15章 Linux路由 344
15.1 认识Linux路由 344
15.1.1 路由的基本概念 344
15.1.2 路由的原理 345
15.1.3 路由表 345
15.1.4 静态路由和动态路由 346
15.2 配置Linux静态路由 346
15.2.1 配置网络接口地址 346
15.2.2 测试网卡接口 IP配置状况 350
15.2.3 route命令介绍 351
15.2.4 普通客户机的路由设置 352
15.2.5 Linux路由器配置实例 352
15.3 Linux的策略路由 353
15.3.1 策略路由的概念 353
15.3.2 路由表的管理 354
15.3.3 路由管理 355
15.3.4 路由策略管理 356
15.3.5 策略路由应用实例 358
15.4 小结 361
15.5 习题 361
第16章 配置NAT上网 362
16.1 认识NAT 362
16.1.1 NAT 的类型 362
16.1.2 NAT的功能 363
16.2 Linux下的 NAT服务配置 363
16.2.1 Firewalld简介 364
16.2.2 在RHEL上配置NAT服务 364
16.2.3 局域网通过配置NAT上网 367
16.3 小结 367
16.4 习题 367
第17章 Linux性能检测与优化 368
17.1 Linux性能评估与分析工具 368
17.1.1 CPU相关 369
17.1.2 内存相关 370
17.1.3 硬盘I/O相关 372
17.1.4 网络性能评估 373
17.2 Linux内核编译与优化 374
17.2.1 编译并安装内核 374
17.2.2 常用内核参数的优化 375
17.3 小结 377
17.4 习题 377
第18章 集群负载均衡LVS 379
18.1 集群技术简介 379
18.2 LVS集群介绍 380
18.2.1 3种负载均衡技术 380
18.2.2 负载均衡调度算法 383
18.3 LVS集群的体系结构 384
18.4 LVS负载均衡配置实例 384
18.4.1 基于NAT模式的LVS安装与配置 385
18.4.2 基于DR模式的LVS的安装与配置 388
18.4.3 基于IP隧道模式的LVS的安装与配置 391
18.5 小结 393
18.6 习题 393
第19章 集群技术与双机热备软件 395
19.1 高可用性集群技术 395
19.1.1 可用性和集群 395
19.1.2 集群的分类 396
19.2 双机热备开源软件Pacemaker 396
19.2.1 Pacemaker概述 397
19.2.2 Pacemaker的安装与配置 397
19.2.3 Pacemaker测试 405
19.3 双机热备软件keepalived 408
19.3.1 认识keepalived 408
19.3.2 keepalived的安装与配置 409
19.3.3 keepalived的启动与测试 411
19.4 小结 413
19.5 习题 413
第20章 Linux防火墙管理 414
20.1 防火墙管理工具Firewalld 414
20.1.1 Linux内核防火墙的工作原理 414
20.1.2 Linux软件防火墙配置工具Firewalld 417
20.1.3 Firewalld配置实例 418
20.2 Linux 高级网络配置工具 422
20.2.1 高级网络管理工具iproute2 422
20.2.2 网络数据采集与分析工具tcpdump 425
20.3 小结 428
20.4 习题 428
第21章 KVM虚拟化 429
21.1 KVM虚拟化技术概述 429
21.1.1 基本概念 429
21.1.2 硬件要求 430
21.2 安装虚拟化软件包 431
21.2.1 通过yum命令安装虚拟化软件包 431
21.2.2 以软件包组的方式安装虚拟化软件包 432
21.3 安装虚拟机 433
21.3.1 安装Linux虚拟机 433
21.3.2 安装Windows虚拟机 435
21.4 管理虚拟机 437
21.4.1 虚拟机管理器简介 437
21.4.2 查询或者修改虚拟机硬件配置 439
21.4.3 管理虚拟网络 441
21.4.4 管理远程虚拟机 444
21.4.5 使用命令行执行高级管理 444
21.5 存储管理 447
21.5.1 创建基于磁盘的存储池 448
21.5.2 创建基于磁盘分区的存储池 449
21.5.3 创建基于目录的存储池 449
21.5.4 创建基于LVM的存储池 450
21.5.5 创建基于NFS的存储池 451
21.6 KVM安全管理 452
21.6.1 SELinux 452
21.6.2 防火墙 452
21.7 小结 453
21.8 习题 453
第22章 在RHEL 7.2上安装OpenStack 454
22.1 OpenStack概况 454
22.2 OpenStack系统架构 455
22.2.1 OpenStack体系架构 455
22.2.2 OpenStack部署方式 456
22.2.3 计算模块Nova 458
22.2.4 分布式对象存储模块Swift 458
22.2.5 虚拟机镜像管理模块Glance 459
22.2.6 身份认证模块Keystone 459
22.2.7 控制台Horizon 460
22.3 Openstack的主要部署工具 461
22.3.1 Fuel 461
22.3.2 TripleO 461
22.3.3 RDO 462
22.3.4 DevStack 462
22.4 通过RDO部署OpenStack 462
22.4.1 部署前的准备 462
22.4.2 配置安装源 462
22.4.3 安装Packstack 463
22.4.4 安装OpenStack 463
22.5 管理OpenStack 467
22.5.1 登录控制台 468
22.5.2 用户设置 469
22.5.3 管理用户 470
22.5.4 管理镜像 471
22.5.5 管理云主机类型 474
22.5.6 管理网络 476
22.5.7 管理实例 483
22.6 小结 491
22.7 习题 492
第23章 配置Hadoop 493
23.1 认识大数据和Hadoop 493
23.1.1 大数据时代 493
23.1.2 大数据时代的困境和思路 494
23.1.3 Hadoop简介 495
23.2 Hadoop架构 495
23.2.1 分布式文件系统HDFS 496
23.2.2 MapReduce计算框架 497
23.2.3 Hadoop架构特点 499
23.3 安装Hadoop 500
23.3.1 环境配置 500
23.3.2 安装JDK 504
23.3.3 Hadoop配置 507
23.3.4 启动Hadoop 514
23.4 小结 518
23.5 习题 518
第24章 配置Spark 519
24.1 Spark基础知识 519
24.1.1 Spark概述 519
24.1.2 Spark、MapReduce运行框架 520
24.1.3 Spark的模式 522
24.2 安装Spark 523
24.2.1 环境准备 523
24.2.2 安装JDK和Scala 526
24.2.3 安装配置Hadoop 528
24.2.4 安装Spark 535
24.3 小结 539
24.4 习题 540