《循序渐进Linux(第2版) 基础知识 服务器搭建 系统管理 性能调优 虚拟化与集群应用》从基础知识入手,系统讲解了Linux系统结构、shell、主流服务器搭建及故障排除、用户权限管理、磁盘存储管理、文件系统管理、内存管理和系统进程管理等关键技术,深入研究了系统性能优化思路、系统性能评估与优化、集群技术、负载均衡等Linux热点主题。
《循序渐进Linux(第2版) 基础知识 服务器搭建 系统管理 性能调优 虚拟化与集群应用》强调学习方法以及技术能力的培养,在每个知识点后都给出了大量操作案例,包括了详细的操作步骤,具有很强的可操作性,并对案例进行分析,提供了解决问题的思路和方法,做到了授人以渔。
《循序渐进Linux(第2版) 基础知识 服务器搭建 系统管理 性能调优 虚拟化与集群应用》适合希望系统、学习Linux技术的初学者作为教材,也适合Linux系统管理员、数据库管理人员、网络安全管理人员、系统集成人员和系统架构师参考。
高俊峰,网名南非蚂蚁,Linux专家,知名IT作家。毕业于西安电子科技大学通信工程专业。曾就职于新浪网、阿里云(原万网),任职系统架构师。具有多年的自动化运维和管理经验,擅长Linux、集群应用、Mysql、Oracle等方面的系统管理、性能调优,规划设计,实战经验丰富。曾出版《循序渐进Linux》、《高性能Linux服务器构建实战》等畅销Linux书籍。
篇 基础知识篇
第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 Linux9
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 用虚拟机技术学习Linux13
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 系统服务管理工具systemd66
3.5.1 启动、停止、重启服务66
3.5.2 查看、禁止、启用服务67
3.5.3 systemd命令和sysvinit命令
对比68
3.6 Linux与SecureCRT69
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 什么是shell73
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 文本编辑工具vi135
第5章 Linux下软件的安装与管理139
5.1 源码安装方式140
5.1.1 下载、解压源码140
5.1.2 分析安装平台环境140
5.1.3 编译、安装软件141
5.1.4 通过源码安装Apache Http
server142
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
第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与MariaDB247
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软件防火墙iptables301
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
第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 LVM389
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 ReiserFS407
13.2.3 XFS408
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 安装extundelete420
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查询进程ID443
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
第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
第18章 虚拟化云计算平台
Proxmox VE485
18.1 OpenVZ简介486
18.2 KVM简介486
18.3 Proxmox VE简介486
18.4 安装Proxmox VE487
18.5 Proxmox VE的使用492
18.5.1 Proxmox VE功能选项说明492
18.5.2 创建OpenVZ虚拟机496
18.5.3 创建KVM500
第19章 高性能集群软件Keepalived506
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
<