目录 第1章搭建与测试Linux服务器1 1.1认识Linux操作系统1 1.1.1Linux系统的历史1 1.1.2Linux的版权问题2 1.1.3理解Linux体系结构2 1.1.4认识Linux的版本3 1.1.5Red Hat Enterprise Linux 84 1.2使用VM虚拟机安装RHEL 85 1.2.1安装配置VM虚拟机5 1.2.2安装配置RHEL 8操作系统12 1.3重置root管理员密码21 1.4systemd初始化进程22 1.5启动Shell24 1.6配置常规网络25 1.6.1使用nmtui修改主机名25 1.6.2使用系统菜单配置网络26 1.6.3使用图形界面配置网络28 1.6.4使用nmcli命令配置网络31 1.7项目实录: Linux系统安装与基本配置34 1.8练习题35 第2章使用常用的Linux命令37 2.1Linux命令基础37 2.1.1了解Linux命令特点37 2.1.2后台运行程序38 2.2熟练使用文件目录类命令38 2.2.1熟练使用浏览目录类命令38 2.2.2熟练使用浏览文件类命令39 2.2.3熟练使用目录操作类命令41 2.2.4熟练使用cp命令42 2.2.5熟练使用文件操作类命令44 2.3熟练使用系统信息类命令52 2.4熟练使用进程管理类命令54Linux系统管理(RHEL 8 /CentOS 8)(微课版)目录2.5熟练使用其他常用命令58 2.6项目实录: 使用Linux基本命令61 2.7练习题62 第3章安装与管理软件包64 3.1软件包相关知识概述64 3.1.1开放源代码、编译器与可执行文件64 3.1.2make与configure65 3.1.3Tarball软件 66 3.1.4安装与升级软件66 3.1.5RPM 与 DPKG67 3.1.6RPM与SRPM 67 3.1.7i386、i586、i686、noarch和x86_64 68 3.2使用RPM 软件管理程序70 3.2.1安装软件70 3.2.2RPM 升级、更新与查询 (upgrade/freshen/query) 73 3.2.3RPM实践练习77 3.2.4RPM反安装与重建数据库(erase/rebuilddb) 78 3.3使用yum和dnf79 3.3.1yum软件仓库79 3.3.2BaseOS和AppStream 80 3.3.3修改容器产生的问题与解决方法82 3.3.4利用dnf进行查询、安装、升级与移除82 3.4管理Tarball86 3.4.1使用源代码管理软件所需要的基础软件87 3.4.2Tarball安装的基本步骤87 3.4.3Tarball软件安装的建议事项(如何删除与升级)88 3.4.4实例90 3.5项目实录: 安装和管理软件包92 3.6练习题92 第4章Shell与vim编辑器94 4.1Shell94 4.1.1Shell概述94 4.1.2Shell环境变量96 4.1.3正则表达式99 4.1.4输入/输出重定向与管道101 4.1.5Shell脚本104 4.2vim编辑器107 4.3项目实录114 项目实录一: Shell编程114 项目实录二: vim编辑器114 4.4练习题115 第5章用户和组管理117 5.1理解用户账户和组117 5.2理解用户账户文件和组文件118 5.2.1理解用户账户文件118 5.2.2理解组文件120 5.3管理用户账户121 5.3.1新建用户121 5.3.2设置用户账户口令122 5.3.3维护用户账户123 5.4管理组126 5.4.1维护组账户126 5.4.2为组添加用户126 5.5使用su命令127 5.6使用常用的账户管理命令128 5.7企业实战与应用——账户管理实例129 5.8项目实录: 管理用户和组130 5.9练习题130 第6章文件系统和磁盘管理133 6.1了解文件系统133 6.1.1认识文件系统133 6.1.2理解Linux文件系统目录结构134 6.1.3理解绝对路径与相对路径136 6.1.4Linux文件权限管理136 6.2管理磁盘141 6.2.1MBR硬盘与GPT硬盘141 6.2.2物理设备的命名规则142 6.2.3硬盘分区143 6.2.4为虚拟机添加需要的硬盘144 6.2.5硬盘的使用规划146 6.2.6使用硬盘管理工具fdisk146 6.2.7使用其他硬盘管理工具150 6.3在Linux中配置软RAID154 6.3.1常用的RAID154 6.3.2实现RAID的典型案例156 6.4LVM逻辑卷管理器159 6.4.1LVM概述159 6.4.2实现LVM的典型案例160 6.5硬盘配额配置企业案例(XFS文件系统)164 6.5.1环境需求164 6.5.2解决方案165 6.6项目实录168 项目实录一: 文件权限管理168 项目实录二: 文件系统管理169 项目实录三: LVM逻辑卷管理器169 项目实录四: 动态磁盘管理170 6.7练习题170 第7章配置防火墙和SELinux173 7.1防火墙概述173 7.1.1防火墙的特点173 7.1.2iptables与firewalld174 7.1.3NAT基础知识174 7.1.4SELinux176 7.2案例设计及准备177 7.3使用firewalld服务177 7.3.1使用终端管理工具178 7.3.2使用图形管理工具182 7.4管理SELinux185 7.4.1设置SELinux的模式185 7.4.2设置SELinux安全上下文186 7.4.3管理布尔值187 7.5NAT(SNAT和DNAT)企业实战案例189 7.5.1企业环境和需求189 7.5.2解决方案190 7.6项目实录: 配置与管理firewalld防火墙194 7.7练习题195 第8章配置与管理代理服务器197 8.1代理服务器概述197 8.1.1代理服务器的工作原理197 8.1.2代理服务器的作用198 8.2案例设计与准备198 8.2.1案例设计198 8.2.2项目准备199 8.3安装与配置squid服务器199 8.3.1安装、启动、停止与随系统启动squid服务199 8.3.2配置squid服务器200 8.4企业实战与应用203 8.4.1企业环境和需求203 8.4.2手动设置代理服务器解决方案204 8.4.3客户端不需要配置代理服务器的解决方案206 8.4.4反向代理的解决方案208 8.4.5几种错误的解决方案208 8.5项目实录210 8.6练习题210 8.7综合案例分析211 第9章Linux系统监视与进程管理212 9.1知识准备212 9.1.1进程212 9.1.2子进程与父进程214 9.1.3系统或网络服务: 常驻在内存的进程215 9.1.4Linux 的多用户、多任务环境215 9.1.5什么是作业管理216 9.2使用系统监视217 9.2.1w命令217 9.2.2who命令 217 9.2.3系统监控命令top 218 9.3作业管理223 9.3.1作业的后台管理223 9.3.2脱机管理226 9.4进程管理227 9.4.1进程的查看227 9.4.2进程的管理231 9.4.3管理进程优先级233 9.5查看系统资源235 9.6项目实录240 9.7练习题241 第10章使用gcc和make调试程序242 10.1了解程序的调试242 10.1.1编译时错误 242 10.1.2运行时错误242 10.1.3逻辑错误和语义错误243 10.2使用传统程序语言进行编译243 10.2.1安装gcc243 10.2.2单一程序: 打印 Hello World 245 10.2.3主程序、子程序链接、子程序的编译 246 10.2.4调用外部函数库: 加入链接的函数库 248 10.2.5gcc的简易用法(编译、参数与链接)249 10.3使用make进行宏编译250 10.3.1为什么要用make250 10.3.2了解makefile的基本语法与变量 253 10.4练习题255 参考文献256