第1章 初识Linux 1
1.1 什么是Linux 1
1.2 Linux崛起 1
1.3 Linux的发行版 2
1.4 Red Hat Enterprise Linux的优势 3
1.5 如何获得Red Hat Enterprise Linux 4
小结 4
习题 5
第2章 安装Linux操作系统 6
2.1 安装前的准备工作 6
2.1.1 硬件需求 6
2.1.2 光盘启动安装 8
2.2 安装Red Hat Enterprise Linux 8
2.3 登录Red Hat Enterprise Linux 13
2.3.1 初始设置 13
2.3.2 图形化登录 14
2.3.3 虚拟控制台登录 14
2.3.4 远程登录 15
2.3.5 图形化环境 15
2.4 虚拟机安装Red Hat Enterprise Linux 15
2.4.1 下载并安装VMware Workstation 12 15
2.4.2 添加新的虚拟机 17
2.4.3 在虚拟机中安装Red Hat Enterprise Linux 19
2.5 卸载Red Hat Enterprise Linux 19
2.5.1 从硬盘上卸载Red Hat Enterprise Linux 19
2.5.2 从虚拟机上删除Red Hat Enterprise Linux 20
小结 21
习题 21
第3章 图形界面与命令行 22
3.1 Linux桌面 22
3.1.1 X Window系统 22
3.1.2 KDE桌面 23
3.1.3 GNOME桌面 24
3.1.4 Red Hat Enterprise Linux的桌面环境 24
3.2 Linux字符界面 25
3.2.1 认识Linux Shell 25
3.2.2 登录终端控制台 26
3.2.3 使用Linux控制台 27
3.2.4 在控制台里使用帮助——man命令 29
3.2.5 在控制台里使用帮助——info命令及其他 31
3.3 使用Linux的注意事项 32
小结 33
习题 33
上机练习 33
第4章 文件管理与常用命令 35
4.1 Linux文件基础知识 35
4.1.1 Linux常用文件类别 35
4.1.2 Linux目录结构概述 36
4.1.3 Linux目录常见概念 36
4.1.4 Linux系统目录及说明 37
4.2 文件与目录基本操作 39
4.2.1 显示文件内容命令——cat、more、less、head、tail 39
4.2.2 文件内容查询命令——grep、egrep、fgrep 42
4.2.3 文件查找命令——find、locate 43
4.2.4 文本处理命令——sort、uniq 45
4.2.5 文件内容统计命令——wc 47
4.2.6 文件比较命令——comm、diff 47
4.2.7 文件的复制、移动和删除命令——cp、mv、rm 49
4.2.8 文件链接命令——ln 51
4.2.9 目录的创建与删除命令——mkdir、rmdir 52
4.2.10 改变工作目录、显示路径及显示目录内容命令——cd、pwd、ls 53
4.3 文件/目录访问权限管理 55
4.3.1 文件/目录访问权限简介 55
4.3.2 改变文件/目录的访问权限——chmod命令 56
4.3.3 更改文件/目录的默认权限——umask命令 58
4.3.4 更改文件/目录的所有权——chown命令 58
4.4 文件/目录的打包和压缩 59
4.4.1 文件压缩——gzip压缩 59
4.4.2 文件压缩——bzip2压缩 60
4.4.3 文件归档——tar命令 61
4.4.4 zip压缩 63
4.4.5 unzip解压缩 64
4.4.6 其他归档压缩工具 65
小结 67
习题 67
上机练习 67
第5章 用户与用户组管理 69
5.1 用户和组文件 69
5.1.1 用户账号文件——passwd 69
5.1.2 用户影子文件——shadow 71
5.1.3 用户组账号文件——group和gshadow 72
5.1.4 使用pwck和grpck命令验证用户和组文件 74
5.2 使用命令行方式管理用户和组 74
5.2.1 使用useradd命令添加用户 74
5.2.2 使用usermod命令修改用户信息 75
5.2.3 使用userdel命令删除用户 76
5.2.4 使用groupadd命令创建用户组 76
5.2.5 使用groupmod命令修改用户组属性 77
5.2.6 使用groupdel命令删除用户组 77
5.3 Red Hat Enterprise Linux用户管理 78
5.3.1 启动用户管理者 78
5.3.2 创建用户 78
小结 79
习题 79
上机练习 79
第6章 软件包管理RPM和YUM数据库 81
6.1 使用rpm命令管理RPM包 81
6.1.1 查询RPM软件包 81
6.1.2 RPM软件包的安装 83
6.1.3 RPM软件包安装可能出现的问题 85
6.1.4 RPM软件包的卸载 85
6.1.5 RPM软件包的升级 86
6.1.6 RPM软件包的验证 87
6.2 RPM软件包的密钥管理 88
6.2.1 下载与安装PGP 88
6.2.2 RPM使用PGP产生签名所需的配置 89
6.2.3 配置RPM宏 89
6.2.4 RPM的PGP签名选项 90
6.2.5 添加数字签名 90
6.3 使用yum命令管理软件包 90
6.3.1 添加本地yum源 90
6.3.2 安装软件包 91
6.3.3 查询软件包 91
6.3.4 检测升级软件包 92
6.3.5 卸载软件包 92
小结 92
习题 92
上机练习 93
第7章 Linux磁盘管理 94
7.1 Linux文件系统XFS 94
7.1.1 Linux常用文件系统介绍 94
7.1.2 磁盘分区命名方式 95
7.2 常用磁盘管理命令 96
7.2.1 挂载磁盘分区 96
7.2.2 卸载磁盘分区 97
7.2.3 查看磁盘分区信息 97
7.2.4 磁盘分区 98
7.2.5 分区的格式化 100
7.2.6 检查和修复磁盘分区 101
7.3 磁盘配额管理 101
7.3.1 磁盘配额的系统配置 101
7.3.2 对用户和用户组设置磁盘配额 103
7.3.3 查看用户(组)磁盘使用情况 104
7.3.4 启动和终止磁盘配额 104
小结 105
习题 105
上机练习 105
第8章 Linux编程 107
8.1 文本编辑器 107
8.1.1 认识vi 107
8.1.2 启动vi编辑器 108
8.1.3 显示vi中的行号 109
8.1.4 光标移动操作(Cursor) 109
8.1.5 屏幕命令(Screen) 110
8.1.6 文本插入命令(Insert) 111
8.1.7 附加命令(append) 111
8.1.8 打开命令(open) 111
8.1.9 文本修改命令——删除(Delete) 112
8.1.10 文本修改命令——取消(Undo) 113
8.1.11 文本修改命令——重复(Redo) 114
8.1.12 退出vi(exit) 114
8.1.13 设置vi 115
8.1.14 其他文本编辑器 116
8.2 Linux编程——gcc编译 117
8.2.1 介绍gcc 117
8.2.2 gcc的基本用法和常用选项 118
8.3 Linux编程——gdb调试 121
8.3.1 gdb简介 121
8.3.2 gdb的基本用法 121
8.3.3 gdb的实例 122
8.4 Linux编程——使用make 125
8.4.1 makefile文件 125
8.4.2 make命令 127
8.5 Linux编程——IDE集成开发环境 128
8.6 通过源代码安装程序 128
8.6.1 直接编译并安装程序 128
8.6.2 编译RPM包——spec文件 130
8.6.3 编译RPM包——rpmbuild命令 132
小结 134
习题 134
上机练习 134
第9章 进程管理 135
9.1 Linux进程概述 135
9.1.1 进程的含义 135
9.1.2 进程的状态 135
9.1.3 进程的工作模式 136
9.2 守护进程 137
9.2.1 守护进程简介 137
9.2.2 重要守护进程介绍 137
9.3 启动进程 138
9.3.1 定时执行——at命令 138
9.3.2 空闲时执行——batch命令 141
9.3.3 周期性执行——cron和crontab命令 141
9.4 管理进程 144
9.4.1 查看进程状态——ps命令 144
9.4.2 查看进程状态——top命令 146
9.4.3 终止进程 147
9.4.4 前后台运行和暂停进程 148
9.5 进程文件系统PROC 149
小结 151
习题 151
上机练习 151
第10章 Shell编程 152
10.1 Shell编程基础 152
10.1.1 介绍Shell脚本 152
10.1.2 输入/输出重定向 152
10.1.3 管道 154
10.1.4 Shell里的特殊字符 154
10.1.5 Shell脚本的注释 155
10.2 Shell变量 155
10.2.1 系统变量 155
10.2.2 环境变量 156
10.2.3 用户变量 157
10.2.4 变量的赋值与使用 157
10.2.5 数字和数组的声明 158
10.3 Shell运算符 159
10.4 Shell的流程控制 160
10.4.1 分支结构——test命令 160
10.4.2 分支结构——if语句 161
10.4.3 分支结构——case语句 162
10.4.4 循环结构——for语句 163
10.4.5 循环结构——while语句和until语句 164
10.4.6 break、continue和exit语句 164
10.5 Shell函数 165
10.5.1 声明Shell函数 165
10.5.2 调用Shell函数 166
10.5.3 递归调用 166
10.6 编写交互脚本 167
10.6.1 提示用户 167
10.6.2 接受用户输入 168
小结 169
习题 170
第11章 Linux服务器配置 171
11.1 WWW服务器 171
11.1.1 安装Apache 171
11.1.2 启动、停止与重启Apache 172
11.1.3 配置Apache 173
11.1.4 其他WWW服务器 173
11.2 FTP服务器 174
11.2.1 安装vsftpd 174
11.2.2 vsftpd的启动、停止与重启 174
11.2.3 vsftpd基本配置 175
11.2.4 vsftpd用户配置 177
11.2.5 vsftpd访问权限配置 179
11.2.6 vsftpd.conf常见应用 181
11.3 Mail服务器 183
11.3.1 邮件系统及sendmail简介 183
11.3.2 sendmail的工作方式 183
11.3.3 启动并测试sendmail 185
11.3.4 sendmail的配置 186
11.3.5 添加邮件账户 187
11.3.6 支持POP和IMAP功能 187
11.4 DNS服务器 188
11.4.1 DNS的组成 188
11.4.2 Linux上DNS的分类 189
11.4.3 配置DNS服务器 189
11.4.4 域名服务器配置文件named.conf 189
11.4.5 资源记录 192
11.4.6 配置实例 195
小结 197
习题 197
第12章 网络信息安全 198
12.1 网络信息安全简介 198
12.2 网络中存在的威胁 199
12.3 常见的攻击类型 199
12.3.1 端口扫描 199
12.3.2 DoS和DDoS攻击 200
12.3.3 特洛伊木马(Trojan) 202
12.4 防火墙技术 203
12.4.1 防火墙的概念及作用 203
12.4.2 防火墙的分类 204
12.4.3 使用firewalld防火墙框架 205
12.5 入侵检测系统(IDS) 208
12.5.1 入侵检测系统简介 208
12.5.2 Snort简介 209
12.5.3 使用Snort 210
12.5.4 配置Snort规则 213
12.5.5 编写Snort规则 215
12.5.6 Snort规则应用举例 217
小结 218
第13章 (Linux+Nginx+MySQL+PHP)LNMP环境搭建 219
13.1 LNMP的优势 219
13.2 虚拟机下安装Linux 219
13.3 安装配置Nginx 220
13.3.1 安装前的准备 220
13.3.2 yum源安装方法 220
13.3.3 配置Nginx 222
13.4 安装配置MySQL 223
13.4.1 安装前的准备 223
13.4.2 MySQL详细安装步骤 223
13.5 安装配置PHP 225
13.5.1 安装repo依赖包 225
13.5.2 安装Apache软件 226
13.5.3 安装PHP包 227
小结 229
第14章 Linux下Docker虚拟化环境搭建 230
14.1 Docker与虚拟化 230
14.1.1 虚拟化的优势 230
14.1.2 Docker的由来 231
14.1.3 Docker的安装 231
14.1.4 Docker常用命令 233
14.2 Docker的管理 234
14.2.1 镜像 234
14.2.2 容器 235
14.2.3 仓库 237
14.3 Docker操作 240
14.3.1 在Docker里运行Apache程序 240
14.3.2 下载LNMP镜像并启动 243
小结 244