第一篇 基础知识篇 3
第1章 学习Linux的经验与技巧 3
1.1 Linux在各领域发展的现状与趋势 4
1.1.1 Linux与开源软件 4
1.1.2 Linux在服务器领域的发展 4
1.1.3 Linux在桌面领域的发展 5
1.1.4 Linux在移动嵌入式领域的发展 5
1.1.5 Linux在云计算/大数据领域的发展 5
1.2 选择适合自己的Linux发行版 5
1.2.1 常见的Linux发行版 6
1.2.2 初学者入门首选—— CentOS系列 8
1.2.3 桌面平台首选——Ubuntu Linux 9
1.2.4 企业级应用首选——RHEL/CentOS系列 9
1.3 养成良好的Linux操作习惯 9
1.3.1 一定要习惯命令行方式 10
1.3.2 理论结合实践 10
1.3.3 学会使用Linux联机帮助 10
1.3.4 学会独立思考问题,独立解决问题 11
1.3.5 学习专业英语 11
1.3.6 Linux学习路线图 11
1.4 用虚拟机技术学习Linux 13
1.4.1 虚拟机技术 13
1.4.2 使用虚拟机技术的好处 13
1.4.3 虚拟机的运行环境和硬件需求 13
1.4.4 虚拟机的安装与使用 14
1.5 Linux学习资源 20
1.5.1 网络资源、搜索引擎、论坛 20
1.5.2 有本书在身边 20
第2章 Linux系统的安装与基础配置 21
2.1 安装需求 22
2.2 Linux的几种安装方式 22
2.2.1 硬盘安装方式 22
2.2.2 U盘安装方式 23
2.2.3 网络安装方式 23
2.2.4 光驱安装方式 23
2.3 光驱安装过程 24
2.3.1 分区命名方案 24
2.3.2 开始安装 25
2.4 U盘安装过程 44
第3章 Linux系统基本结构 47
3.1 Linux控制台的使用 48
3.2 系统与硬件 48
3.2.1 Linux硬件资源管理 48
3.2.2 Linux外在设备的使用 53
3.3 文件系统结构介绍 55
3.3.1 目录结构 55
3.3.2 系统核心组成 60
3.4 运行机制介绍 61
3.4.1 Linux初始化init系统 62
3.4.2 runlevel到target的改变 62
3.4.3 系统关机过程 64
3.5 系统服务管理工具systemd 66
3.5.1 启动、停止、重启服务 66
3.5.2 查看、禁止、启用服务 67
3.5.3 systemd命令和sysvinit命令对比 68
3.6 Linux 与 SecureCRT 69
3.6.1 SecureCRT概述 69
3.6.2 SecureCRT的安装与使用 69
3.6.3 与SecureCRT相关的Linux命令 70
第4章 Linux常用命令及使用技巧 72
4.1 Linux下的shell简介 73
4.1.1 什么是shell 73
4.1.2 shell命令的语法分析 74
4.2 系统管理与维护 80
4.2.1 ls命令 80
4.2.2 pwd命令 82
4.2.3 cd命令 82
4.2.4 date命令 83
4.2.5 passwd命令 84
4.2.6 su命令 85
4.2.7 clear命令 86
4.2.8 man命令 86
4.2.9 who命令 86
4.2.10 w命令 87
4.2.11 uname命令 88
4.2.12 uptime命令 89
4.2.13 last命令 90
4.2.14 dmesg命令 90
4.2.15 free命令 91
4.2.16 ps命令 91
4.2.17 top命令 92
4.3 文件管理与编辑 95
4.3.1 mkdir命令 95
4.3.2 more命令 96
4.3.3 cat命令 97
4.3.4 diff命令 98
4.3.5 grep命令 99
4.3.6 rm命令 100
4.3.7 touch命令 101
4.3.8 ln命令 102
4.3.9 file命令 104
4.3.10 cp命令 105
4.3.11 find命令 105
4.3.12 split命令 108
4.3.13 mv命令 109
4.4 压缩与解压 109
4.4.1 zip/unzip命令 109
4.4.2 gzip/gunzip命令 111
4.4.3 bzip2/bunzip2命令 112
4.4.4 tar命令 113
4.4.5 dd命令 116
4.4.6 cpio命令 117
4.5 磁盘管理与维护 118
4.5.1 df命令 118
4.5.2 du命令 119
4.5.3 fsck命令 120
4.5.4 sync命令 122
4.5.5 eject命令 122
4.5.6 mount/umount命令 123
4.6 网络设置与维护 126
4.6.1 ifconfig命令 126
4.6.2 scp命令 128
4.6.3 netstat命令 129
4.6.4 traceroute命令 131
4.6.5 telnet命令 133
4.6.6 wget命令 134
4.7 文本编辑工具vi 135
第5章 Linux下软件的安装与管理 139
5.1 源码安装方式 140
5.1.1 下载、解压源码 140
5.1.2 分析安装平台环境 140
5.1.3 编译、安装软件 141
5.1.4 通过源码安装Apache Http server 142
5.2 RPM包方式安装 143
5.2.1 RPM介绍 143
5.2.2 RPM包的种类和组成 144
5.2.3 RPM工具的使用 145
5.3 yum安装方式 156
5.3.1 yum的安装与配置 157
5.3.2 yum的特点与基本用法 158
5.3.3 几个不错的yum源 161
5.4 二进制软件安装方式 161
5.4.1 安装“*.tar.gz、*.bz2”二进制软件包 162
5.4.2 提供安装程序的软件包 162
第二篇 服务器搭建篇 165
第6章 Linux服务器网络配置 165
6.1 网卡驱动的安装 166
6.1.1 网卡驱动安装的一般思路 166
6.1.2 编译安装网卡 172
6.2 配置Linux网络 177
6.2.1 不同Linux发行版的网络配置文件 177
6.2.2 网络配置文件详解 178
6.3 Linux网络应用 183
6.3.1 Linux下的IP别名功能 183
6.3.2 开启Linux代理转发功能 185
6.3.3 路由的概念与配置 185
6.3.4 Linux路由器的架设 192
第7章 架设Linux服务器 196
7.1 使用OpenSSH远程管理Linux服务器 197
7.2 Web服务器的搭建 198
7.2.1 Apache与Tomcat整合的必要性 199
7.2.2 Apache和Tomcat连接器 200
7.2.3 Apache与Tomcat以及JK模块的安装 200
7.2.4 Apache与Tomcat整合配置 202
7.3 LAMP服务器的搭建 217
7.3.1 LAMP与WordPress概述 217
7.3.2 LAMP服务环境的搭建 218
7.3.3 测试LAMP环境安装的正确性 226
7.4 DNS服务器的搭建 227
7.4.1 DNS服务器概述 227
7.4.2 DNS服务器的搭建 227
7.5 Samba服务器的搭建 235
7.5.1 Samba的概念和功能 235
7.5.2 Samba的安装与配置 235
第8章 构建高性能的MySQL数据库系统 246
8.1 MySQL与MariaDB 247
8.2 常见的高可用MySQL解决方案 247
8.2.1 主从复制解决方案 248
8.2.2 MMM高可用解决方案 248
8.2.3 Heartbeat/SAN高可用解决方案 248
8.2.4 Heartbeat/DRBD高可用解决方案 249
8.2.5 MySQL Cluster高可用解决方案 249
8.3 通过Keepalived搭建MySQL双主模式的高可用集群系统 249
8.3.1 MySQL复制介绍 249
8.3.2 MySQL复制的实现原理 250
8.3.3 MySQL复制的常用架构 251
8.3.4 MySQL主主互备模式架构图 252
8.3.5 MySQL主主互备模式配置 253
8.3.6 配置Keepalived实现MySQL双主高可用 257
8.3.7 测试MySQL主从同步功能 260
8.3.8 测试Keepalived实现MySQL故障切换 261
8.4 通过MMM构建MySQL高可用集群系统 263
8.4.1 MMM高可用MySQL方案简介 263
8.4.2 MMM典型应用方案 264
8.4.3 MMM高可用MySQL方案架构图 266
8.4.4 MMM的安装与配置 267
8.4.5 MMM的管理 271
8.4.6 测试MMM实现MySQL高可用功能 274
8.5 MySQL读、写分离解决方案 277
8.5.1 常见的MySQL读、写分离方案 277
8.5.2 通过Amoeba实现MySQL读、写分离 278
第9章 Linux服务器安全策略 287
9.1 网络安全概述 288
9.1.1 常见攻击类型 288
9.1.2 防范攻击策略 289
9.2 操作系统常用安全策略 290
9.2.1 软件的升级 290
9.2.2 端口与服务 291
9.2.3 密码登录安全 295
9.2.4 其他安全设置 298
9.3 Linux软件防火墙iptables 301
9.3.1 iptables的使用环境 302
9.3.2 iptables的使用规范与语法 304
9.3.3 防火墙规则的查看与清除 308
9.3.4 制定防火墙规则 309
9.4 Linux系统的备份 315
9.4.1 为何要备份Linux系统 315
9.4.2 Linux系统需要备份的数据 316
9.4.3 备份的介质与方式 316
9.4.4 制定备份策略 318
9.4.5 备份工具的选择 319
第10章 Linux故障排查思路与案例 325
10.1 Linux下常见系统故障的处理 326
10.1.1 处理Linux系统故障的思路 326
10.1.2 忘记Linux root密码 326
10.1.3 Linux系统无法启动的解决办法 329
10.2 Linux下常见网络故障处理 337
10.3 “Read-only file system”错误与解决案例 342
10.4 通过su命令切换用户带来的困惑 344
10.5 因NAS存储故障引起的Linux系统恢复案例 347
10.5.1 故障现象描述 347
10.5.2 问题判断思路 347
10.5.3 问题处理过程 348
10.5.4 解决问题 350
第三篇 系统管理篇 353
第11章 Linux用户权限管理 353
11.1 用户与用户组管理概述 354
11.1.1 用户与组的概念 354
11.1.2 用户配置文件概述 355
11.2 用户管理工具介绍 360
11.2.1 groupadd/newgrp/groupdel命令 360
11.2.2 useradd/usermod/userdel命令 362
11.3 文件与权限的设定 366
11.3.1 查看文件的权限属性 366
11.3.2 利用chown改变属主和属组 368
11.3.3 利用chmod改变访问权限 369
第12章 Linux磁盘存储管理 372
12.1 磁盘管理的基本概念 373
12.1.1 磁盘设备在Linux下的表示方法 373
12.1.2 设备的挂载与使用 374
12.1.3 磁盘分区的划分标准 375
12.2 利用fdisk工具划分磁盘分区 377
12.2.1 fdisk参数含义介绍 377
12.2.2 fdisk实例讲解 378
12.3 利用parted工具规划磁盘分区 385
12.3.1 parted简介 385
12.3.2 parted使用方法 385
12.3.3 parted应用实例 386
12.4 LVM 389
12.4.1 LVM的基本概念 389
12.4.2 LVM中的术语 390
12.4.3 安装LVM工具 391
12.4.4 LVM的创建与管理 391
第13章 Linux文件系统管理 401
13.1 文件系统概述 402
13.1.1 什么是文件系统 402
13.1.2 为什么要使用文件系统 402
13.1.3 文件系统的使用流程 403
13.2 Linux下常用文件系统介绍 404
13.2.1 ext3和ext4文件系统 404
13.2.2 ReiserFS 407
13.2.3 XFS 408
13.3 选择文件系统的标准 411
13.4 NFS的使用 411
13.4.1 NFS简介 411
13.4.2 NFS的实现原理 412
13.4.3 NFS的安装与配置 413
13.5 Linux下常用的数据恢复工具 419
13.5.1 如何使用“rm-rf”命令 419
13.5.2 extundelete与ext3grep的异同 419
13.5.3 extundelete的恢复原理 419
13.5.4 安装extundelete 420
13.5.5 extundelete用法详解 420
13.5.6 实战:通过extundelete恢复数据的过程 421
第14章 Linux内存管理 426
14.1 物理内存和虚拟内存 427
14.2 内存的监控 428
14.3 交换空间的使用 430
14.4 查看进程占用内存 432
第15章 Linux系统进程管理 434
15.1 进程的概念和分类 435
15.2 进程的监控与管理 437
15.2.1 利用ps命令监控系统进程 437
15.2.2 利用pstree监控系统进程 438
15.2.3 利用top监控系统进程 440
15.2.4 利用lsof监控系统进程与程序 441
15.2.5 利用pgrep查询进程ID 443
15.3 任务调度进程crond的使用 444
15.3.1 crond简介 444
15.3.2 crontab工具的使用 445
15.3.3 使用crontab工具的注意事项 447
15.4 用kill和killall终止进程 448
15.4.1 用kill终止进程 448
15.4.2 用killall终止进程 449
第四篇 性能调优篇 453
第16章 Linux系统优化思路 453
16.1 性能问题综述 454
16.2 影响Linux性能的因素 454
16.2.1 系统硬件资源 454
16.2.2 操作系统相关资源 456
16.2.3 应用程序软件资源 457
16.3 分析系统性能涉及的人员 458
16.3.1 Linux运维人员 458
16.3.2 系统架构设计人员 458
16.3.3 软件开发人员 458
16.4 系统性能分析工具 459
16.5 系统性能分析标准 461
16.6 本章总结 462
第17章 Linux系统性能评估与优化案例 463
17.1 CPU性能评估 464
17.1.1 vmstat命令 464
17.1.2 sar命令 465
17.1.3 iostat命令 467
17.1.4 uptime命令 467
17.1.5 本节小结 467
17.2 内存性能评估 468
17.2.1 free命令 468
17.2.2 通过watch与free相结合动态监控内存状况 469
17.2.3 vmstat命令监控内存 469
17.2.4 “sar-r”命令组合 470
17.2.5 本节小结 470
17.3 磁盘I/O性能评估 470
17.3.1 “sar-d”命令组合 471
17.3.2 “iostat-d”命令组合 472
17.3.3 “vmstat-d”命令组合 474
17.3.4 本节小结 474
17.4 网络性能评估 475
17.4.1 通过ping命令检测网络的连通性 475
17.4.2 通过“netstat-I”命令组合检测网络接口状况 475
17.4.3 通过“netstat-r”命令组合检测系统的路由表信息 476
17.4.4 通过“sar-n”命令组合显示系统的网络运行状态 477
17.4.5 本节小结 478
17.5 基于Web应用的性能分析及优化案例 478
17.5.1 基于动态内容的网站优化案例 478
17.5.2 基于动态、静态内容结合的网站优化案例 480
第五篇 虚拟化与集群应用篇 485
第18章 虚拟化云计算平台Proxmox VE 485
18.1 OpenVZ简介 486
18.2 KVM简介 486
18.3 Proxmox VE简介 486
18.4 安装Proxmox VE 487
18.5 Proxmox VE的使用 492
18.5.1 ProxmoxVE功能选项说明 492
18.5.2 创建OpenVZ虚拟机 496
18.5.3 创建KVM 500
第19章 高性能集群软件Keepalived 506
19.1 集群的定义 507
19.2 集群的特点与功能 507
19.2.1 高可用性与可扩展性 507
19.2.2 负载均衡与错误恢复 508
19.2.3 心跳监测与漂移IP地址 508
19.3 集群的分类 509
19.3.1 高可用集群 509
19.3.2 负载均衡集群 510
19.3.3 分布式计算集群 511
19.4 HA集群中的相关术语 511
19.5 Keepalived简介 512
19.5.1 Keepalived的用途 512
19.5.2 VRRP与工作原理 513
19.5.3 Keepalived工作原理 513
19.5.4 Keepalived的体系结构 514
19.6 Keepalived安装与配置 516
19.6.1 Keepalived的安装过程 516
19.6.2 Keepalived的全局配置 518
19.6.3 Keepalived的VRRPD配置 518
19.6.4 Keepalived的LVS配置 522
19.7 Keepalived基础功能应用实例 526
19.7.1 Keepalived基础HA功能演示 526
19.7.2 通过vrrp script实现对集群资源的监控 532
19.7.3 Keepalived集群中Master和Backup角色选举策略 535
第20章 负载均衡集群LVS与HAProxy 537
20.1 LVS简介 538
20.2 LVS体系结构 538
20.3 LVS集群的特点 539
20.3.1 IP负载均衡与负载调度算法 539
20.3.2 高可用性 541
20.3.3 高可靠性 542
20.3.4 适用环境 542
20.3.5 开源软件 542
20.4 LVS的安装与使用 542
20.4.1 安装IPVS管理软件 542
20.4.2 ipvsadm的用法 543
20.5 通过Keepalived搭建LVS高可用性集群系统 545
20.5.1 实例环境 545
20.5.2 配置Keepalived 546
20.5.3 配置Real Server节点 549
20.5.4 启动Keepalived+LVS集群系统 550
20.6 测试高可用LVS负载均衡集群系统 551
20.6.1 高可用性功能测试 551
20.6.2 负载均衡测试 552
20.6.3 故障转移测试 552
20.7 高性能负载均衡软件HAProxy 553
20.7.1 HAProxy简介 553
20.7.2 4层和7层负载均衡器的区别 554
20.7.3 HAProxy与LVS的异同 555
20.8 HAProxy基础配置与应用实例 556
20.8.1 快速安装HAProxy集群软件 556
20.8.2 HAProxy基础配置文件详解 556
20.8.3 通过HAProxy的ACL规则实现智能负载均衡 563
20.8.4 管理与维护HAProxy 565
20.8.5 使用HAProxy的Web监控平台 569
20.9 搭建HAProxy+Keepalived高可用负载均衡系统 570
20.9.1 搭建环境描述 570
20.9.2 配置HAProxy负载均衡服务器 571
20.9.3 配置主、备用KeepAlived服务器 573
20.10 测试HAProxy+Keepalived高可用负载均衡集群 576
20.10.1 测试Keepalived的高可用功能 576
20.10.2 测试负载均衡功能 578