第1章Linux学习环境搭建 1
1.1 Linux发展史 1
1.1.1 Linux介绍 1
1.1.2 Linux崛起 1
1.1.3 Linux常用发行版 1
1.1.4 Linux优势 2
1.2 VMware虚拟机安装 3
1.3创建虚拟机及安装CentOS系统 6
1.3.1创建虚拟机 6
1.3.2解决“Intel VT -x处于禁用状态打不开”的问题 11
1.3.3安装CentOS 7.6系统 13
1.4 VMware虚拟机的12个使用技巧 23
第2章Linux基本操作和组装服务器 29
2.1 Linux网络相关概念和修改IP地址的方法 29
2.1.1网卡的命名规则 30
2.1.2使用root用户登录操作系统 30
2.1.3 ifconfig命令的使用方法 31
2.1.4临时和永久修改 31
2.1.5删除临时IP地址 33
2.1.6 NetworkManager概述(了解) 33
2.1.7 RHEL/CentOS Linux网络相关的配置文件(熟练) 34
2.1.8永久修改IP地址 34
2.2关闭防火墙并设置开机不启动防火墙 36
2.3临时和永久关闭SELinux 37
2.4设置系统光盘开机自动挂载 37
2.5配置本地YUM源 38
2.6创建可用实验快照 39
2.7 CentOS 7电源设置 40
第3章Linux基本命令操作 41
3.1 Linux终端介绍、Shell提示符、Bash基本语法 41
3.1.1认识Linux终端 41
3.1.2认识Shell 42
3.2 Linux基本命令 45
3.2.1 Is基本命令 45
3.2.2命令别名的使用 47
3.2.3 ed基本命令 49
3.2.4 history基本命令 49
3.2.5 Linux中的快捷键 50
3.3系统时间管理 50
3.3.1两种时钟 50
3.3.2 time命令 52
3.4帮助命令的使用 52
3.4.1常用的帮助命令 52
3.4.2 man的章节及使用说明 53
3.5关机、重启命令及7个运行级别 54
3.5.1 shutdown命令 54
3.5.2 7个运行级别 55
3.5.3设置默认的运行级别 55
3.6实战1:设置服务器通电后自动开机 56
第4章 文件的基本管理和XFS文件系统备份恢复 57
4.1 Linux系统目录结构和相对/绝对路径 57
4.1.1系统目录结构 57
4.1.2绝对路径和相对路径 59
4.2文件的管理 60
4.2.1 touch命令 60
4.2.2 vim命令 61
4.2.3 mkdir命令 61
4.2.4 rm命令 61
4.2.5 cp命令 62
4.2.6 my命令 62
4.3查看文件 62
4.3.1 cat命令 62
4.3.2 more命令 63
4.3.3 less命令 63
4.3.4 head命令 64
4.3.5 tail命令 65
4.4实战1: XFS文件系统的备份和恢复 65
4.5实战2:增量备份文件系统 71
第5章vim编辑器和Xmanager工具 73
5.1 vim主要模式介绍 73
5.1.1安装vim及编辑模式 73
5.1.2模式介绍 73
5.1.3可视块模式 75
5.1.4命令行模式操作 75
5.1.5调用外部文件或命令 76
5.1.6文本替换 76
5.1.7自定义vim使用环境 77
5.1.8使用vim打开多个文件 77
5.1.9比较两个文件内容 78
5.1.10其他编辑器 78
5.2实战1:解决在Linux下打开Windows汉字出现乱码的问题 79
5.3实战2:解决将Linux服务器上的脚本导入Windows但打开串行的问题 80
5.4实战3:在CentOS 6/RHEL 6上恢复ext4文件系统上误删除的文件 81
5.4.1恢复文件相关工具 81
5.4.2知识扩展 81
5.4.3在ext4文件系统上恢复被误删除的文件 82
5.5实战4:使用Xmanager等远程连接工具管理Linux 87
第6章CentOS用户管理 89
6.1用户和用户组的关系 89
6.2创建用户相关命令 90
6.2.1创建用户 90
6.2.2修改用户属性 94
6.2.3用户密码管理 95
6.2.4查看用户相关命令 98
6.3实战:进入CentOS 7紧急模式,恢复root密码 99
第7章CentOS 7文件权限管理 101
7.1文件的基本权限 101
7.1.1文件权限的作用 101
7.1.2更改文件的属主和属组 103
7.1.3文件权限管理 105
7.1.4文件权限补码 107
7.2文件的特殊权限:SUID、 SGID、 STicky及文件扩展权限ACL 109
7.2.1文件的特殊权限:SUID、 SGID、 STicky 109
7.2.2文件扩展权限 111
7.3实战:创建一个让root都无法删除的文件 113
第8章CentOS 7程序包的管理与安装 115
8.1程序包的管理 115
8.1.1程序包的类型 115
8.1.2 RPM包简介 115
8.1.3 RPM包安装 115
8.1.4 rpm查询功能 116
8.1.5检查程序包内容是否被修改过 117
8.1.6 rpm包的卸载和升级 118
8.2 Yum的使用 119
8.2.1配置Yum源 120
8.2.2 Yum的使用 121
8.3实战:tar源码包管理及srpm源码包安装方法 122
8.3.1源码安装Nginx 122
8.3.2删除源码包 123
8.3.3源码编译出错的5种完美解决方法 123
8.3.4安装.src.rpm源码包的方法(了解) 125
第9章 文件的归档和压缩 126
9.1使用tar命令进行文件的归档和压缩 126
9.1.1归档和压缩文件 126
9.1.2使用tar命令进行归档并压缩 127
9.2 zip管理压缩文件 128
9.3 gzip、 bzip2、xz压缩文件及file、sort命令 129
9.3.1压缩工具 129
9.3.2 file命令 130
9.3.3 sort命令 130
第10章CentOS 7系统进程管理 133
10.1进程概述及ps管理进程 133
10.1.1什么是进程 133
10.1.2使用ps命令查看进程 134
10.2 uptime命令查看系统负载和top命令动态管理进程 137
10.2.1 uptime命令查看系统负载 137
10.2.2 top命令 138
10.2.3实战:找出系统中使用CPU最多的进程 141
10.2.4 lsof命令 142
10.2.5 pstree命令 142
10.3进程前、后台切换及优先级管理 142
10.3.1实战:恢复被挂起的进程(了解) 143
10.3.2关闭进程 143
10.3.3进程的优先级管理 144
10.4实战:使用screen执行备份命令 145
10.4.1 screen概述和安装 145
10.4.2使用screen执行备份命令 146
第11章 重定向和文件的查找 147
11.1文件描述符 147
11.2重定向的含义及管道、tee命令的使用 148
11.2.1输入重定向 149
11.2.2输出重定向 149
11.2.3 EOF的使用 149
11.2.4错误重定向 150
11.2.5 null黑洞和zero空文件 151
11.2.6&>和>&符号 152
11.2.7管道|的使用 153
11.2.8 tee命令(了解) 153
11.3查找文件的常用命令及应用 154
11.3.1查看文件常用命令 154
11.3.2 locate命令 154
11.3.3 grep命令 155
11.3.4 find命令 155
11.4命令判断——3个特殊符号“;”“&&”“‖” 159
第12章 磁盘介绍及管理 161
12.1常见接口类型磁盘讲解 161
12.1.1 SAS磁盘 161
12.1.2磁盘尺寸 162
12.1.3磁盘种类 163
12.1.4常见磁盘及存储设备介绍 163
12.2磁盘分区工具和挂载 166
12.2.1磁盘分区认识 166
12.2.2各种分区的作用 166
12.2.3使用fdisk命令管理磁盘分区 167
12.2.4使用gdisk命令管理磁盘分区 172
12.3实战:扩展Swap分区 174
第13章Linux文件系统结构 178
13.1磁盘结构 178
13.1.1磁盘结构简介 178
13.1.2簇和block 181
13.2文件系统结构 182
13.2.1文件系统 182
13.2.2 inode的内容 185
13.2.3 inode的大小 185
13.2.4目录文件 186
13.2.5设定簇和block的大小 186
13.3文件的硬链接和软链接 188
13.4实战1:使用In命令创建文件的链接 189
13.4.1创建硬链接 189
13.4.2创建软链接 190
13.4.3 inode的特殊作用 191
13.5实战2:解决磁盘有空间但创建不了文件及修复文件系统问题 192
13.6实战3:修复服务器文件系统 192
第14章RAID的原理与搭建 194
14.1 RAID概念 194
14.1.1 RAID常见的类型 194
14.1.2 RAID 0的工作原理 195
14.1.3 RAID 1的工作原理 196
14.1.4 RAID 5的工作原理 197
14.1.5嵌套RAID级别 197
14.1.6 RAID磁盘失效处理 198
14.2 RAID常用类型搭建和使用,以及注意事项 199
14.2.1 RAID的实现方式 199
14.2.2 RAID常用类型搭建 199
14.3实战:企业中硬件RAID配置 206
第15章LVM管理和SSM工具的使用 210
15.1 LVM的基本概念 210
15.1.1 LVM的工作原理 210
15.1.2 LVM常用的术语 211
15.2创建LVM的基本步骤 212
15.2.1创建并使用LVM 213
15.2.2指定PE大小 216
15.2.3 LV扩容 217
15.2.4 VG扩容 218
15.2.5缩小LVM 218
15.2.6删除LVM 220
15.3 SSM工具 221
15.3.1 SSM简介 221
15.3.2实战:为公司的邮件服务器创建基于LVM的邮件存储池 221
第16章Linux计划任务与日志的管理 223
16.1 at计划任务及crontab定时任务的使用方法 223
16.1.1 at计划任务的使用 223
16.1.2 crontab定时任务的使用 225
16.1.3系统级别的计划任务 226
16.1.4实战:常见的计划任务写法和案例 227
16.2日志的种类和记录的方式 228
16.2.1常见日志文件的作用 228
16.2.2日志的记录方式 229
16.2.3 rsyslog日志服务 230
16.2.4日志输入的规则 231
16.3实战1:自定义ssh服务的日志类型和存储位置 232
16.4实战2:日志切割及搭建远程日志收集服务器 232
16.4.1日志切割 232
16.4.2使用logrotate进行ssh日志分割 234
16.4.3配置远程日志服务器 235
16.5实战3:配置公司内网服务器每天定时自动开关机 237
第17章Linux系统启动原理及故障排除 239
17.1 CentOS 6系统启动过程及相关配置文件 239
17.1.1 CentOS 6系统启动过程 239
17.1.2 CentOS 6启动相关的配置文件 240
17.2 CentOS 7系统启动过程及相关配置文件 242
17.2.1 CentOS 7系统启动过程 242
17.2.2 Systemd运行原理(了解) 243
17.2.3运行级别的切换 246
17.2.4 grub2和grub的区别(了解) 247
17.3实战1:加密grub防止黑客通过单用户系统破解root密码 248
17.3.1基于CentOS 6进行grub加密 248
17.3.2基于CentOS 7进行grub加密 249
17.4实战2:通过liveCD进入救援模式及修复损坏的grub 250
17.5实战3:在CentOS 7下误删除grub文件后进行修复 254
第18章Linux网络管理技术 257
18.1 OSI七层参考模型和TCP/IP四层参考模型 257
18.1.1 OSI七层参考模型 257
18.1.2常见网络相关的协议 259
18.1.3 TCP和UDP的区别 259
18.1.4 TCP和UDP常用端口 260
18.1.5 IP地址分类 260
18.2 Linux网络相关的调试命令 261
18.2.1修改网卡IP地址 262
18.2.2查看端口的监听状态 264
18.2.3实战:优化TCP连接 265
18.2.4配置DNS和路由相关信息 266
18.3实战:在局域网中使用awl伪装MAC地址进行多线程SYN洪水攻击 269
18.3.1 TCP的3次握手及TCP连接状态 269
18.3.2使用tcpdump命令查看TCP的3次握手过程 270
18.3.3手动产生TCP包并抓包 272
18.3.4 awl伪装IP地址进行多线程SYN洪水攻击 273
第19章Shell脚本基础 276
19.1 Shell基本语法 276
19.1.1什么是Shell 276
19.1.2编程语言分类 276
19.1.3什么是Shell脚本 277
19.2 Shell变量及运用 278
19.2.1 Shell变量 278
19.2.2用户自定义变量 279
19.2.3命令的替换,使用“$()”或反引号 279
19.2.4命令的嵌套使用,使用“$($()” 280
19.2.5 Shell中单引号和双引号的区别 281
19.2.6删除变量 282
19.2.7环境变量 282
19.2.8设置PATH环境变量 283
19.2.9 Shell位置变量 284
19.2.10特殊变量 284
19.3数学运算 286
19.3.1 expr命令 286
19.3.2使用“$(()” 286
19.4实战:升级系统中的Java版本到Java 1.8版本 287
第20章 条件测试语句和流程控制语句if的使用 289
20.1 read命令从键盘读取变量的值 289
20.1.1 read命令介绍 289
20.1.2 read常见用法及参数 290
20.2流程控制语句if 292
20.2.1单分支if语句 292
20.2.2双分支if语句 293
20.2.3多分支if语句 294
20.3 test测试命令及数值比较 295
20.3.1数值比较 295
20.3.2字符串比较 296
20.3.3文件比较 298
20.4流程控制过程中和Shell中的通配符 299
20.4.1逻辑判断 299
20.4.2 Shell中的通配符 302
20.5实战:3个shell脚本实战 302
20.5.1实战1:编写脚本检查服务器运行状态 302
20.5.2实战2:根据学生的成绩判断学生的优劣 303
20.5.3实战3:定时备份数据 303
第21章 流程控制语句 305
21.1 case语句 305
21.2 for循环语句 307
21.3 while循环语句和循环嵌套 310
21.3.1 while循环语句 310
21.3.2嵌套循环 312
21.4实战:3个Shell脚本实战 312
21.4.1实战1:将/opt目录下所有的日志文件全部自动打包 312
21.4.2实战2:找出192.168.1.1~192.168.1.10网段中服务器己经关机的IP地址 313
21.4.3实战3:批量创建账号并生成随机密码 313
第22章 跳出循环、shift参数左移命令及函数的使用 314
22.1跳出循环 314
22.2 shift参数左移命令 317
22.3函数的使用 317
22.3.1函数创建与调用 317
22.3.2函数的使用 318
22.3.3返回值 318
22.3.4把函数返回值赋给变量 319
22.3.5函数的参数传递 319
22.3.6函数中变量的处理 320
22.4实战:自动备份MySQL数据库脚本 321
第23章expect、正则表达式及sed、 cut命令的使用 323
23.1 expect实现无交互登录 323
23.2正则表达式的使用 325
23.3 sed流编辑器 326
23.3.1 sed简介 326
23.3.2 sed命令简单使用 327
23.3.3 sed选项及参数 327
23.4 cut命令 331
23.4.1 cut命令常用参数 331
23.4.2 cut命令使用示例 332
23.5实战:bash脚本语法检查和查看详细的执行过程 332
第24章 Shell中色彩处理和awk使用技巧 334
24.1 Shell中的色彩处理 334
24.1.1 echo命令 334
24.1.2 echo命令的控制选项 334
24.1.3常见Shell脚本输出的文字颜色和背景颜色 335
24.2 awk基本应用 335
24.2.1 awk概念及处理机制 335
24.2.2 awk实例演示 338
24.2.3关系运算符的使用 338
24.3 awk高级应用 340
24.3.1 awk高级应用命令使用格式 340
24.3.2行范围匹配 341
24.3.3 awk修饰符 345
24.4实战:Shell脚本实战——检查服务器是否受到DDoS攻击 346