第1章 Linux系统 1
1.1 操作系统 1
1.2 UNIX 2
1.3 自由软件与开源软件 3
1.3.1 自由软件运动 3
1.3.2 开源协议 3
1.4 Linux系统的起源 4
1.5 虚拟机 4
1.5.1 虚拟机的概念 4
1.5.2 虚拟机的性能 4
1.6 安装准备工作 5
1.6.1 VMware的下载 5
1.6.2 RHEL 9镜像的下载 5
1.7 安装系统 5
1.7.1 虚拟机安装 5
1.7.2 安装RHEL 9 8
1.8 本章小结 13
第2章 Shell命令 14
2.1 Shell和Bash 14
2.1.1 Linux哲学思想 14
2.1.2 Shell 15
2.1.3 Bash 16
2.2 Bash用法 16
2.2.1 命令行 16
2.2.2 通配符 16
2.2.3 别名 18
2.2.4 命令自动补齐 19
2.2.5 管道 20
2.2.6 内置命令和外部命令 20
2.3 目录相关命令 21
2.3.1 Linux目录结构 21
2.3.2 相对路径和绝对路径 22
2.3.3 目录操作命令 22
2.4 文件相关命令 25
2.4.1 文件分类 25
2.4.2 创建文件命令 26
2.4.3 查看文件命令 27
2.4.4 文件内容操作 30
2.4.5 文件编辑命令 35
2.4.6 文件查找命令 39
2.5 上传与下载命令 41
2.5.1 scp与sftp命令 41
2.5.2 rsync命令 42
2.5.3 wget命令 43
2.6 打包与压缩命令 43
2.6.1 常见压缩文件扩展名 43
2.6.2 tar命令 43
2.7 重定向 45
2.8 帮助文档的使用 46
2.8.1 help命令与--help参数 46
2.8.2 man命令 47
2.8.3 info命令 48
2.9 本章小结 49
第3章 Vim编辑器 50
3.1 Vi编辑器 50
3.2 Vi与Vim 51
3.3 Vim的安装 51
3.4 Vim的工作模式 51
3.5 启动和退出 52
3.6 编辑和保存 53
3.7 移动光标 53
3.8 文本编辑命令 54
3.9 查找和替换 55
3.10 编辑多个文件 55
3.11 本章小结 57
第4章 磁盘与文件系统 58
4.1 文件系统概述 58
4.1.1 硬盘接口 59
4.1.2 硬盘设备命名规则 60
4.1.3 硬盘分区 61
4.2 文件系统分类 61
4.2.1 文件系统类型 62
4.2.2 文件系统查看命令 62
4.3 硬盘管理 63
4.3.1 硬盘查看命令 63
4.3.2 硬盘分区 64
4.3.3 格式化分区 67
4.3.4 分区的挂载和卸载 67
4.4 磁盘配额管理 68
4.5 逻辑卷管理 73
4.5.1 逻辑卷 73
4.5.2 逻辑卷的用法 74
4.6 RAID磁盘阵列管理 78
4.6.1 磁盘阵列的原理 78
4.6.2 磁盘阵列的优缺点 78
4.6.3 RAID级别 78
4.6.4 应用示例 80
4.7 本章小结 84
第5章 软件安装和卸载 85
5.1 软件包概述 85
5.1.1 源码包 85
5.1.2 二进制包 86
5.2 源码包的安装 86
5.2.1 源码包 86
5.2.2 安装示例 87
5.2.3 源码包的不同格式 89
5.3 RPM包的安装 91
5.3.1 RPM包管理器 91
5.3.2 软件包命名格式 92
5.3.3 RPM包的用法 92
5.4 YUM本地源配置 96
5.4.1 本地源配置 96
5.4.2 YUM软件管理 98
5.5 YUM网络源配置 100
5.5.1 网络源配置 100
5.5.2 获取网络源的Baseurl链接地址 102
5.6 DNF包管理工具 104
5.6.1 DNF工具 104
5.6.2 DNF软件源配置 105
5.6.3 DNF命令 105
5.7 本章小结 109
第6章 用户和群组 110
6.1 用户和群组的概念 110
6.1.1 用户 110
6.1.2 群组 111
6.1.3 用户和群组的对应关系 111
6.2 用户的配置文件 111
6.2.1 passwd文件 112
6.2.2 shadow文件 113
6.2.3 pwconv命令 114
6.2.4 pwck命令 114
6.3 群组配置文件 115
6.3.1 group文件 115
6.3.2 gshadow文件 116
6.4 用户管理命令 117
6.4.1 useradd命令 117
6.4.2 usermod命令 118
6.4.3 passwd命令 118
6.4.4 userdel命令 119
6.5 群组管理命令 119
6.5.1 groupadd命令 120
6.5.2 groupmod命令 120
6.5.3 groupdel命令 121
6.6 批量创建用户 121
6.6.1 newusers+chpasswd批量添加用户 121
6.6.2 通过Shell程序添加用户 122
6.7 本章小结 123
第7章 进程和内存管理 124
7.1 运行级别 124
7.2 系统启动过程 125
7.3 内存管理 126
7.3.1 内存分布 127
7.3.2 虚拟内存 128
7.4 内存管理 129
7.4.1 查看内存信息 129
7.4.2 查看虚拟内存情况 130
7.4.3 内存使用 132
7.5 交换分区Swap 133
7.5.1 创建交换分区 133
7.5.2 创建交换文件 134
7.5.3 移除交换分区 135
7.6 进程管理 135
7.6.1 ps查看进程 136
7.6.2 uptime命令 137
7.6.3 top命令 137
7.6.4 pstree命令 138
7.6.5 lsof命令 139
7.7 进程优先级 139
7.8 作业管理 141
7.8.1 后台运行作业 142
7.8.2 jobs命令 142
7.8.3 fg命令 143
7.8.4 bg命令 143
7.8.5 kill命令 144
7.9 计划任务 144
7.9.1 at命令 144
7.9.2 cron命令 146
7.10 本章小结 149
第8章 权限管理 150
8.1 Linux权限概述 150
8.2 文件与目录权限 151
8.2.1 用户和组 151
8.2.2 文件权限 152
8.3 默认权限umask 154
8.4 ACL权限 155
8.4.1 为何需要ACL权限 155
8.4.2 ACL的作用 156
8.4.3 检查是否支持ACL 156
8.4.4 设置ACL权限 156
8.4.5 更改 ACL 权限 157
8.4.6 删除 ACL 权限 157
8.5 mask权限 158
8.6 特殊权限位 159
8.6.1 suid权限 159
8.6.2 sgid权限 160
8.6.3 sticky权限 161
8.7 su和sudo权限 162
8.7.1 su命令 162
8.7.2 sudo命令 162
8.8 权限对指令的影响 163
8.8.1 目录权限和指令 163
8.8.2 文件权限和指令 165
8.8.3 权限示例 165
8.9 SELinux权限 166
8.9.1 SELinux 166
8.9.2 SELinux的模式 167
8.9.3 安全上下文格式 168
8.9.4 SELinux命令 169
8.9.5 应用示例 170
8.10 本章小结 173
第9章 网络管理和防火墙配置 175
9.1 网络管理命令 175
9.1.1 网络接口 175
9.1.2 路由表 176
9.1.3 网络状态 177
9.1.4 socket信息 177
9.1.5 ping命令 178
9.1.6 跟踪数据包 178
9.2 虚拟机联网 179
9.2.1 三种连接模式 179
9.2.2 虚拟机联网 181
9.3 配置静态地址 183
9.3.1 查找IP、子网掩码、网关与DNS 183
9.3.2 使用nmcli命令配置 184
9.3.3 使用nmtui程序配置 185
9.3.4 直接修改配置文件 185
9.4 NetworkManager 186
9.5 防火墙原理 187
9.6 firewalld防火墙 188
9.7 firewalld配置命令 188
9.7.1 firewalld区域 188
9.7.2 firewalld配置命令简介 189
9.8 firewalld配置案例 191
9.9 iptables防火墙 195
9.10 iptables命令 197
9.10.1 iptables安装 197
9.10.2 iptables命令简介 197
9.11 iptables配置案例 201
9.12 本章小结 203
第10章 远程登录服务器 204
10.1 远程登录场景 204
10.2 远程登录工具 205
10.3 telnet登录 205
10.4 ssh登录 207
10.5 ssh免密登录 208
10.6 利用secureCRT登录 210
10.7 secureCRT免密登录 214
10.8 远程桌面登录 216
10.9 本章小结 220
第11章 Web服务器搭建 221
11.1 Apache安装 221
11.2 Apache配置 223
11.2.1 端口修改 224
11.2.2 更改默认起始页 225
11.2.3 更改默认目录 227
11.3 Apache访问控制 228
11.3.1 基于IP的访问控制 228
11.3.2 用户认证 229
11.4 Apache虚拟主机 231
11.5 Apache的SSL配置 232
11.6 Nginx服务器 236
11.7 Nginx功能 237
11.7.1 代理服务器 237
11.7.2 负载均衡 237
11.7.3 动静分离 237
11.8 WordPress 237
11.9 综合案例 238
11.10 本章小结 245
第12章 KVM虚拟化配置 246
12.1 虚拟化 246
12.2 KVM技术 247
12.2.1 KVM 247
12.2.2 QEMU 249
12.3 安装KVM虚拟机 249
12.4 虚拟机网络 254
12.4.1 NAT模式 254
12.4.2 桥接模式 257
12.5 克隆虚拟机 259
12.5.1 利用图形界面克隆 259
12.5.2 利用Virt-clone工具克隆 260
12.5.3 利用虚拟机配置文件克隆 261
12.6 冷迁移 262
12.7 热迁移 264
12.8 本章小结 268
第13章 Docker容器配置 269
13.1 容器技术 269
13.2 Docker 270
13.3 Docker的安装 271
13.4 Docker的管理 274
13.4.1 Docker相关命令 274
13.4.2 镜像相关命令 274
13.4.3 容器相关命令 275
13.5 利用容器部署LNMP环境 277
13.5.1 Nginx部署 278
13.5.2 PHP部署 279
13.5.3 MySQL部署 280
13.6 容器迁移备份 282
13.6.1 容器保存为镜像 282
13.6.2 镜像备份 283
13.6.3 镜像恢复 283
13.7 镜像制作 283
13.7.1 Dockerfile文件 283
13.7.2 Dockerfile命令 283
13.7.3 构建案例 284
13.8 本章小结 285
第14章 Linux日志系统 286
14.1 日志分类 286
14.2 日志格式 287
14.2.1 rsyslog配置格式 287
14.2.2 日志采集格式 289
14.3 日志查看 290
14.3.1 less命令 290
14.3.2 dmesg命令 290
14.3.3 tail命令 290
14.4 日志远程同步 291
14.5 日志管理命令journalctl 291
14.5.1 journalctl服务 291
14.5.2 用journald永久保存日志 292
14.6 日志轮替 293
14.6.1 日志轮替文件命名 293
14.6.2 日志轮替配置文件 293
14.6.3 日志轮替文件配置参数 295
14.6.4 自定义日志轮替 295
14.7 本章小结 296
第15章 综合项目实训 297
15.1 安溪华侨职校校园网 297
15.2 模拟校园网 298
15.3 实训一 网络搭建及配置 299
15.4 实训二 DHCP服务器的搭建 303
15.5 实训三 DNS服务器的搭建 305
15.6 实训四 Web服务器的搭建 308
15.7 实训五 FTP服务器的搭建 309
15.8 实训六 E-mail服务器的搭建 310
15.9 本章小结 316
参考文献 317