本书从零基础开始讲解,系统介绍了RHCE8的相关知识,以帮助读者快速了解及熟练掌握RHCE8的相关操作,是一本高品质的RHCE认证的学习书籍。
本书分为9篇,共35章。第1篇主要介绍基本配置;第2篇主要介绍用户及权限管理;第3篇主要介绍网络相关配置;第4篇主要介绍存储管理;第5篇主要介绍系统管理;第6篇主要介绍软件管理;第7篇主要介绍安全管理;第8篇主要介绍容器管理;第9篇主要介绍自动化管理工具ansible的使用。
本书适用于希望通过RHCE(红帽认证工程师)考试的读者学习,也可以作为培训班的教材使用。
段超飞
----------------------------
段超飞,老段工作室(网站https://www.rhce.cc)讲师,Linux Foundation授权培训导师(LFAI),云计算资深培训讲师,获取过RHCA认证、CKS认证等。拥有10年以上的教学培训经历,为近30家大型企业提供过Kubernetes、Linux培训服务,出版著作《CKA/CKAD应试指南:从Docker到Kubernetes完全攻略》。
第1篇 基本配置
第1章 安装RHEL8 2
1.1 虚拟硬件设置 3
1.2 安装虚拟机 8
1.3 登录系统 17
第2章 基本命令的使用 20
2.1 终端的使用及设置 21
2.2 输入命令的语法 23
2.3 介绍shell 26
2.3.1 tab补齐 27
2.3.2 历史命令 27
2.3.3 调整光标位置 28
2.4 用户的切换 29
作业 31
第3章 了解Linux分区和常见命令 32
3.1 路径 34
3.2 创建和删除目录 35
3.3 cd的用法 37
3.4 拷贝和剪切 38
3.5 常见命令归纳 40
3.6 重定向 46
3.7 管道 49
作业 50
第4章 获取帮助 52
4.1 whatis 53
4.2 --help选项 54
4.3 man 57
作业 58
第5章 vim编辑器 59
5.1 插入模式 60
5.2 末行模式 61
5.3 命令模式 65
作业 67
第6章 归档与压缩 68
6.1 归档 69
6.2 压缩 71
6.2.1 gzip的用法 72
6.2.2 bzip2的用法 73
6.2.3 zip的用法 73
作业 74
第7章 服务管理 75
7.1 管理服务当前状态 77
7.2 管理服务开机是否自动启动 78
7.3 判断服务名是什么 79
作业 80
第2篇 用户及权限管理
第8章 用户管理 82
8.1 基本概念 83
8.2 管理用户 84
8.2.1 创建用户 84
8.2.2 修改用户属性 86
8.3 用户的密码策略 90
8.4 用户的授权 93
8.5 重置root密码 96
作业 99
第9章 权限管理 100
9.1 所有者和所属组 101
9.2 查看及修改权限 103
9.3 用数字表示权限 105
9.4 默认权限 106
9.5 特殊权限 108
9.6 隐藏权限 113
作业 115
第10章 ACL权限 116
10.1 ACL介绍及基本用法 117
10.2 ACL的mask权限 119
10.3 设置默认权限 123
作业 125
第3篇 网络相关配置
第11章 网络配置 127
11.1 网络基础知识 128
11.1.1 IP地址 128
11.1.2 网关 129
11.1.3 DNS 129
11.2 查看网络信息 130
11.3 图形化界面修改 133
11.4 通过配置文件修改 139
11.5 命令行管理 141
11.6 主机名的设置 143
作业 145
第12章 ssh远程登录系统和远程拷贝 146
12.1 ssh的基本用法 147
12.2 打开远程图形化界面 149
12.3 ssh无密码登录 150
12.3.1 密码认证 150
12.3.2 密钥认证 150
12.4 ssh安全设置 152
12.4.1 禁用密钥登录 152
12.4.2 禁用密码登录 153
12.5 ssh限制用户 154
12.5.1 禁用root用户登录 154
12.5.2 禁用普通用户登录 155
12.6 ssh其他设置 156
12.6.1 设置ssh的默认用户 156
12.6.2 解决ssh慢的问题 157
12.7 Windows远程登录 157
12.8 远程拷贝 158
作业 160
第4篇 存储管理
第13章 硬盘管理 163
13.1 对磁盘进行分区 165
13.2 交换分区 172
作业 174
第14章 文件系统 175
14.1 了解文件系统 176
14.2 了解硬链接 177
14.3 创建文件系统 178
14.4 挂载文件系统 181
14.5 设置永久挂载 185
14.6 查找文件 186
14.7 find的用法 188
14.7.1 基于名称的查询 190
14.7.2 基于文件所有者和所属组的查询 191
14.7.3 基于文件大小的查询 192
14.7.4 基于文件时间的查询 192
14.7.5 基于文件类型的查询 193
14.7.6 基于文件权限的查询 194
14.7.7 find查找含有特殊权限位的文件 195
14.7.8 find组合查询 196
14.7.9 排除某个目录 197
14.7.10 对查询结果进行操作 197
作业 198
第15章 逻辑卷管理 199
15.1 了解逻辑卷 200
15.2 创建逻辑卷 205
15.2.1 逻辑卷的扩大 208
15.2.2 逻辑卷的缩小 211
15.2.3 恢复逻辑卷 213
15.2.4 逻辑卷的快照 214
作业 217
第16章 虚拟数据优化器VDO 218
16.1 了解什么是VDO 219
16.2 配置VDO 219
16.3 测试VDO 221
作业 223
第17章 访问NFS存储及自动挂载 224
17.1 访问NFS存储 225
17.2 自动挂载 226
作业 231
第5篇 系统管理
第18章 进程管理 234
18.1 进程介绍 235
18.2 查看进程 235
18.3 发送信号 239
18.4 进程优先级 241
作业 243
第19章 日志 245
19.1 rsyslog的配置 248
19.2 查看日志 250
作业 252
第20章 网络时间服务器 253
20.1 时间同步的必要性 254
20.2 配置时间服务器 254
20.3 配置chrony客户端 256
作业 259
第21章 计划任务 260
21.1 at 261
21.2 crontab 266
作业 271
第22章 用bash写脚本 272
22.1 通配符 273
22.2 变量 275
22.2.1 本地变量 276
22.2.2 环境变量 278
22.2.3 位置变量和预定义变量 280
22.3 返回值 282
22.4 数值运算 283
22.5 比较、对比、判断 285
22.5.1 数字的比较 285
22.5.2 字符串的比较 286
22.5.3 属性的判断 287
22.5.4 使用连接符 288
22.6 if判断语句 289
22.7 for循环语句 292
22.8 while循环语句 292
作业 295
第6篇 软件管理
第23章 用rpm管理软件 297
23.1 rpm查询 299
23.2 rpm安装及卸载 301
23.3 软件包的更新 303
23.4 rpm验证 304
作业 306
第24章 用yum/dnf管理软件包 307
24.1 yum架构介绍 308
24.2 用光盘搭建yum源 309
24.3 创建私有仓库 312
24.4 yum客户端的配置 313
24.5 yum的基本使用 315
24.5.1 查询 316
24.5.2 安装与卸载软件包 317
24.5.3 下载 319
24.5.4 查询缺失命令 320
24.6 组的使用 321
24.7 使用第三方yum源 322
作业 323
第7篇 安全管理
第25章 防火墙 325
25.1 了解firewalld 326
25.2 firewalld的基本配置 326
25.3 配置firewalld的规则 328
25.3.1 icmp-blocks 329
25.3.2 services 331
25.3.3 ports 332
25.4 富规则 335
作业 338
第26章 SELinux介绍 339
26.1 了解上下文 340
26.2 端口上下文 344
26.3 了解SELinux的布尔值 345
26.4 了解SELinux的模式 348
作业 349
第8篇 容器管理
第27章 使用podman管理容器 351
27.1 安装及配置podman 353
27.2 镜像管理 354
27.2.1 镜像的命名 354
27.2.2 对镜像重新做标签 355
27.2.3 删除镜像 356
27.2.4 查看镜像的层结构 356
27.2.5 导出和导入镜像 357
27.3 创建容器 358
27.3.1 创建一个简单的容器 358
27.3.2 容器的生命期 359
27.3.3 创建临时容器 361
27.3.4 指定容器中运行的命令 362
27.3.5 创建容器时使用变量 362
27.3.6 把容器的端口映射到物理机上 363
27.4 实战练习——创建MySQL的容器 364
27.5 管理容器的命令 366
27.5.1 在容器中执行指定的命令 366
27.5.2 物理机和容器互相拷贝文件 366
27.5.3 关闭、启动、重启容器 367
27.5.4 查看容器中的输出 368
27.5.5 数据卷的使用 368
27.6 使用普通用户对容器进行管理 371
作业 373
第9篇 自动化管理工具ansible的使用
第28章 ansible的使用 375
28.1 安装ansible 376
28.2 编写ansible.cfg和清单文件 378
28.3 ansible的基本用法 381
作业 382
第29章 常用模块的使用 383
29.1 shell模块 384
29.2 文件管理的file模块 385
29.3 copy和fetch模块 387
29.4 yum_repository模块 389
29.5 使用yum模块管理软件包 391
29.6 使用service模块管理服务 392
29.7 使用parted模块对硬盘分区 393
29.8 使用filesystem模块格式化 395
29.9 使用mount模块挂载文件系统 396
29.10 使用lvg模块对卷组进行管理 397
29.11 使用lvol模块管理逻辑卷 398
29.12 使用firewalld模块管理防火墙 399
29.13 替换模块replace 401
29.14 替换模块lineinfile 402
29.15 打印模块debug 403
29.16 使用script模块在远端执行脚本 404
29.17 使用group模块对组进行管理 405
29.18 使用user模块对用户进行管理 405
29.19 使用get_url模块下载文件 407
29.20 使用setup模块获取被管理主机信息 407
作业 409
第30章 playbook的使用 410
30.1 playbook的写法 411
30.2 错误处理 415
30.2.1 ignore_errors 415
30.2.2 fail语句 417
作业 418
第31章 变量的使用 419
31.1 手动定义变量 420
31.2 变量文件 422
31.3 字典变量 423
31.4 列表变量 424
31.5 数字变量的运算 427
31.6 注册变量 428
31.7 facts变量 430
31.8 内置变量groups 431
31.9 内置变量hostvars 433
31.10 内置变量inventory_hostname 434
31.11 变量的过滤器 436
31.11.1 数字类型 437
31.11.2 列表 439
31.11.3 设置变量默认值default 440
31.11.4 字符串相关 441
31.11.5 加密相关 442
作业 445
第32章 控制语句 446
32.1 判断语句when 447
32.1.1 when判断中>、<、!=的使用 447
32.1.2 when判断中in的用法 451
32.1.3 when判断中is的用法 453
32.2 判断语句block-rescue 455
32.3 循环语句 459
作业 463
第33章 jinja2模板的使用 464
33.1 if判断 468
33.2 for循环 471
33.3 handlers 473
作业 476
第34章 角色 477
34.1 了解角色 478
34.2 手把手创建一个角色 479
34.3 使用角色 482
34.4 系统自带的角色 484
34.5 修改端口上下文 486
34.6 使用ansible Galaxy 487
作业 490
第35章 ansible加密 491
35.1 对整个脚本进行加密 492
35.2 查看文件内容 493
35.3 运行playbook 493
35.4 对脚本进行解密 494
35.5 使用密码文件 495
35.6 对单个字符串进行加密 496
作业 498