第1章 Linux入门 1
1.1 什么是Linux 1
1.2 Linux的发展历史 1
1.3 Linux的优势 2
1.4 Linux的应用领域 3
1.5 Linux的安装 3
1.5.1 硬件需求 4
1.5.2 安装方式 4
1.5.3 安装过程 4
1.6 Linux的启动过程 12
1.7 登录Linux 12
1.8 退出Linux 13
1.9 本章小结 13
1.10 习题 14
第2章 文件和磁盘管理 15
2.1 Linux文件系统入门 15
2.1.1 Linux常用文件系统介绍 15
2.1.2 Linux文件介绍 16
2.1.3 Linux目录介绍 17
2.1.4 Linux目录结构 18
2.2 文件与目录基本操作 20
2.2.1 显示文件内容命令:cat、more、less、head、tail 20
2.2.2 文件内容查询命令:grep、egrep、fgrep 23
2.2.3 文件查找命令:find、locate 24
2.2.4 文本处理命令:sort、uniq 26
2.2.5 文件内容统计命令:wc 28
2.2.6 文件比较命令:comm、diff 29
2.2.7 文件的复制、移动和删除命令:cp、mv、rm 31
2.2.8 文件链接命令:ln 33
2.2.9 目录的创建与删除命令:mkdir、rmdir 33
2.2.10 改变工作目录、显示路径以及显示目录内容命令:cd、pwd、ls 34
2.3 文件/目录访问权限管理 36
2.3.1 文件/目录访问权限简介 37
2.3.2 使用chmod改变文件/目录的访问权限 37
2.3.3 使用命令chown更改文件/目录的所有权 39
2.4 管理磁盘存储器 39
2.4.1 存储设备的命名 39
2.4.2 磁盘空间管理 40
2.4.3 使用Fdisk工具进行磁盘分区 42
2.4.4 优化Linux系统硬盘 44
2.5 本章小结 46
2.6 习题 46
第3章 常见软件设置和硬件配置 47
3.1 设置用户界面 47
3.1.1 KDE桌面系统组成 47
3.1.2 GNOME桌面系统 48
3.1.3 设置文件浏览界面 49
3.1.4 控制中心 52
3.2 安装软件 53
3.2.1 基于源代码的软件安装 54
3.2.2 基于可执行文件的软件安装 54
3.2.3 RPM可执行文件的软件安装 54
3.3 卸载软件 55
3.4 常见硬件的检测 55
3.4.1 中央处理器状态的检测 55
3.4.2 硬盘物理坏道的检测 56
3.4.3 内存的检测 58
3.5 硬件驱动和配置 59
3.5.1 声卡驱动和配置 59
3.5.2 配置X Window及显示卡 62
3.5.3 网卡的配置 63
3.5.4 打印机的配置、管理和使用 63
3.6 本章小结 66
3.7 习题 67
第4章 用户和组管理 68
4.1 用户和组文件 68
4.1.1 用户账号文件——passwd 68
4.1.2 用户影子文件——shadow 70
4.1.3 用户组账号文件——group 71
4.1.4 组账号文件——gshadow 72
4.1.5 使用pwck和grpck命令验证用户和组文件 73
4.2 使用命令行方式管理用户和组 75
4.2.1 使用useradd命令添加用户 75
4.2.2 使用usermod命令修改用户信息 76
4.2.3 使用userdel命令删除用户 77
4.2.4 使用groupadd命令创建用户组 77
4.2.5 使用groupmod命令修改用户组属性 78
4.2.6 使用groupdel命令删除用户组 78
4.3 使用Red Hat用户管理器管理用户和组 79
4.3.1 启动Red Hat用户管理器 79
4.3.2 创建用户 79
4.3.3 修改用户属性 81
4.3.4 创建用户组 82
4.3.5 修改用户组属性 83
4.4 本章小结 83
4.5 习题 84
第5章 软件包管理 85
5.1 RPM包管理 85
5.1.1 RPM软件包的查询 85
5.1.2 RPM软件包的安装 87
5.1.3 RPM软件包安装可能出现的问题 88
5.1.4 RPM软件包的卸载 89
5.1.5 RPM软件包的升级 89
5.1.6 RPM软件包的验证 90
5.1.7 Red Hat Linux 9的添加/删除应用程序 91
5.2 RPM软件包的密钥管理 92
5.2.1 下载与安装PGP 93
5.2.2 RPM使用PGP产生签名所需的配置 93
5.2.3 配置RPM宏 94
5.2.4 RPM的PGP签名选项 94
5.2.5 添加数字签名 94
5.3 TAR包管理 95
5.3.1 TAR命令语法及参数选项 95
5.3.2 创建tar文件 96
5.3.3 显示tar文件内容 97
5.3.4 向tar文件中添加一个文件 98
5.3.5 从tar文件中取出文件 98
5.4 Linux下常用的压缩工具 99
5.4.1 gzip压缩工具 99
5.4.2 zip/unzip命令 101
5.4.3 bzip2命令 105
5.5 本章小结 107
5.6 习题 107
第6章 GRUB引导器 108
6.1 GRUB概述 108
6.2 GRUB的特点 108
6.3 GRUB运行原理 109
6.4 使用GRUB 109
6.4.1 GRUB的选择安装 109
6.4.2 GRUB的设备名称 110
6.4.3 GRUB的文件名称 111
6.4.4 GRUB的基本接口 111
6.4.5 GRUB的基本命令 113
6.4.6 GRUB配置文件介绍 114
6.5 GRUB的应用举例 115
6.6 本章小结 117
6.7 习题 117
第7章 Linux中的进程管理 118
7.1 Linux进程概述 118
7.2 Linux进程原理 118
7.2.1 Linux进程的状态 118
7.2.2 Linux进程工作模式 119
7.3 Linux守护进程介绍 120
7.3.1 守护进程简介 120
7.3.2 重要守护进程介绍 120
7.4 启动Linux进程 121
7.4.1 手工启动 121
7.4.2 在指定时刻执行命令序列——at命令 122
7.4.3 在资源比较空闲的时候执行命令——batch命令 125
7.4.4 不断重复执行某些命令——cron命令 125
7.4.5 操作cron后台进程的表格——crontab命令 125
7.5 进程的挂起及恢复 128
7.6 Linux进程管理 128
7.6.1 使用ps命令查看进程状态 128
7.6.2 使用top命令查看进程状态 131
7.6.3 使用kill命令终止进程 132
7.6.4 使用sleep命令暂停进程 132
7.7 进程文件系统PROC 133
7.8 本章小结 135
7.9 习题 135
第8章 远程登录管理——Telnet与SSH 136
8.1 使用Telnet 136
8.1.1 Telnet登录简介 136
8.1.2 Telnet原理 136
8.1.3 安装和启动Telnet 137
8.1.4 配置Telnet 138
8.1.5 Telnet的会话示例 139
8.2 使用SSH 139
8.2.1 SSH介绍 140
8.2.2 安装与启动SSH 141
8.2.3 简单测试和使用SSH 141
8.2.4 配置“/etc/ssh/ssh_config”文件 142
8.2.5 配置“/etc/ssh/sshd_config”文件 143
8.2.6 SSH的密匙管理 145
8.2.7 使用scp远程拷贝文件 146
8.2.8 使用SSH设置“加密通道” 147
8.2.9 配置SSH的客户端 148
8.2.10 配置SSH自动登录 149
8.3 本章小结 151
8.4 习题 151
第9章 TCP/IP网络基础 152
9.1 网络简介 152
9.2 网络的体系结构 152
9.3 TCP/IP简介 154
9.3.1 IP协议介绍 155
9.3.2 TCP协议介绍 158
9.3.3 UDP协议介绍 160
9.4 使用xinetd启动Linux网络服务 161
9.5 本章小结 164
9.6 习题 164
第10章 Samba服务器配置 165
10.1 Samba服务器简介及安装 165
10.1.1 Samba工作原理 165
10.1.2 Samba服务器的功能 166
10.1.3 SMB协议 166
10.1.4 安装Samba 166
10.2 启动及关闭Samba服务器 167
10.2.1 Samba的命令行启动和关闭 167
10.2.2 在System Services中启动和关闭Samba服务 168
10.2.3 简单测试Samba服务器 169
10.3 配置Samba服务器的用户信息 170
10.3.1 创建服务器待认证用户 171
10.3.2 将用户信息转换为Samba用户信息 171
10.3.3 用户转换 171
10.3.4 Samba服务器和主浏览器 172
10.4 smb.conf配置文件实例详解 172
10.4.1 设置工作组 173
10.4.2 设置共享Linux账户主目录 173
10.4.3 设置公用共享目录 174
10.4.4 设置一般共享目录 175
10.4.5 设置共享打印机 176
10.4.6 打印机配置相关问题 177
10.5 一个完整的smb.conf文件实例 178
10.5.1 global段 178
10.5.2 home段 181
10.5.3 printers段 182
10.5.4 public段 183
10.5.5 一般共享段 183
10.5.6 smb.conf文件的更多例子 183
10.5.7 该配置在Windows系统下的显示结果 185
10.6 smb.conf中的选项和特定约定 185
10.6.1 特殊约定 185
10.6.2 read only、writeable、writable和write ok(S) 185
10.6.3 valid users(S) 186
10.6.4 invalid users(S) 186
10.6.5 read list(S) 186
10.6.6 write list(S) 187
10.6.7 path(S) 187
10.6.8 create mask和create mode(S) 187
10.6.9 browseable(S) 187
10.6.10 printable(S) 187
10.6.11 hosts allow、hosts deny、allow hosts和deny hosts(S) 187
10.6.12 public和guest ok(S) 188
10.6.13 comment(S)和server string(G) 188
10.6.14 domain logons(G) 188
10.6.15 encrypt passwords和smbpasswd file(G) 188
10.6.16 hosts equiv(G) 188
10.6.17 interfaces(G) 188
10.6.18 load printers(G) 188
10.6.19 null passwords(G) 189
10.6.20 password level和username level(G) 189
10.6.21 security(G) 189
10.6.22 workgroup(G) 189
10.7 测试Samba服务器 189
10.8 Linux和Windows文件互访 190
10.8.1 Windows客户使用Linux系统共享文件 190
10.8.2 用smbclient工具访问局域网上的Windows系统 190
10.8.3 用smbclient工具访问局域网上的其他系统 191
10.8.4 用LinNeighborhood访问局域网上其他系统的共享文件 192
10.9 本章小结 193
10.10 习题 193
第11章 Proxy服务器配置 194
11.1 Proxy服务器原理简介 194
11.2 Squid简介 195
11.3 安装和启动Squid Server 196
11.3.1 安装Squid Server 196
11.3.2 启动和关闭Squid Server 197
11.4 在客户端使用Squid Server 197
11.4.1 在IE浏览器设置 197
11.4.2 在Linux浏览器中设置 198
11.5 配置Squid Server 199
11.5.1 配置Squid Server的基本参数 199
11.5.2 配置Squid Server的访问控制 202
11.5.3 配置Squid Server的简单实例 205
11.6 配置基于Squid的透明代理 206
11.6.1 Linux内核的相关配置 206
11.6.2 squid的相关配置选项 207
11.6.3 iptables的相关配置 207
11.7 配置多级缓存改善Proxy服务器的性能 207
11.7.1 多级缓存(cache)简介 208
11.7.2 配置多级缓存 209
11.8 Squid日志管理 210
11.8.1 配置文件中有关日志的选项 210
11.8.2 日志管理主文件——accesss.conf 211
11.9 使用Webalizer对Squid进行流量分析 213
11.9.1 Webalizer的特点 213
11.9.2 安装Webalizer 213
11.9.3 配置Webalizer 214
11.9.4 使用Webalizer 214
11.10 本章小结 217
11.11 习题 217
第12章 数据库服务器 218
12.1 Linux下数据库系统简介 218
12.2 MySQL数据库系统简介 218
12.3 MySQL数据库系统的安装 218
12.3.1 基于源代码包的MySQL安装 218
12.3.2 基于RPM包的MySQL安装 221
12.3.3 在Red Hat Linux 9添加/删除程序中安装MySQL 221
12.4 启动MySQL数据库系统 223
12.4.1 建立MySQL的用户组和用户名 223
12.4.2 建立MySQL的软链接 223
12.4.3 设置用户访问权限 224
12.4.4 启动MySQL 224
12.5 MySQL常用操作 225
12.5.1 连接MySQL服务器 225
12.5.2 退出MySQL服务器 225
12.5.3 密码管理 225
12.5.4 增加新用户 226
12.5.5 命令分行 227
12.5.6 命令历史记录 227
12.5.7 显示数据库列表 227
12.5.8 显示数据库中的数据表 227
12.5.9 显示数据表的表结构 227
12.5.10 新建数据库 227
12.5.11 新建数据库表 228
12.5.12 删库和删表 228
12.5.13 将表中记录清空 228
12.5.14 显示表的记录 229
12.5.15 向表中插入记录 229
12.5.16 MySQL数据导入和备份 229
12.5 在程序中操作MySQL数据库 230
12.6 安装Oracle数据库系统 231
12.6.1 安装Oracle10g的硬件条件 231
12.6.2 下载Oracle10g的安装文件 231
12.6.3 安装前的准备工作 232
12.6.4 安装Oracle 232
12.7 测试Oracle数据库系统 233
12.7.1 使用svrmgrl测试安装是否成功 233
12.7.2 使用sql plus测试安装是否成功 234
12.8 设置Oracle服务自动启动 234
12.9 操作Oracle数据库 234
12.9.1 创建表空间和创建用户 234
12.9.2 删除用户 235
12.9.3 修改用户密码 235
12.9.4 数据导出 235
12.9.5 数据导入 235
12.9.6 其他数据操作 235
12.10 在程序中操作Oracle数据库 236
12.10.1 用C语言操作Oracle数据库 236
12.10.2 用PHP语言访问Oracle数据库 239
12.11 本章小结 242
12.12 习题 243
第13章 Apache服务器 244
13.1 Apache简介 244
13.1.1 Apache的诞生 244
13.1.2 Apache的特性 245
13.2 Apache的获取和安装 245
13.2.1 Apache获取及其最新信息 245
13.2.2 用httpd-2.0.54.tar.gz软件包安装Apache 246
13.2.3 用httpd-2.0.54.tar.bz2软件包安装Apache 247
13.2.4 用RPM软件包安装Apache 248
13.3 启动和停止Apache服务器 249
13.3.1 手动启动和停止Apache服务器 249
13.3.2 在/etc/rc.d目录下httpd文件中用脚本启动 250
13.3.3 测试Apache 251
13.4 配置Apache服务器 252
13.4.1 httpd.conf文件中的全局配置选项 252
13.4.2 .htaccess文件和访问限制 255
13.4.3 httpd.conf文件中的CGI设置 257
13.4.4 httpd.conf文件中的URL路径名设置 258
13.4.5 httpd.conf文件中的MIME类型 261
13.5 虚拟主机的设置 262
13.5.1 一个IP地址对应一个CNAME(IP型虚拟主机) 262
13.5.2 一个IP地址对应多个CNAME(名字型虚拟主机) 263
13.6 日志记录 264
13.7 SSI设置 265
13.7.1 SSI简介 265
13.7.2 启用SSI 265
13.7.3 SSI指令 265
13.8 一个完整的httpd.conf文件 269
13.8.1 全局环境的设置 269
13.8.2 动态共享对象支持DSO的设置 271
13.8.3 主服务器设置 272
13.8.4 设置日志管理 275
13.8.5 设置虚拟目录 276
13.8.6 设置MIME类型 277
13.8.7 文档管理和语言管理 278
13.8.8 设置虚拟主机 282
13.9 本章小结 282
13.10 习题 283
第14章 FTP服务器配置 284
14.1 FTP简介 284
14.1.1 FTP协议介绍 284
14.1.2 FTP文件类型 285
14.1.3 FTP文件结构 286
14.1.4 FTP传输模式 286
14.1.5 FTP常用命令 286
14.1.6 FTP典型消息 287
14.2 使用Wu-ftpd服务器 288
14.2.1 安装Wu-ftpd服务器 288
14.2.2 启动和使用Wu-ftpd服务器 289
14.3 配置Wu-ftpd服务器 291
14.3.1 配置ftpaccess文件 291
14.3.2 配置ftphosts文件 297
14.3.3 配置/etc/ftpservers文件 297
14.3.4 配置ftpusers文件 298
14.3.5 配置ftpgroups文件 298
14.3.6 配置ftpconversions文件 298
14.4 使用vsftpd服务器 299
14.4.1 vsftpd简介 299
14.4.2 安装vsftpd 300
14.4.3 启动和关闭vsftpd 301
14.4.4 配置vsftpd.ftpusers文件 302
14.4.5 配置vsftpd.user_list文件 303
14.4.6 配置vsftpd.conf文件 304
14.5 深入使用vsftpd服务器 305
14.5.1 匿名用户使用vsftpd服务器 305
14.5.2 本地用户使用vsftpd服务器 306
14.5.3 虚拟用户使用vsftpd服务器 308
14.5.4 配置vsftpd服务器中chroot 310
14.5.5 配置vsftpd服务器在非标准端口工作 311
14.5.6 配置虚拟FTP服务器 311
14.6 本章小结 313
14.7 习题 314
第15章 Mail服务器配置 315
15.1 邮件系统简介 315
15.1.1 邮件传递代理(MTA) 315
15.1.2 邮件存储和获取代理(MSA) 315
15.1.3 邮件客户代理(MUA) 316
15.2 SMTP介绍 316
15.2.1 SMTP的模型 316
15.2.2 SMTP的基本命令 317
15.2.3 电子邮件介绍 319
15.2.4 Open Relay的原理 321
15.3 使用Sendmail Server 321
15.3.1 安装与启动Sendmail 321
15.3.2 设置sendmail.cf 323
15.3.3 使用sendmail.mc文件 326
15.3.4 创建新的邮件账号 327
15.3.5 设置账号别名 327
15.3.6 使用access数据库 328
15.3.7 配置带SMTP认证的Sendmail服务器 329
15.4 建立POP邮件服务 330
15.4.1 安装POP服务器 330
15.4.2 启动POP和IMAP服务 330
15.4.3 一个实际的发送/接收邮件的例子 331
15.5 配置SMTP/POP邮件客户端 333
15.6 防范垃圾邮件 334
15.6.1 常用技术 334
15.6.2 使用Sendmail防范垃圾邮件 335
15.7 本章小结 336
15.8 习题 336
第16章 网络信息安全 338
16.1 网络信息安全简介 338
16.1.1 网络信息安全的要素 338
16.1.2 网络中存在的威胁 339
16.1.3 网络信息安全领域的研究重点 339
16.2 常见的攻击类型 341
16.2.1 端口扫描 341
16.2.2 特洛伊木马 342
16.2.3 DoS攻击 344
16.2.4 Linux下的病毒 345
16.3 防火墙(FireWall)技术 348
16.3.1 防火墙简介 348
16.3.2 防火墙的分类 349
16.3.3 传统防火墙技术及其特点 350
16.3.4 新一代防火墙的主要技术特点 351
16.3.5 新一代分布式防火墙概述 351
16.3.6 新一代嵌入式防火墙技术 352
16.3.7 新一代智能防火墙技术 352
16.3.8 防火墙技术的发展趋势 353
16.3.9 使用Netfilter/iptables防火墙框架 354
16.4 入侵检测系统(IDS) 358
16.4.1 入侵检测系统简介 358
16.4.2 Snort介绍 359
16.4.3 安装Snort 360
16.4.4 使用Snort 360
16.4.5 配置Snort规则 364
16.4.6 编写Snort规则 366
16.4.7 Snort规则应用举例 368
16.5 使用Tripwire保护网络系统的数据安全 369
16.5.1 Tripwire简介 369
16.5.2 Tripwire工作原理 369
16.5.3 使用Tripwire 371
16.5.4 使用Tripwire的技巧 372
16.6 本章小结 373
16.7 习题 373
第17章 Linux下的编程 374
17.1 Linux下常用的开发工具 374
17.1.1 GCC 374
17.1.2 CVS 374
17.1.3 Perl 374
17.1.4 Linux上的Delphi——Kylix 375
17.2 Linux下的Vi文本编辑器 375
17.2.1 Vi编辑器介绍 376
17.2.2 启动Vi编辑器 377
17.2.3 显示Vi中的行号 377
17.2.4 光标移动操作 378
17.2.5 屏幕命令 379
17.2.6 文本插入命令 379
17.2.7 附加(append)命令 380
17.2.8 打开(open)命令 380
17.2.9 文本修改命令 381
17.2.10 退出Vi 383
17.3 Linux的C编译器——GCC 384
17.3.1 GCC的编译过程 384
17.3.2 GCC的基本用法和常用选项 385
17.3.3 使用Gdb调试C程序 387
17.3.4 编写Makefile文件 391
17.4 Linux下的PHP编程 396
17.4.1 PHP简介 397
17.4.2 配置运行环境 397
17.4.3 一个简单的PHP例子 398
17.5 本章小结 399
17.6 习题 400