目 录 第1章 Linux操作系统概述 1.1 Linux概述 2 1.1.1 GNU计划与Linux 2 1.1.2 Linux的特点 3 1.1.3 Linux的应用 4 1.2 Linux系统的组成与发行版 5 1.2.1 Linux系统的组成 5 1.2.2 Linux发行版与衍生版 6 1.2.3 常见Linux发行版及特色 6 1.2.4 Linux的版本号 8 1.3 Red Hat系列Linux 10 1.3.1 Red Hat Linux 10 1.3.2 RHEL 10 1.3.3 Fedora Linux 11 1.3.4 CentOS Linux 12 1.3.5 CentOS Stream Linux 12 1.4 认识CentOS Stream 13 1.4.1 CentOS Stream的特点 13 1.4.2 CentOS Stream 9的新特性 14 1.4.3 CentOS Stream的下载 15 1.5 安装CentOS Stream 16 1.5.1 环境部署工具 16 1.5.2 配置CentOS Stream的安装环境 17 1.5.3 安装CentOS Stream 19 动手练 创建CentOS Stream 9安装介质 22 知识延伸:熟悉CentOS Stream桌面环境 22 第2章 命令基础 2.1 终端窗口 26 2.1.1 终端窗口的演变 26 2.1.2 Shell环境简介 28 2.1.3 启动终端窗口 28 动手练 设置终端窗口快捷按钮 29 2.1.4 终端窗口的常见设置和使用 30 2.2 命令的基础用法 32 2.2.1 命令的语法格式 32 2.2.2 获取命令的帮助信息 33 动手练 使用“--help”查看帮助信息 35 2.2.3 命令的补全功能 36 2.2.4 使用root权限 36 2.2.5 历史命令 37 2.2.6 连续执行命令 37 2.2.7 管道 38 2.2.8 重定向 39 动手练 命令别名 40 2.3 软件的安装与卸载 41 2.3.1 认识软件源 41 2.3.2 更改软件源及软件 42 2.3.3 使用RPM管理软件包 45 2.3.4 使用YUM工具管理软件包 47 动手练 卸载软件 49 2.3.5 使用DNF工具管理软件包 50 动手练 使用dnf命令安装QQ的RPM包 53 知识延伸:使用软件商店安装及管理软件 54 第3章 文件与文件系统 3.1 认识文件系统 57 3.1.1 文件系统简介 57 3.1.2 文件系统的类型 57 3.1.3 Linux文件系统特点 59 3.1.4 Linux文件类型 60 3.2 Linux目录 61 3.2.1 Linux的目录结构与功能 61 3.2.2 认识路径 64 3.2.3 查看与切换目录 65 动手练 显示文件或文件夹的详细信息 66 3.2.4 目录的常见操作 67 动手练 创建目录及子目录 67 动手练 删除非空目录 70 3.3 Linux文件 71 3.3.1 Linux中的文件命名规则 71 3.3.2 文件的创建与查看 71 3.3.3 文件的管理 75 动手练 创建文件及目录的链接 78 3.3.4 文件的搜索与筛选 78 3.4 文件的编辑 81 3.4.1 认识文本编辑器 81 3.4.2 vim的工作模式 81 3.4.3 文档的编辑操作 83 3.4.4 其他编辑器 86 3.5 文件的归档与压缩 87 3.5.1 认识归档与压缩 87 3.5.2 常见压缩工具的使用 88 动手练 bzip2的压缩与解压 89 3.5.3 归档压缩 89 动手练 解压与解包 90 知识延伸:ZIP与RAR格式的压缩与解压 90 第4章 用户与权限 4.1 Linux的用户与组 94 4.1.1 用户与用户账户 94 4.1.2 用户账户的配置文件 95 4.1.3 用户组与组账户 97 4.1.4 组账户配置文件 98 4.1.5 默认配置文件 99 4.2 用户与用户组的管理 101 4.2.1 用户的管理 101 动手练 强制更改及删除用户密码 107 4.2.2 用户的切换 108 动手练 切换到root用户,并执行root命令 109 4.2.3 用户组的管理 109 动手练 删除用户组 111 4.3 文件及目录的权限 112 4.3.1 查看文件及目录权限 112 4.3.2 认识权限的含义 112 4.3.3 修改文件及目录的归属 114 动手练 同时修改文件及目录的所属 116 4.3.4 修改文件及目录的权限 117 4.3.5 修改默认权限 118 知识延伸:提升普通用户的权限 120 第5章 磁盘配置与管理 5.1 磁盘简介 122 5.1.1 认识磁盘 122 5.1.2 硬盘的分区及命名规则 123 5.1.3 磁盘及分区信息的查看 124 动手练 通过parted命令查看磁盘信息 126 5.2 磁盘的分区操作 126 5.2.1 添加硬盘 127 5.2.2 分区命令 127 5.2.3 分区操作 128 动手练 删除MBR分区并创建GPT分区表 131 5.3 创建分区文件系统及格式化 132 5.3.1 为分区创建文件系统并格式化 132 动手练 创建ext4与ntfs文件系统并格式化 134 5.3.2 检查文件系统 135 5.4 挂载与卸载 136 5.4.1 了解挂载与卸载 136 5.4.2 查看分区的挂载信息 136 5.4.3 文件系统的挂载 137 5.4.4 文件系统的卸载 138 动手练 通过挂载点卸载文件系统 138 5.4.5 文件系统的自动挂载 139 5.5 创建与管理逻辑卷 140 5.5.1 认识逻辑卷 140 5.5.2 部署逻辑卷 141 5.5.3 管理逻辑卷 142 知识延伸:其他介质的使用 144 第6章 网络与网络服务 6.1 网络的基本配置 147 6.1.1 网络信息的查看 147 动手练 使用ifconfig查看网卡信息 149 6.1.2 网络参数的修改 149 动手练 添加及删除地址 153 6.1.3 网络控制命令的使用 155 6.2 常见网络服务的搭建 156 6.2.1 DHCP服务的搭建与使用 156 6.2.2 Samba服务的搭建与访问 158 动手练 提高Samba服务的安全性 160 6.2.3 FTP服务的搭建与访问 162 动手练 使用更安全的账户登录 165 6.2.4 NFS服务的搭建与访问 166 动手练 挂载使用NFS共享 167 6.2.5 DNS服务的搭建与使用 168 动手练 使用其他方式验证DNS服务器 170 6.2.6 Web服务的搭建与使用 171 知识延伸:MySQL数据库的搭建 173 第7章 综合环境的搭建与应用 7.1 LNMP的部署 176 7.1.1 认识LNMP 176 7.1.2 LNMP一键部署工具 176 动手练 检测运行环境 179 7.1.3 虚拟主机 180 动手练 删除默认目录 182 7.1.4 LNMP部署工具的命令及配置 183 7.1.5 在LNMP环境中搭建网站 184 动手练 安装WordPress 187 7.2 Docker容器 189 7.2.1 认识Docker 189 7.2.2 部署Docker 192 7.2.3 Podman技术 194 动手练 创建容器 195 7.2.4 部署Nginx容器 195 动手练 使用命令修改文件 197 知识延伸:Java环境的搭建 198 第8章 安全与管理 8.1 进程管理 200 8.1.1 认识进程 200 8.1.2 进程状态监测 202 8.1.3 进程的管理 204 动手练 终止进程 208 8.2 Linux常见安全技术 209 8.2.1 防火墙简介 209 8.2.2 iptables简介 211 8.2.3 SELinux简介 214 8.3 远程管理Linux 216 8.3.1 使用SSH远程管理Linux 216 动手练 基于密码的SSH远程连接 217 动手练 使用第三方的SSH客户端远程登录服务器 220 8.3.2 使用RDP远程管理Linux 221 8.3.3 使用第三方工具进行远程桌面连接 222 8.4 系统状态的监控 224 8.4.1 系统日志 225 8.4.2 管理任务计划 227 8.4.3 服务的查看与管理 228 8.4.4 系统资源的监控 229 知识延伸:Linux杀毒工具的使用 231 第9章 Shell编程 9.1 Shell编程简介 235 9.1.1 认识Shell编程 235 9.1.2 认识Shell脚本 235 9.1.3 Shell脚本的运行 236 9.2 Shell编程基础 237 9.2.1 Shell变量 237 9.2.2 变量的定义与访问 239 9.2.3 Shell数组 241 9.2.4 Shell表达式 242 9.3 Shell控制结构 242 9.3.1 分支结构:if语句 242 9.3.2 分支结构:case语句 243 9.3.3 循环结构:for语句 244 9.3.4 循环结构:while语句和until语句 245 9.4 Shell函数 246 9.4.1 Shell函数的定义 247 9.4.2 Shell函数的调用 247 9.4.3 Shell函数的返回值 248 9.5 Shell的条件测试 250 9.5.1 数值比较运算符 250 9.5.2 逻辑运算符 251 9.5.3 字符串比较运算符 251 9.5.4 文件测试运算符 252 知识延伸:CentOS Stream 9编译程序 253