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