第1篇 基础篇 2
第1章 Linux系统简介 2
1.1 UNIX系统简介 2
1.1.1 UNIX系统的发展历史 2
1.1.2 UNIX系统的特点 4
1.2 Linux系统简介 6
1.2.1 Linux系统的发展历史 6
1.2.2 Linux系统的特点 7
1.2.3 Linux系统的发行版本介绍 8
1.2.4 Linux系统的应用 9
1.3 Linux系统与其他系统的比较 10
1.3.1 Linux与UNIX操作系统的比较 10
1.3.2 Linux与Windows操作系统的比较 10
1.3.3 Linux与Mac OS的比较 11
习题 11
第2章 Linux系统入门 13
2.1 Linux系统的启动 13
2.1.1 Linux系统的开机 13
2.1.2 Linux系统的两种操作界面及切换 14
2.2 Linux系统的登录与注销 14
2.2.1 系统的登录 14
2.2.2 注销 15
2.3 Linux系统的关闭与重启动 15
2.3.1 字符界面 15
2.3.2 图形界面 17
2.4 Linux系统的图形界面介绍 17
2.4.1 桌面 18
2.4.2 主菜单 22
2.4.3 终端仿真器 22
2.5 办公套件OpenOffice.org 23
2.5.1 OpenOffice.org Writer 23
2.5.2 OpenOffice.org Calc 24
2.5.3 OpenOffice.org Impress 24
2.5.4 OpenOffice.org Draw 24
2.6 Linux系统的在线帮助与资源 25
2.6.1 man 25
2.6.2 textinfo 26
2.6.3 yelp 26
2.6.4 Linux系统的其他帮助和资源 26
习题 27
实验 28
第3章 shell与shell命令 29
3.1 shell基本功能与基本概念 29
3.1.1 shell基本功能 29
3.1.2 字符与保留字 29
3.1.3 文件命名及文件类型 31
3.1.4 目录结构与路径 33
3.1.5 shell命令解释及执行 35
3.1.6 环境变量与变量 37
3.1.7 标准流与输入/输出重定向 38
3.1.8 管道 39
3.1.9 引号机制、命令替换与参数替换 40
3.1.10 shell种类 41
3.2 shell启动 41
3.2.1 shell的启动流和工作过程 41
3.2.2 修改profile文件 42
3.3 Linux系统的基本命令 42
3.3.1 目录操作的基本命令 43
3.3.2 文件操作的基本命令 44
3.3.3 文本文件编辑与操作基本命令 53
3.3.4 进程管理基本命令 57
3.3.5 时间管理命令 58
3.3.6 文件或目录比较命令 59
3.3.7 其他操作命令 63
习题 67
实验 68
第2篇 管理篇 70
第4章 用户管理和密码管理 70
4.1 UNIX系统的用户 70
4.1.1 用户与uid 70
4.1.2 用户组 70
4.2 与用户管理相关的文件 70
4.2.1 /etc/passwd 71
4.2.2 /etc/shadow 71
4.2.3 /etc/group 72
4.2.4 /etc/login.defs 72
4.2.5 其他文件 72
4.3 用户管理命令 73
4.3.1 用户管理命令 73
4.3.2 组管理命令 75
4.3.3 密码管理 75
4.4 用户、组和密码管理图形界面 77
4.5 与用户身份和位置相关的其他命令 78
4.5.1 显示已登录用户的信息(who) 78
4.5.2 显示与用户和组相关的信息(id) 79
4.5.3 显示与当前有效用户id相关的用户名(whoami) 79
4.5.4 确定用户所使用的终端设备(tty) 79
4.5.5 不退出系统而将自己切换成其他用户(su) 79
4.5.6 设置组密码(gpasswd) 80
4.5.7 组检查(grpck) 80
4.5.8 不退出系统而改变用户组(newgrp) 81
4.5.9 向系统中已登录的所用户发信息(wall) 81
习题 81
实验 82
第5章 UNIX/Linux文件系统和权限管理 83
5.1 文件系统权限及管理 83
5.1.1 两种用户 83
5.1.2 三种权限 83
5.1.3 三类人 84
5.1.4 权限控制 84
5.1.5 默认权限与umask 85
5.2 权限管理命令 85
5.2.1 umask命令 85
5.2.2 chmod命令 86
5.2.3 chown命令 86
5.2.4 chgrp命令 87
5.2.5 ext2和ext3文件系统的新属性及其管理 87
5.3 文件系统管理 88
5.3.1 UNIX/Linux支持的文件系统 88
5.3.2 UNIX/Linux系统使用的存储设备 89
5.3.3 文件系统创建 91
5.3.4 文件系统的使用 94
5.3.5 文件系统的检查、修复与同步 98
5.4 与文件系统管理相关的其他命令 99
5.4.1 确定文件类型(file) 99
5.4.2 文件查找命令(find) 100
5.4.3 文件复制命令(dd) 101
5.4.4 文件的链接(In) 102
5.4.5 特别文件创建(mknod) 103
5.4.6 统计磁盘空间和文件系统的使用情况(df) 103
5.4.7 统计目录使用磁盘空间情况(du) 104
5.4.8 数据备份与文件归档管理命令(tar、cpio) 104
5.4.9 文件的压缩与解压缩 108
5.4.10 mtools工具 110
5.5 图形界面下的文件和目录管理 111
5.5.1 软盘格式化 111
5.5.2 磁盘管理 111
5.5.3 文件及目录常规操作 111
5.5.4 文件及目录搜索 111
习题 112
实验 113
第6章 进程与任务或作业管理 114
6.1 程序和进程的概念 114
6.1.1 程序、进程、作业和任务 114
6.1.2 三类进程 115
6.1.3 Linux操作系统的启动 115
6.1.4 0#进程与1#进程 115
6.1.5 进程及运行模式 116
6.1.6 进程状态及转换 117
6.2 UNIX/Linux进程调度 118
6.2.1 调度策略与优先级的计算 118
6.2.2 信号与软中断 119
6.3 进程管理与调度命令 120
6.3.1 可执行文件的setuid和setgid属性 120
6.3.2 进程管理与调度命令 121
6.4 作业和任务调度 125
6.4.1 at和batch 126
6.4.2 crontab 127
6.5 进程管理图形界面 129
习题 130
实验 130
第7章 系统安装、启动与管理 131
7.1 系统安装 131
7.1.1 安装的任务与准备 131
7.1.2 硬盘的物理结构与分区划分 132
7.1.3 安装Linux系统所需的基本分区 133
7.1.4 安装过程 134
7.1.5 首次启动 137
7.1.6 虚拟机的安装与使用 138
7.2 引导器grub 138
7.2.1 简介 138
7.2.2 操作界面 138
7.2.3 配置文件与配置 139
7.2.4 系统的启动及启动参数的修改 141
7.3 Linux系统的启动过程分析 141
7.3.1 /etc/inittab文件 141
7.3.2 /etc/inittab示例 142
7.3.3 运行级别切换 143
7.3.4 与启动过程相关的文件和目录 143
7.4 Linux系统的升级 146
7.4.1 Linux系统的在线升级 146
7.4.2 Linux系统的离线升级 147
7.4.3 其他升级方式 147
7.5 软件包管理 148
7.5.1 概述 148
7.5.2 图形界面 149
7.5.3 字符界面 150
7.5.4 其他软件包管理 151
7.6 日志管理 153
7.6.1 Red Hat Linux 9的日志系统 153
7.6.2 常见日志文件及阅读 155
7.6.3 日志滚动 157
7.7 系统管理 158
7.7.1 系统管理的任务 158
7.7.2 系统管理工具与命令 159
7.7.3 内核配置与参数调整 162
习题 166
实验 167
第8章 设备管理 168
8.1 设备管理概述 168
8.1.1 Linux系统支持的设备 168
8.1.2 硬件浏览器 169
8.1.3 系统设置 169
8.2 非即插即用设备的管理与驱动程序的安装 170
8.2.1 驱动程序与安装准备 170
8.2.2 将驱动程序编译进内核 171
8.2.3 将设备编译成可加载模块 171
8.3 打印机的管理与使用 172
8.3.1 cups的安装 172
8.3.2 打印机安装与配置 172
8.3.3 cups的启动 173
8.3.4 打印机使用 173
8.3.5 打印机管理 174
8.3.6 cups的配置文件 175
8.4 串口的管理与使用 176
8.4.1 Linux系统的串口设备 176
8.4.2 setserial 176
8.4.3 minicom 177
8.5 交换区管理 179
8.5.1 概述 179
8.5.2 使用交换设备 179
8.5.3 使用交换文件 180
习题 180
实验 181
第9章 网络管理与网络应用 182
9.1 TCP/IP 182
9.1.1 TCP/IP协议体系结构 182
9.1.2 TCP/IP数据封装 183
9.1.3 IP地址 183
9.1.4 网络掩码 185
9.1.5 子网及子网化 185
9.1.6 IP路由的实现 186
9.1.7 端口、套接字及服务 187
9.1.8 客户机/服务器(C/S)模式 188
9.1.9 物理地址、逻辑地址和主机名 188
9.2 TCP/IP配置 188
9.2.1 TCP/IP网络配置 188
9.2.2 与网络有关的配置文件 192
9.3 网络管理命令 195
9.3.1 ping命令 195
9.3.2 netstat命令 195
9.3.3 arp命令 197
9.3.4 hostname命令 198
9.3.5 route命令 198
9.3.6 ifconfig命令 200
9.3.7 ifup和ifdown命令 202
9.3.8 nslookup/host命令 202
9.3.9 traceroute命令 202
9.4 Linux系统的服务管理 203
9.4.1 网络服务与守候进程 203
9.4.2 守护进程工作原理 203
9.4.3 Linux系统服务配置 203
9.4.4 超级服务器进程 206
9.5 网络应用常用命令介绍 207
9.5.1 telnet与ssh命令 207
9.5.2 ftp与tftp命令 208
9.5.3 mail命令 208
9.5.4 wget命令 209
9.5.5 talk、write与mesg命令 210
9.5.6 r-命令 211
习题 211
实验 212
第3篇 编程与开发篇 214
第10章 shell编程 214
10.1 正则表达式 214
10.1.1 字符集 214
10.1.2 shell正则表达式 216
10.2 流编辑(sed) 216
10.2.1 功能及用法 216
10.2.2 参数与说明 216
10.2.3 脚本命令 217
10.2.4 sed示例 218
10.3 模式搜索与处理(awk) 218
10.3.1 功能及用法 218
10.3.2 参数说明 218
10.3.3 记录和域 219
10.3.4 变量 219
10.3.5 操作符 219
10.3.6 控制语句 220
10.3.7 常用函数 220
10.3.8 awk程序的执行 220
10.3.9 awk使用示例 220
10.4 Bourne shell及其编程 221
10.4.1 特殊字符 221
10.4.2 I/O重定向 221
10.4.3 变量与参数 222
10.4.4 shell的状态 223
10.4.5 shell的调用与变量传递 223
10.4.6 shell程序的设计 224
10.4.7 shell程序的调试 233
10.4.8 shell脚本程序格式 234
习题 236
实验 237
第11章 Linux系统的C编程 238
11.1 编译器 238
11.1.1 功能及用法 238
11.1.2 参数及说明 239
11.1.3 示例 239
11.1.4 gcc的工作过程 240
11.2 头文件 240
11.3 连接器与库文件 241
11.4 静态库 241
11.4.1 引例 241
11.4.2 构造和管理静态库 242
11.4.3 使用自己的库 242
11.5 共享库 243
11.5.1 构造共享库 243
11.5.2 共享库的使用 243
11.6 make命令与Makefile文件 246
11.6.1 make命令的用法简介 246
11.6.2 Makefile文件 246
11.6.3 Makefile文件的用法简介 248
11.6.4 Makefile的示例 248
11.7 调试器gdb 250
11.7.1 gdb的功能 250
11.7.2 gdb的基本命令 250
11.7.3 程序调试方法 250
11.8 UNIX/Linux的其他编程工具简介 252
11.8.1 常用库与GNOME/GTK开发 252
11.8.2 KDevelop/Qt开发 253
11.8.3 Java开发 253
11.8.4 Delphi开发 254
11.8.5 Perl开发 255
11.8.6 数据库开发 256
11.8.7 PHP开发 257
习题 257
实验 258
第4篇 网络应用篇 260
第12章 DHCP服务器 260
12.1 DHCP介绍 260
12.1.1 DHCP协议 260
12.1.2 DHCP的工作过程 261
12.2 DHCP服务器的安装与启动 262
12.2.1 DHCP服务器的安装 262
12.2.2 DHCP服务器的启动 262
12.3 DHCP的配置 263
12.3.1 配置文件 263
12.3.2 配置文件中的定义、参数、选项及意义 263
12.4 DHCP规划 265
12.4.1 在不同的网络中使用DHCP 265
12.4.2 设置DHCP中继 265
12.4.3 设置备份DHCP 266
12.5 DHCP客户端配置 266
习题 267
实验 267
第13章 FTP与TFTP服务器 268
13.1 FTP与FTP服务器 268
13.1.1 FTP的相关概念 268
13.1.2 Linux系统的FTP服务器 270
13.2 Red Hat Linux 9的vsftpd服务器 272
13.2.1 vsftpd服务器的安装与启动 272
13.2.2 vsftpd的默认配置 273
13.2.3 vsftpd服务器配置 273
13.3 FTP服务器的使用 275
13.3.1 用浏览器访问 275
13.3.2 以客户端FTP软件访问 275
13.4 TFTP与TFTP服务器的使用简介 276
13.4.1 TFTP 276
13.4.2 TFTP服务器的安装、配置、启动、应用 277
习题 279
实验 279
第14章 telnet协议与openssh服务器 280
14.1 telnet协议与telnet服务器 280
14.1.1 telnet 协议 280
14.1.2 telnet服务器的安装与启动 281
14.1.3 telnet服务的使用 283
14.2 Linux下的openssh服务器 284
14.2.1 软件安装 285
14.2.2 openssh服务器的设置 285
14.2.3 ssh两种级别的安全验证与密钥管理 288
14.2.4 openssh服务器的使用示例 290
习题 292
实验 292
第15章 网络资源共享服务器Samba 293
15.1 Samba简介与SMB协议 293
15.1.1 Samba简介 293
15.1.2 SMB协议 293
15.2 Samba的安装与启动 294
15.2.1 Samba的安装 294
15.2.2 Samba的启动 295
15.3 Samba的配置 295
15.3.1 默认配置 295
15.3.2 Linux端配置 298
15.3.3 Windows端配置 301
15.4 配置共享打印机 301
15.4.1 建立打印机服务器 301
15.4.2 使用共享打印机 303
15.5 Samba共享服务使用 303
15.5.1 Linux端 303
15.5.2 Windows端 305
习题 306
实验 306
第16章 Linux系统的安全 307
16.1 Linux系统的安全概述 307
16.1.1 Linux系统的基本安全机制 307
16.1.2 Linux系统可能遇到的安全情况和安全防范策略 308
16.1.3 Linux系统的安全级别及设置 310
16.2 防火墙iptables 312
16.2.1 iptables简介 312
16.2.2 iptables的表和链 313
16.2.3 iptables的调用格式 314
16.2.4 iptables的选项 314
16.2.5 iptables的动作 316
16.2.6 iptables的地址转换 317
16.2.7 iptables使用实例 317
16.3 检查和监督系统的运行情况 319
16.3.1 用ifconfig命令检查网络接口 319
16.3.2 用netstat命令检查网络 319
16.3.3 用ps命令检查进程 319
16.3.4 检查系统的日志文件 320
16.3.5 停止不需要的服务 320
16.3.6 去掉多余的SUID和SGID文件 320
16.4 入侵检测和事件报告 320
16.4.1 使用完整性检查工具 320
16.4.2 事件报告制度 322
习题 323
实验 323
第17章 Internet接入与代理服务器 324
17.1 Internet接入 324
17.1.1 配置调制解调器连接 324
17.1.2 配置xDSL连接 326
17.1.3 以ADSL命令行方式接入网络 327
17.2 代理服务器 328
17.2.1 代理服务和Squid 328
17.2.2 Squid的安装和配置 329
习题 335
实验 335
第18章 域名服务器DNS 336
18.1 DNS服务 336
18.1.1 IP地址与域名的转换方法 336
18.1.2 DNS系统的组成 336
18.1.3 DNS区域(zone) 337
18.1.4 DNS服务器的类型 337
18.1.5 DNS查询模式 338
18.2 BIND 338
18.2.1 BIND简介 338
18.2.2 安装BIND域名服务器 339
18.2.3 启动和停止BIND 339
18.2.4 DNS服务器配置基础 339
18.3 DNS域名服务器配置实例 342
18.3.1 DNS主域名服务器配置实例 342
18.3.2 DNS辅助域名服务器配置实例 343
18.3.3 DNS的图形配置工具 345
18.4 测试DNS服务器 348
习题 349
实验 349
第19章 邮件服务器sendmail 350
19.1 电子邮件简介 350
19.1.1 电子邮件系统的工作原理 350
19.1.2 电子邮件系统的组成 350
19.1.3 电子邮件与DNS 351
19.2 Red Hat Linux 9中的sendmail 352
19.2.1 sendmail简介 352
19.2.2 sendmail的安装与启动 352
19.2.3 sendmail的配置 353
19.2.4 使用sendmail的access数据库 356
19.2.5 设置邮件别名 357
19.2.6 sendmail配置文件的编译 358
习题 359
实验 359
第20章 Web服务器Apache 360
20.1 Apache的特性 360
20.1.1 Apache 1.3的性能 360
20.1.2 Apache 2.0的新性能 361
20.2 运行Apache 361
20.2.1 安装和启动Apache 361
20.2.2 配置Web服务器 363
20.2.3 控制服务器守护程序 368
20.2.4 设置虚拟站点 368
20.3 Apache管理的内容 370
20.3.1 存储文本和图像 370
20.3.2 激活Server Side Includes 370
20.3.3 配置CGI 372
20.3.4 监视服务器状态 372
习题 373
实验 373
附录A 参考答案 374
附录B 实验指导 383
参考文献 392