第1篇 基础篇 2
第1章Linux简介 2
1.1 UNIX系统简介 2
1.1.1 UNIX系统的发展历史 2
1.1.2 UNIX系统的特点 5
1.2 Linux系统简介 7
1.2.1 Linux系统的发展历史 7
1.2.2 Linux系统的特点 8
1.2.3 Linux系统的发行版本介绍 9
1.2.4 Linux系统的应用 10
1.3 Linux系统与其他系统的比较 10
1.3.1 Linux与UNIX操作系统的比较 10
1.3.2 Linux与Windows操作系统的比较 11
1.3.3 Linux与Mac OS的比较 11
习题 12
第2章Linux系统入门 13
2.1系统的开机与界面切换 13
2.1.1 Fedora Core 9系统的开机 13
2.1.2两种操作界面及切换 14
2.2用户的登录与注销 14
2.2.1系统的登录 15
2.2.2注销 16
2.3 Linux系统的关闭与重启动 17
2.3.1字符界面 17
2.3.2图形界面 18
2.4 Linux系统的图形界面介绍 18
2.4.1面板与桌面 19
2.4.2面板配置 21
2.4.3设置系统偏好或首选项 23
2.4.4终端仿真器 24
2.5 OpenOffice.org办公套件简介 24
2.5.1 OpenOffice.org Writer 24
2.5.2 OpenOffice.org Calc 25
2.5.3 OpenOffice.org Impress 25
2.5.4 OpenOffice.org Draw 26
2.6 Linux系统的在线帮助与资源 26
2.6.1 man 26
2.6.2 textinfo 27
2.6.3 yelp 27
2.6.4 Linux系统的其他帮助和资源 28
习题 29
实验 29
第3章shell与shell命令 30
3.1 shell基本功能与基本概念 30
3.1.1 shell基本功能 30
3.1.2字符与保留字 31
3.1.3文件命名及文件类型 32
3.1.4目录结构与路径 34
3.1.5 shell命令解释及执行 36
3.1.6环境变量与变量 38
3.1.7标准流与输入输出重定向 39
3.1.8管道 40
3.1.9引号机制、命令替换与参数替换 41
3.1.10 shell命令的执行 42
3.1.11 shell种类 42
3.2 Linux系统的基本命令 43
3.2.1目录操作基本命令 43
3.2.2文件操作基本命令 45
3.2.3文本文件编辑与操作基本命令 50
3.2.4进程管理基本命令 57
3.2.5时间管理命令 58
3.2.6文件或目录比较命令 60
3.2.7其他操作命令 64
3.3 shell启动 68
3.3.1登录shell的启动流程和工作过程 69
3.3.2修改profile文件 69
习题 69
实验 70
第2篇 管理篇 72
第4章 用户、组和密码管理 72
4.1 UNIX系统的用户和组 72
4.1.1用户与uid 72
4.1.2用户组 72
4.2与用户和组管理相关的文件 72
4.2.1 /etc/passwd 73
4.2.2 /etc/shadow 73
4.2.3 /etc/group 74
4.2.4 /etc/login…defs 74
4.2.5其他文件 74
4.3用户管理命令 74
4.3.1用户创建(useradd) 75
4.3.2用户删除(userdel) 76
4.3.3用户修改(usermod) 76
4.4组管理命令 77
4.4.1组创建(groupadd) 77
4.4.2组删除(groupdel) 77
4.4.3组修改(groupmod) 77
4.5密码管理 78
4.5.1密码管理综述 78
4.5.2密码管理命令(passwd) 78
4.5.3密码管理示例 79
4.6用户、组和密码管理图形界面 79
4.7与用户身份和位置相关的其他命令 81
4.7.1显示已登录用户的信息(who) 81
4.7.2显示与用户和组相关的身份信息(id) 82
4.7.3显示使用者的用户名(whoami) 82
4.7.4确定用户所使用的终端设备(tty) 82
4.7.5不退出系统而将自己切换成其他用户(su) 82
4.7.6向系统中已登录的所有用户发信息(wall) 83
习题 83
实验 84
第5章UNIX/Linux文件系统及管理 85
5.1文件系统权限及管理 85
5.1.1两种用户 85
5.1.2三种权限 85
5.1.3三类人 86
5.1.4权限控制 86
5.1.5默认权限与umask 87
5.2权限管理命令 87
5.2.1设置文件创建掩码(umask) 87
5.2.2改变文件的权限(chmod) 88
5.2.3改变文件的所有者(chown) 88
5.2.4改变文件的组(chgrp) 89
5.2.5 ext2和ext3文件系统的新增属性及其管理 89
5.3文件系统管理 90
5.3.1 UNIX/Linux支持的文件系统 90
5.3.2 UNIX/Linux系统使用的存储设备 92
5.3.3文件系统的创建 93
5.3.4文件系统的使用 96
5.3.5文件系统的检查、修复与同步 100
5.4与文件系统管理相关的其他命令 102
5.4.1确定文件类型(filele) 102
5.4.2文件查找命令(fiund) 102
5.4.3文件复制命令(dd) 104
5.4.4链接管理命令(In) 105
5.4.5特别文件创建(mknod) 105
5.4.6磁盘空间和文件系统的使用情况统计(df) 106
5.4.7目录使用磁盘空间情况统计(du) 106
5.4.8数据备份与文件归档管理(tar…cpio) 107
5.4.9文件的压缩与解压缩 110
5.5图形界面下的文件和目录管理 112
习题 113
实验 114
第6章 进程与任务或作业管理 115
6.1程序和进程的概念 115
6.1.1程序、进程、作业和任务 115
6.1.2三类进程 116
6.1.3 Linux操作系统的启动 116
6.1.4 0#进程与1#进程 116
6.1.5进程状态及转换 117
6.2进程调度策略与信号 119
6.2.1调度策略与优先级的计算 119
6.2.2信号与软中断 119
6.3进程管理与调度命令 120
6.3.1可执行文件的setuid、 setgid权限和目录的sticky属性 120
6.3.2进程管理与调度命令 122
6.3.3与进程身份和位置相关的命令 126
6.4作业和任务调度 130
6.4.1 at和batch 130
6.4.2 crontab 131
6.5进程管理图形界面 133
习题 134
实验 134
第7章 系统安装、启动与管理 135
7.1系统安装 135
7.1.1安装的任务与准备 135
7.1.2硬盘的物理结构与分区划分 136
7.1.3安装Linux系统所需的基本分区 137
7.1.4安装过程 138
7.1.5虚拟机的安装与使用 142
7.2引导器 GRUB 142
7.2.1简介 142
7.2.2操作界面 143
7.2.3配置文件与配置 144
7.2.4系统的启动及启动参数的修改 145
7.3 Linux系统的启动过程分析 146
7.3.1 /etc/inittab文件 146
7.3.2运行级别切换 148
7.3.3与启动过程相关的文件和目录 149
7.3.4 Fedora Core 9的/etc/event.d目录 151
7.3.5 Fedora Core 15的systemd 153
7.4软件包管理 154
7.4.1概述 154
7.4.2 rpm命令介绍 154
7.4.3其他软件包管理工具 156
7.4.4其他格式软件包管理 157
7.4.5图形界面 159
7.5 Linux系统的升级 160
7.5.1系统的在线升级 160
7.5.2 Linux系统的离线升级 161
7.5.3其他升级方式 161
7.6日志管理 162
7.6.1日志系统 162
7.6.2常见日志文件及阅读 165
7.6.3日志滚动 167
7.7系统管理 167
7.7.1系统管理的任务 167
7.7.2系统管理工具与命令 168
7.8内核配置与参数在线调整 172
7.8.1内核配置 172
7.8.2编译与安装新内核 173
7.8.3模块管理 174
7.8.4内核参数在线调整 175
习题 176
实验 177
第8章 设备管理 178
8.1设备管理概述 178
8.1.1 Linux系统支持的设备 178
8.1.2硬件的自动检测与发现 179
8.1.3系统设置与查看 180
8.2非即插即用设备的管理与驱动程序的安装 180
8.2.1驱动程序与安装准备 180
8.2.2将驱动程序编译进内核 181
8.2.3将设备编译成可加载模块 181
8.3打印机的管理与使用 182
8.3.1 CUPS的安装 182
8.3.2打印机安装与配置 182
8.3.3 CUPS系统的启动 184
8.3.4打印机使用 184
8.3.5打印机管理 185
8.3.6 CUPS的配置文件 186
8.4串口的管理与使用 186
8.4.1 Linux系统的串口设备 186
8.4.2 setserial 187
8.4.3 minicom 188
8.5交换区管理 190
8.5.1概述 190
8.5.2使用交换设备 191
8.5.3使用交换文件 191
习题 191
实验 192
第9章 网络管理与网络应用 193
9.1 TCP/IP 193
9.1.1 TCP/IP协议体系结构 193
9.1.2 IP地址 193
9.1.3网络掩码 195
9.1.4子网及子网化 195
9.1.5端口及服务 196
9.1.6物理地址、逻辑地址和主机名 197
9.2 TCP/IP配置 197
9.2.1 TCP/IP网络配置 197
9.2.2与网络有关的配置文件 200
9.3网络管理命令 203
9.3.1 ping 203
9.3.2 netstat 204
9.3.3 arp 205
9.3.4 hostname 206
9.3.5 route 206
9.3.6 ifconfiig 207
9.3.7 ifup和ifdown 208
9.3.8 nslookup/host 209
9.3.9 traceroute 209
9.4 Linux系统的服务管理 209
9.4.1网络服务与守护进程 209
9.4.2守护进程工作原理 209
9.4.3 Linux系统服务配置 210
9.4.4超级服务器 212
9.5网络应用常用命令简介 214
9.5.1 telnet与ssh 214
9.5.2 ftp与tftp 214
9.5.3 mail 215
9.5.4 wget 216
9.5.5 talk、 write与mesg 217
9.5.6 r-命令 217
习题 217
实验 218
第3篇 编程与开发篇 220
第10章shell编程 220
10.1正则表达式 220
10.1.1字符集 220
10.1.2 shell正则表达式 222
10.2流编辑(sed) 223
10.2.1功能与用法 223
10.2.2参数说明 223
10.2.3脚本命令 223
10.2.4 sed使用示例 224
10.3模式搜索与处理(awk) 224
10.3.1功能与用法 224
10.3.2参数说明 225
10.3.3记录和域 225
10.3.4变量 225
10.3.5操作符 226
10.3.6控制语句 226
10.3.7常用函数 226
10.3.8 awk程序的执行 227
10.3.9 awk使用示例 227
10.4 Boume shell及其编程 228
10.4.1特殊字符 228
10.4.2 I/O重定向 228
10.4.3变量与参数 229
10.4.4 shell的状态 230
10.4.5 shell的调用与变量传递 230
10.4.6 shell程序设计 231
10.4.7命令行参数与选项的处理 239
10.4.8 shell程序调试 243
10.4.9 shell脚本程序格式 244
习题 246
实验 247
第11章Linux系统的C编程 248
11.1编译器 248
11.1.1功能与用法 248
11.1.2参数说明 249
11.1.3应用示例 249
11.1.4 gcc/g++++的工作过程 250
11.2头文件 250
11.3链接器与库文件 251
11.4静态库 251
11.4.1引例 251
11.4.2构造和管理静态库 252
11.4.3使用自己的库 252
11.5共享库 253
11.5.1构造共享库 253
11.5.2共享库的使用 253
11.6 make与Makefile 255
11.6.1 make命令的用法简介 256
11.6.2 Makefile文件 256
11.6.3 Makefile文件的用法简介 257
11.6.4 Makefile文件的使用示例 257
11.7调试器gdb 259
11.7.1 gdb的功能 259
11.7.2 gdb的基本命令 259
11.7.3程序调试方法 260
11.8 UNIX/Linux其他编程工具简介 261
11.8.1常用库与GNOME/GTK开发 261
11.8.2 KDevelop/Qt开发 262
11.8.3 Java开发 263
11.8.4 Delphi开发 264
11.8.5 Perl开发 264
11.8.6数据库开发 265
11.8.7 PBP开发 266
习题 266
实验 267
第4篇 网络应用篇 270
第12章DHCP服务器 270
12.1 DHCP介绍 270
12.1.1 DHCP协议 270
12.1.2 DHCP的工作过程 271
12.2 DHCP服务器的安装与启动 272
12.2.1 DHCP的安装 272
12.2.2 DHCP的启动 272
12.3 DHCP的配置 273
12.3.1配置文件 273
12.3.2配置文件中的定义、参数、选项及意义 275
12.4 DHCP规划 276
12.4.1在不同的网络中使用DHCP 276
12.4.2设置DHCP中继 277
12.4.3设置备份DHCP 277
12.5 DHCP客户端设置 278
12.5.1图形界面方式 278
12.5.2手动方式 279
习题 279
实验 279
第13章FTP与TFTP服务器 280
13.1 FTP与FTP服务器 280
13.1.1 FTP的相关概念 280
13.1.2 Linux系统的FTp服务器 283
13.2 vsftpd服务器 283
13.2.1 vsftpd服务器的安装与启动 283
13.2.2 vsftpd的配置 284
13.2.3 vsftpd.conf的常见应用配置 289
13.2.4 vsftpd服务器的图形配置界面 291
13.3 FTP服务器的使用 292
13.3.1用浏览器访问 292
13.3.2使用客户端命令ftp访问 292
13.4 TFTP与TFTP服务器的使用简介 295
13.4.1 TFTP协议 295
13.4.2 TFTP的安装、配置及应用 297
13.5与防火墙和SELinux的关系 298
习题 298
实验 299
第14章telnet与ssh服务器 300
14.1 telnet协议与telnet服务器 300
14.1.1 telnet协议简介 300
14.1.2 telnet服务器的启动与设置 302
14.1.3 telnet服务的使用 304
14.2 Fedora Core 9下的openssh服务 305
14.2.1软件安装 306
14.2.2 openssh服务器的启动与设置 306
14.2.3 openssh服务的使用 309
14.3与防火墙的关系 313
习题 313
实验 313
第15章 网络资源共享服务器 314
15.1网络资源共享简介 314
15.1.1网络资源共享的概念 314
15.1.2异质环境中的文件共享 314
15.2 Samba服务 315
15.2.1 SMH协议与Samba 315
15.2.2 Samba的安装与启动管理 316
15.2.3 Samba的配置 317
15.2.4配置共享打印机 321
15.2.5 Samba共享服务使用 323
15.2.6 Samba图形界面的配置 325
15.2.7关于防火墙和SELinux的说明 327
15.3 NFS服务器 327
15.3.1 NFS介绍 327
15.3.2 NFS文件系统配置 328
15.3.3 NFS系统的使用 331
15.3.4 NFS的其他功能 333
15.3.5关于NFS的其他说明 335
习题 335
实验 336
第16章Linux系统的安全 337
16.1 Linux系统安全概述 337
16.1.1 Linux系统的基本安全机制 337
16.1.2 Linux系统可能遇到的安全问题及防范策略 339
16.2检查和监督系统的运行情况 341
16.2.1用ifconfig检查网络接口 341
16.2.2用netstat检查网络 341
16.2.3用ps或pstree检查进程 341
16.2.4检查系统的日志文件 341
16.2.5停止不需要的服务 342
16.2.6去掉多余的具有SUID和SGID属性的文件 342
16.3入侵检测和事件报告 342
16.3.1使用完整性检查工具 342
16.3.2事件报告制度 343
16.4防火墙iptables 344
16.4.1 iptables介绍 344
16.4.2 iptables的表和链 345
16.4.3 iptables命令的用法及选项 346
16.4.4 iptables的动作 348
16.4.5 iptables的地址转换 349
16.4.6 iptables使用示例 350
16.4.7 iptables图形界面 351
16.5 SELinux 352
16.5.1 SELinux中的安全类型和角色 353
16.5.2 SELinux中的策略 354
16.5.3 Fedora SELinux的Targeted策略 354
16.5.4 Fedora SELinux的策略及改变 355
16.5.5 Fedora SELinux中的布尔值及改变 355
16.5.6检查Fedora SELinux的状态 357
16.5.7 Fedora SELinux安全上下文管理 358
16.5.8 Fedora SELinux管理图形界面 359
16.5.9 SELinux在Fedora中的应用 359
习题 362
实验 362
第17章Intemet接入与代理服务器 363
17.1 Internet接入 363
17.1.1配置调制解调器连接 363
17.1.2配置xDSL连接 365
17.1.3以ADSL命令行方式接入网络 366
17.2代理服务器 367
17.2.1代理服务和Squid 367
17.2.2 Squid的安装和启动管理 368
17.3 Squid的配置 369
17.3.1 Squid的配置文件及结构 369
17.3.2缓存代理服务配置 370
17.3.3 Squid的访问控制配置 371
17.4配置透明代理 374
17.4.1将Squid配置为支持透明功能的代理服务器 374
17.4.2使用iptables进行端口转发 375
17.4.3设置IP转发 375
17.5设置客户端代理 375
17.5.1 Windows操作系统中IE浏览器的设置 375
17.5.2 Fedora Core 9操作系统中Mozilla Firefox浏览器的设置 375
17.6 Squid与SELinux 376
17.6.1布尔变量 376
17.6.2标签 376
17.6.3修改Squid监听的默认端口 376
17.6.4关于配置透明代理 377
习题 377
实验 377
第18章 域名服务器DNS 378
18.1 DNS概述 378
18.1.1 IP与域名的转换 378
18.1.2域名空间和区域 379
18.1.3 DNS查询 380
18.1.4客户端与域名解析相关的配置文件 380
18.1.5 DNS服务器的类型 380
18.2 BIND 381
18.2.1 BIND简介 381
18.2.2安装BIND 381
18.2.3 BIND的启动管理 382
18.2.4 DNS服务器的运行方式及工作目录 382
18.2.5 DNS服务器配置基础 383
18.3配置DNS服务器 389
18.3.1 BIND图形配置工具 389
18.3.2域名服务器手动配置示例 392
18.4测试DNS服务器 394
18.5 DNS与防火墙、SELinux的关系 395
18.5.1 DNS与防火墙的关系 395
18.5.2 DNS与SELinux的关系 395
习题 396
实验 396
第19章 邮件服务器sendmail 397
19.1电子邮件简介 397
19.1.1电子邮件系统的工作原理 397
19.1.2电子邮件系统的组成 397
19.1.3电子邮件与DNS 398
19.2 Fedora Core 9中的sendmail 399
19.2.1 sendmail简介 399
19.2.2 sendmail的安装与启动 399
19.2.3 sendmail的配置 401
19.2.4使用sendmail的Access数据库 403
19.2.5设置邮件别名 404
19.2.6 sendmail配置文件的编译 405
习题 406
实验 406
第20章Web服务器Apache 407
20.1 Apache概述 407
20.2 Apache的安装和启动 408
20.2.1 Apache的安装 408
20.2.2 Apache的启动管理状态查询 408
20.2.3 Apache服务的测试 409
20.3 Apache的配置文件和配置指令 409
20.3.1 Apache主配置文件的结构 409
20.3.2 Apache的配置指令 409
20.4 Web服务器配置工具及配置示例 418
20.4.1 Apache图形配置工具 418
20.4.2 Web服务器配置示例 419
20.5 httpd与防火墙、SELinux的关系 422
20.5.1 httpd与防火墙的关系 422
20.5.2 httpd与SELinux的关系 422
习题 423
实验 423
参考文献 424