第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 3
1.5.1 桌面版 4
1.5.2 服务器版 5
1.6 Red Hat Enterprise Linux 6.5 的新特性 6
1.6.1 安全和身份管理 6
1.6.2 网络 7
1.6.3 文件系统和存储 7
1.6.4 虚拟化 8
1.6.5 订阅管理 9
1.6.6 用户体验 9
1.7 学习Linux的建议 9
1.8 小结 10
1.9 习题 10
第2章 Red Hat Enterprise Linux的安装 11
2.1 安装前的准备 11
2.1.1 硬件准备 11
2.1.2 选择安装方式 12
2.2 在虚拟机上安装Linux 13
2.2.1 虚拟机简介 13
2.2.2 安装VMware虚拟机 13
2.2.3 创建虚拟机 15
2.2.4 安装Red Hat Enterprise Linux 18
2.3 Linux的第一次启动 26
2.3.1 本地登录 26
2.3.2 远程登录 27
2.4 小结 29
2.5 习题 30
第3章 Red Hat Enterprise Linux的图形界面 31
3.1 Linux的桌面系统简介 31
3.1.1 X Window系统 31
3.1.2 KDE桌面环境 32
3.1.3 GNOME桌面环境 33
3.2 桌面系统的操作 33
3.2.1 菜单管理 34
3.2.2 设置输入法 34
3.2.3 设置日期和时间 35
3.2.4 配置网卡和有线 35
3.2.5 使用U盘、光盘和移动硬盘 36
3.2.6 注销和关机 37
3.3 小结 38
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 输出重定向 48
4.3.4 错误输出重定向 49
4.3.5 管道 50
4.4 Linux的目录结构 51
4.5 常用命令 52
4.5.1 复制文件cp 53
4.5.2 移动文件mv 55
4.5.3 创建文件或修改文件时间touch 57
4.5.4 删除文件rm 60
4.5.5 查看文件cat tac more less tac tail 62
4.5.6 查找文件或目录find 69
4.5.7 过滤文本grep 76
4.5.8 比较文件差异diff 81
4.5.9 在文件或目录之间创建链接In 83
4.5.10 显示文件类型file 85
4.5.11 分割文件split 86
4.5.12 合并文件join 88
4.5.13 文件权限umask 90
4.5.14 文本操作awk和sed 91
4.6 目录管理 96
4.6.1 显示当前工作目录pwd 96
4.6.2 建立目录mkdir 97
4.6.3 删除目录rmdir 98
4.6.4 改变工作目录cd 100
4.6.5 查看工作目录文件ls 101
4.6.6 查看目录树tree 104
4.6.7 打包或解包文件tar 106
4.6.8 压缩或解压缩文件和目录zip/unzip 107
4.6.9 压缩或解压缩文件和目录gzip/gunzip 109
4.6.10 压缩或解压缩文件和目录bzip2/bunzip2 111
4.7 系统管理 113
4.7.1 查看命令帮助man 113
4.7.2 导出环境变量export 114
4.7.3 查看历史记录history 114
4.7.4 显示或修改系统时间与日期date 116
4.7.5 清除屏幕clear 119
4.7.6 查看系统负载uptime 119
4.7.7 显示系统内存状态free 119
4.7.8 转换或复制文件dd 120
4.8 任务管理 122
4.8.1 单次任务at 122
4.8.2 周期任务crond 123
4.9 关机命令 125
4.9.1 使用shutdown关机或重启 125
4.9.2 最简单的关机命令halt 125
4.9.3 使用reboot重启系统 126
4.9.4 使用poweroff终止系统运行 126
4.9.5 使用init命令改变系统运行级别 126
4.10 文本编辑器vi的使用 127
4.10.1 进入与退出vi 127
4.10.2 移动光标 127
4.10.3 输入文本 128
4.10.4 复制与粘贴 128
4.10.5 删除与修改 129
4.10.6 查找与替换 129
4.10.7 执行Shell命令 130
4.10.8 保存文档 130
4.11 范例——用脚本备份重要文件和目录 130
4.12 小结 133
4.13 习题 134
第5章 Linux文件管理与磁盘管理 135
5.1 认识Linux分区 135
5.2 Linux中的文件管理 136
5.2.1 文件的类型 136
5.2.2 文件的属性与权限 138
5.2.3 改变文件所有权 139
5.2.4 改变文件权限 140
5.3 Linux中的磁盘管理 142
5.3.1 查看磁盘空间占用情况 142
5.3.2 查看文件或目录所占用的空间 143
5.3.3 调整和查看文件系统参数 144
5.3.4 格式化文件系统 144
5.3.5 挂载/卸载文件系统 146
5.3.6 基本磁盘管理 147
5.4 交换空间管理 151
5.5 磁盘冗余阵列RAID 152
5.6 范例——监控硬盘空间 152
5.7 小结 153
5.8 习题 154
第6章 Linux日志系统 155
6.1 Linux中常见的日志文件 155
6.2 Linux日志系统 159
6.2.1 rsyslog日志系统简介 159
6.2.2 rsyslog配置文件及语法 159
6.3 使用日志轮转 161
6.3.1 Iogrotate命令及配置文件参数说明 162
6.3.2 利用Iogrotate轮转Nginx日志 163
6.4 范例——利用系统日志定位问题 165
6.4.1 查看系统登录日志 165
6.4.2 查看历史命令 165
6.4.3 查看系统日志 165
6.5 小结 166
6.6 习题 166
第7章 用户和组 167
7.1 Linux的用户管理 167
7.1.1 Linux用户登录过程 167
7.1.2 Linux的用户类型 168
7.2 Linux用户管理机制 169
7.2.1 用户账号文件/etc/passwd 169
7.2.2 用户密码文件/etc/shadow 170
7.2.3 用户组文件/etc/group 171
7.3 Linux用户管理命令 171
7.3.1 添加用户 172
7.3.2 更改用户 173
7.3.3 删除用户 174
7.3.4 更改或设置用户密码 175
7.3.5 su切换用户 175
7.3.6 sudo普通用户获取超级权限 177
7.4 用户组管理命令 178
7.4.1 添加用户组 178
7.4.2 删除用户组 179
7.4.3 修改用户组 179
7.4.4 查看用户所在的用户组 180
7.5 范例——批量添加用户并设置密码 180
7.6 小结 182
7.7 习题 182
第8章 应用程序的管理 184
8.1 软件包管理基础 184
8.1.1 RPM 185
8.1.2 DPKG 185
8.2 RPM的使用 185
8.2.1 安装软件包 185
8.2.2 升级软件包 188
8.2.3 查看已安装的软件包 188
8.2.4 卸载软件包 189
8.2.5 查看一个文件属于哪个RPM包 189
8.2.6 获取RPM包的说明信息 190
8.3 从源代码安装软件 190
8.3.1 软件配置 191
8.3.2 编译软件 191
8.3.3 软件安装 191
8.4 普通用户如何安装常用软件 195
8.5 Linux函数库 196
8.6 范例——从源码安装Web服务软件Nginx 197
8.7 小结 203
8.8 习题 204
第9章 系统启动控制与进程管理 205
9.1 启动管理 205
9.1.1 GRUB管理器概述 205
9.1.2 Linu系统的启动过程 206
9.1.3 Linux运行级别 207
9.1.4 Linux初始化配置脚本/etc/inittab的解析 208
9.1.5 Linux启动服务的控制 210
9.2 Linux进程管理 212
9.2.1 进程的概念 213
9.2.2 进程管理工具与常用命令 213
9.3 系统管理员常见操作 220
9.3.1 更改Linux的默认运行级别 220
9.3.2 更改sshd默认端口22 220
9.3.3 查看某一个用户的所有进程 221
9.3.4 确定占用内存比较高的程序 221
9.3.5 终止进程 222
9.3.6 终止属于某一个用户的所有进程 222
9.3.7 根据端口号查找对应进程 222
9.4 范例——进程监控 223
9.5 小结 225
9.6 习题 225
第10章 Linux网络管理 226
10.1 网络管理协议 226
10.1.1 TCP/IP协议简介 226
10.1.2 UDP与ICMP协议简介 228
10.2 网络管理命令 229
10.2.1 检查网络是否通畅或网络连接速度ping 229
10.2.2 配置网络或显示当前网络接口状态ifconfig 231
10.2.3 显示添加或修改路由表route 233
10.2.4 复制文件至其他系统scp 234
10.2.5 复制文件至其他系统rsync 235
10.2.6 显示网络连接、路由表或接口状态netstat 237
10.2.7 探测至目的地址的路由信息traceroute 239
10.2.8 测试、登录或控制远程主机telnet 241
10.2.9 下载网络文件wget 241
10.3 Linux网络配置 243
10.3.1 Linux网络相关配置文件 243
10.3.2 配置Linux系统的IP地址 243
10.3.3 设置主机名 245
10.3.4 设置默认网关 245
10.3.5 设置DNS服务器 245
10.4 动态主机配置协议DHCP 246
10.4.1 DHCP的工作原理 246
10.4.2 配置DHCP服务器 247
10.4.3 配置DHCP客户端 248
10.5 Linux域名服务DNS 249
10.5.1 DNS简介 250
10.5.2 DNS服务器配置 250
10.5.3 DNS服务测试 253
10.6 配置精确时间协议 254
10.6.1 精确时间协议 254
10.6.2 使用精确时间协议 255
10.6.3 使用PTP客户端 258
10.6.4 同步时钟 259
10.6.5 验证时间同步 260
10.7 范例——监控网卡流量 261
10.8 小结 263
10.9 习题 263
第11章 网络文件共享NFS、Samba和FTP 265
11.1 网络文件系统NFS 265
11.1.1 网络文件系统NFS简介 265
11.1.2 配置NFS服务器 266
11.1.3 配置NFS客户端 270
11.2 文件服务器Samba 270
11.2.1 Samba服务简介 270
11.2.2 Samba服务的安装与配置 271
11.3 FTP服务器 274
11.3.1 FTP服务概述 274
11.3.2 vsftp的安装与配置 275
11.3.3 proftpd的安装与配置 281
11.3.4 如何设置FTP才能实现文件上传 284
11.4 小结 285
11.5 习题 285
第12章 搭建MySQL服务 286
12.1 MySQL简介 286
12.2 MySQL服务的安装与配置 287
12.2.1 MySQL的版本选择 287
12.2.2 MySQL的版本命名机制 287
12.2.3 MySQL rpm包安装 288
12.2.4 MySQL源码安装 289
12.2.5 MySQL程序介绍 290
12.2.6 MySQL配置文件介绍 291
12.2.7 MySQL的启动与停止 293
12.3 MySQL基本管理 299
12.3.1 使用本地socket方式登录MySQL服务器 299
12.3.2 使用TCP方式登录MySQL服务器 300
12.3.3 MySQL存储引擎 302
12.4 MySQL日常维护 305
12.4.1 MySQL权限管理 305
12.4.2 MySQL日志管理 309
12.4.3 MySQL备份与恢复 315
12.4.4 MySQL复制 322
12.4.5 MySQL复制搭建过程 324
12.5 小结 329
12.6 习题 329
第13章 安装和配置Oracle数据库管理系统 330
13.1 Oracle数据库管理系统简介 330
13.1.1 Oracle的版本命名机制 330
13.1.2 Oracle的版本选择 332
13.2 Oracle数据库体系结构 333
13.2.1 认识Oracle数据库管理系统 333
13.2.2 物理存储结构 334
13.2.3 逻辑存储结构 334
13.2.4 数据库实例 335
13.3 安装Oracle数据库服务器 335
13.3.1 检查软硬件环境 336
13.3.2 下载Oracle安装包 337
13.3.3 创建Oracle用户组和用户 337
13.3.4 修改内核参数 338
13.3.5 修改用户限制 339
13.3.6 修改用户配置文件 340
13.3.7 准备安装目录 340
13.3.8 安装软件 341
13.4 创建数据库 349
13.4.1 用DBCA创建数据库 349
13.4.2 手工创建数据库 350
13.4.3 打开数据库 352
13.4.4 关闭数据库 353
13.5 小结 353
13.6 习题 353
第14章 Apache服务和LAMP 354
14.1 Apache HTTP服务的安装与配置 354
14.1.1 HTTP协议简介 354
14.1.2 Apache服务的安装、配置与启动 356
14.1.3 Apache基于IP的虚拟主机配置 365
14.1.4 Apache基于端口的虚拟主机配置 369
14.1.5 Apache基于域名的虚拟主机配置 371
14.1.6 Apache安全控制与认证 374
14.2 LAMP集成的安装、配置与测试实战 380
14.3 习题 384
第15章 Linux路由 386
15.1 认识Linux路由 386
15.1.1 路由的基本概念 386
15.1.2 路由的原理 387
15.1.3 路由表 387
15.1.4 静态路由和动态路由 388
15.2 配置Linux静态路由 388
15.2.1 配置网络接口地址 389
15.2.2 测试网卡接口IP配置状况 392
15.2.3 route命令介绍 393
15.2.4 普通客户机的路由设置 394
15.2.5 Linux路由器配置实例 394
15.3 Linux的策略路由 396
15.3.1 策略路由的概念 396
15.3.2 路由表的管理 397
15.3.3 路由管理 398
15.3.4 路由策略管理 399
15.3.5 策略路由应用实例 401
15.4 小结 403
15.5 习题 403
第16章 配置NAT上网 404
16.1 认识NAT 404
16.1.1 NAT的类型 404
16.1.2 NAT的功能 405
16.2 Linux下的NAT服务配置 406
16.2.1 iptables简介 406
16.2.2 iptables工作流程 408
16.2.3 iptables基本语法 409
16.2.4 在RHEL上配置NAT服务 412
16.2.5 局域网通过配置NAT上网 414
16.3 小结 415
16.4 习题 415
第17章 Linux性能检测与优化 416
17.1 Linux性能评估与分析工具 416
17.1.1 CPU相关 417
17.1.2 内存相关 418
17.1.3 硬盘I/O相关 420
17.1.4 网络性能评估 421
17.2 Linux内核编译与优化 422
17.2.1 编译并安装内核 422
17.2.2 常用内核参数的优化 423
17.3 小结 425
17.4 习题 425
第18章 集群负载均衡LVS 427
18.1 集群技术简介 427
18.2 LVS集群介绍 428
18.2.1 3种负载均衡技术 429
18.2.2 负载均衡调度算法 431
18.3 LVS集群的体系结构 432
18.4 LVS负载均衡配置实例 433
18.4.1 基于NAT模式的LVS的安装与配置 433
18.4.2 基于DR模式的LVS的安装与配置 437
18.4.3 基于IP隧道模式的LVS的安装与配置 440
18.5 小结 442
18.6 习题 442
第19章 集群技术与双机热备软件 444
19.1 高可用性集群技术 444
19.1.1 可用性和集群 444
19.1.2 集群的分类 445
19.2 双机热备开源软件Heartbeat 445
19.2.1 认识Heartbeat 446
19.2.2 Heartbeat的安装与配置 446
19.2.3 Heartbeat的启动与测试 450
19.3 双机热备软件keepalived 452
19.3.1 认识keepalived 452
19.3.2 keepalived的安装与配置 452
19.3.3 keepalived的启动与测试 454
19.4 小结 456
19.5 习题 457
第20章 Linux防火墙管理 458
20.1 Linux防火墙iptables 458
20.1.1 Linux内核防火墙的工作原理 458
20.1.2 Linux软件防火墙iptables 461
20.1.3 iptables配置实例 464
20.2 Linux高级网络配置工具 467
20.2.1 高级网络管理工具iproute2 467
20.2.2 网络数据采集与分析工具tcpdump 469
20.3 范例——利用iptables阻止外网异常请求 472
20.4 小结 474
20.5 习题 474
第21章 KVM虚拟化 475
21.1 KVM虚拟化技术概述 475
21.1.1 基本概念 475
21.1.2 硬件要求 476
21.2 安装虚拟化软件包 477
21.2.1 通过yum命令安装虚拟化软件包 477
21.2.2 以软件包组的方式安装虚拟化软件包 477
21.3 安装虚拟机 479
21.3.1 安装Linux虚拟机 479
21.3.2 安装Windows虚拟机 481
21.4 管理虚拟机 483
21.4.1 虚拟机管理器简介 483
21.4.2 查询或者修改虚拟机硬件配置 485
21.4.3 管理虚拟网络 487
21.4.4 管理远程虚拟机 490
21.4.5 使用命令行执行高级管理 491
21.5 存储管理 494
21.5.1 创建基于磁盘的存储池 495
21.5.2 创建基于磁盘分区的存储池 495
21.5.3 创建基于目录的存储池 496
21.5.4 创建基于LVM的存储池 497
21.5.5 创建基于NFS的存储池 498
21.6 KVM安全管理 498
21.6.1 SELinux 499
21.6.2 防火墙 499
21.7 小结 500
21.8 习题 500
第22章 在RHEL6.5 上安装OpenStack 501
22.1 OpenStack概况 501
22.2 OpenStack系统架构 502
22.2.1 OpenStack体系架构 502
22.2.2 OpenStack部署方式 503
22.2.3 计算模块Nova 505
22.2.4 分布式对象存储模块Swift 505
22.2.5 虚拟机镜像管理模块Glance 506
22.2.6 身份认证模块Keystone 506
22.2.7 控制台Horizon 507
22.3 Openstack的主要部署工具 508
22.3.1 Fuel 508
22.3.2 TripleO 508
22.3.3 RDO 509
22.3.4 DevStack 509
22.4 通过RDO部署OpenStack 509
22.4.1 部署前的准备 509
22.4.2 配置安装源 509
22.4.3 安装Packstack 510
22.4.4 安装OpenStack 510
22.5 管理OpenStack 514
22.5.1 登录控制台 514
22.5.2 用户设置 516
22.5.3 管理用户 517
22.5.4 管理镜像 518
22.5.5 管理云主机类型 520
22.5.6 管理网络 522
22.5.7 管理实例 529
22.6 小结 536
22.7 习题 536