上册
第1章 欢迎来到Linux的世界 1
1.1 UNIX和GNU-Linux的历史 2
1.1.1 Linux 的鼻祖:UNIX 2
1.1.2 回顾1983年 3
1.1.3 接下来的场景,1991年 4
1.1.4 代码是免费的 4
1.1.5 玩得开心 5
1.2 是什么使Linux如此优秀 5
1.2.1 为什么Linux在硬件厂商和开发人员中广受欢迎 8
1.2.2 可移植的Linux 9
1.2.3 C编程语言 9
1.3 Linux概述 10
1.3.1 Linux具有内核编程接口 11
1.3.2 Linux支持多用户 11
1.3.3 Linux可以运行多任务 11
1.3.4 Linux提供安全的分层文件系统 11
1.3.5 Shell:命令解释器和编程语言 12
1.3.6 一个有用工具的大集合 14
1.3.7 进程间通信 14
1.3.8 系统管理 14
1.4 Linux的其他特性 15
1.4.1 GUI:图形用户界面 15
1.4.2 (连接)网络实用工具 15
1.4.3 软件开发 16
1.5 本书约定 16
1.6 本章小结 18
1.7 练习 18
第1部分 安装Fedora/RHEL Linux 21
第2章 安装概述 22
2.1 桌面Live CD和安装DVD 23
2.2 更多信息 24
2.3 安装规划 25
2.3.1 注意事项 25
2.3.2 需求 25
2.3.3 处理器架构 27
2.3.4 界面:安装程序和安装系统 28
2.3.5 安装哪一个:Fedora或Red Hat Enterprise Linux 29
2.3.6 Fedora/RHEL的发行 30
2.3.7 Fedora标准版本 30
2.3.8 Fedora发行集 31
2.3.9 安装一个全新的副本或升级现有的Fedora/RHEL系统 31
2.3.10 硬盘设置 31
2.3.11 RAID 38
2.3.12 LVM:逻辑卷管理器 39
2.4 安装过程 40
2.5 下载和刻录CD/DVD 40
2.5.1 下载CD/DVD ISO映像文件的简便方法 41
2.5.2 下载CD/DVD ISO映像文件的其他方式 41
2.5.3 验证ISO映像文件 43
2.5.4 刻录CD/DVD 44
2.6 收集系统信息 44
2.7 本章小结 46
2.8 练习 46
2.9 高级练习 46
第3章 一步一步安装 47
3.1 运行Fedora Live会话 48
3.1.1 引导系统 48
3.2 安装Fedora/RHEL 50
3.2.1 从Live会话安装Fedora 51
3.2.2 从DVD安装盘进行安装/升级 52
3.2.3 Anaconda安装程序 53
3.2.4 Firstboot:当重新启动时 61
3.2.5 初始化数据库和更新系统 62
3.3 安装任务 63
3.3.1 修改引导参数(选项) 63
3.3.2 使用Disk Druid对磁盘进行分区 66
3.3.3 palimpsest:GNOME的磁盘工具 72
3.3.4 使用Kickstart配置器 76
3.3.5 设置一个双重引导系统 77
3.4 gnome-control-center/Displays:配置显示 79
3.5 本章小结 79
3.6 练习 80
3.7 高级练习 80
第2部分 Fedora/RHEL入门 81
第4章 介绍Fedora和Red Hat Enterprise Linux 82
4.1 限制你的权力(超级用户/root权限) 83
4.2 Fedora/RHEL桌面之旅 83
4.2.1 登录系统 84
4.2.2 配置后备模式(Fedora) 85
4.2.3 安装和使用gnome-tweak-tool(Fedora) 86
4.2.4 桌面简介 88
4.2.5 从桌面启动程序 89
4.2.6 切换工作区 90
4.2.7 设置个人首选项 91
4.2.8 鼠标首选项 92
4.2.9 窗口操作 93
4.2.10 使用Nautilus处理文件 94
4.2.11 软件更新 100
4.2.12 会话管理 101
4.2.13 获得帮助 101
4.2.14 随意实验 102
4.2.15 注销 102
4.3 发挥桌面的最大作用 102
4.3.1 GNOME桌面术语 102
4.3.2 打开文件 103
4.3.3 面板 104
4.3.4 主菜单 105
4.3.5 窗口 105
4.3.6 对象的上下文菜单 109
4.4 更新、安装和删除软件包 112
4.4.1 更新 113
4.4.2 添加/删除软件 113
4.5 在哪里能找到文档 114
4.5.1 GNOME桌面帮助窗口 114
4.5.2 man:显示系统手册 114
4.5.3 apropos:根据关键字搜索 116
4.5.4 info:显示工具的有关信息 117
4.5.5 --help选项 119
4.5.6 HOWTO:找到工作原理 120
4.5.7 获得帮助 120
4.6 关于登录的更多信息 123
4.6.1 登录画面 123
4.6.2 如果无法登录该怎么办 123
4.6.3 远程登录:终端仿真、ssh和拨号连接 124
4.6.4 从终端(仿真器)登录 124
4.6.5 更改密码 125
4.6.6 使用虚拟控制台 127
4.7 在命令行中工作 127
4.7.1 纠正错误 128
4.7.2 重复/编辑命令行 129
4.8 本章小结 130
4.9 练习 131
4.10 高级练习 132
第5章 Linux实用程序 133
5.1 特殊字符 134
5.2 基本实用程序 135
5.2.1 ls:列出文件的名称 135
5.2.2 cat:显示一个文本文件 136
5.2.3 rm:删除一个文件 136
5.2.4 less即more:一次仅显示一个文本文件的一屏 137
5.2.5 hostname:显示系统名称 137
5.3 使用文件 137
5.3.1 cp:复制一个文件 137
5.3.2 mv:更改文件名 138
5.3.3 lpr:打印文件 139
5.3.4 grep:搜索字符串 140
5.3.5 head:显示文件的开头 140
5.3.6 tail:显示文件的末尾 141
5.3.7 sort:按顺序显示文件 142
5.3.8 uniq:从文件中删除重复行 142
5.3.9 diff:比较两个文件 143
5.3.10 file:标识文件的内容 144
5.4 |(Pipe):进程间通信 144
5.54 个常用工具 145
5.5.1 echo:显示文本 145
5.5.2 date:显示时间和日期 146
5.5.3 script:记录Shell会话 146
5.5.4 unix2dos:把Linux和Macintosh文件转换为Windows格式 147
5.6 压缩和归档文件 148
5.6.1 bzip2:压缩文件 148
5.6.2 bzcat和bunzip2:解压缩文件 149
5.6.3 gzip:压缩文件 150
5.6.4 tar:打包和解包文档 150
5.7 定位实用程序 153
5.7.1 which和whereis:定位一个实用程序 153
5.7.2 locate:搜索一个文件 154
5.8 显示用户和系统信息 155
5.8.1 who:列出系统上的用户 156
5.8.2 finger:列出系统上的用户 156
5.8.3 w:列出系统上的用户 158
5.9 与其他用户通信 158
5.9.1 write:发送消息 158
5.9.2 mesg:拒绝或接受消息 159
5.10 电子邮件 160
5.11 教程:使用vim创建和编辑文件 160
5.11.1 启动vim 161
5.11.2 命令和输入模式 162
5.11.3 输入文字 163
5.11.4 获得帮助 164
5.11.5 结束编辑会话 167
5.11.6 兼容参数 167
5.12 本章小结 167
5.13 练习 169
5.14 高级练习 170
第6章 Linux文件系统 172
6.1 分层文件系统 173
6.2 目录文件和普通文件 174
6.2.1 文件名 175
6.2.2 工作目录 177
6.2.3 你的主目录 177
6.3 路径名 178
6.3.1 绝对路径 178
6.3.2 相对路径 179
6.4 目录操作 180
6.4.1 mkdir:创建一个目录 181
6.4.2 cd:改变工作目录 182
6.4.3 rmdir:删除一个目录 183
6.4.4 使用路径名 184
6.4.5 mv, cp:移动或复制文件 185
6.4.6 mv:移动目录 186
6.4.7 重要的标准目录和文件 186
6.5 访问权限 188
6.5.1 ls -l:显示权限 189
6.5.2 chmod:更改访问权限 190
6.5.3 setuid和setgid权限 192
6.5.4 目录访问权限 193
6.6 ACL:访问控制列表 195
6.6.1 启用ACL 195
6.6.2 使用访问规则 196
6.6.3 为目录设置默认规则 199
6.7 链接 200
6.7.1 硬链接 201
6.7.2 符号链接 204
6.7.3 rm:删除链接 206
6.8 本章小结 206
6.9 练习 208
6.10 高级练习 210
第7章 Shell 211
7.1 命令行 212
7.1.1 语法 212
7.1.2 处理命令行 215
7.1.3 执行命令 217
7.1.4 编辑命令行 218
7.2 标准输入和标准输出 218
7.2.1 作为文件的屏幕 218
7.2.2 作为标准输入和标准输出的键盘和屏幕 218
7.2.3 重定向 220
7.2.4 管道 224
7.3 在后台运行命令 227
7.3.1 将作业从前台移到后台 228
7.3.2 kill:中止后台作业 229
7.4 文件名生成/路径名扩展 229
7.4.1 ?特殊字符 230
7.4.2 *特殊字符 231
7.4.3 []特殊字符 232
7.5 内置命令 234
7.6 本章小结 235
7.7 练习 236
7.8 高级练习 237
第3部分 Fedora/RHEL深入挖掘 239
第8章 Linux图形用户界面:X和GNOME 240
8.1 X Window系统 241
8.1.1 使用X Window系统 243
8.1.2 桌面环境/管理器 248
8.2 Nautilus文件浏览器窗口 249
8.2.1 视图面板 250
8.2.2 侧边栏 250
8.2.3 控制栏 252
8.2.4 菜单栏 252
8.3 Nautilus空间视图(RHEL) 255
8.4 GNOME工具. 256
8.4.1 选择字体窗口 256
8.4.2 选择颜色窗口 257
8.4.3 Run Application窗口 257
8.4.4 搜索文件 257
8.4.5 GNOME终端仿真器/Shell 259
8.5 本章小结 259
8.6 练习 260
8.7 高级练习 261
第9章 Bourne Again Shell 262
9.1 背景 263
9.2 Shell基础 264
9.2.1 启动文件 264
9.2.2 符号命令 268
9.2.3 重定向标准错误 268
9.2.4 编写一个简单的shell脚本 271
9.2.5 分隔和分组命令 275
9.2.6 作业控制 278
9.2.7 操作目录栈 281
9.3 参数和变量 283
9.3.1 用户创建变量 284
9.3.2 变量属性 287
9.3.3 关键字变量 289
9.4 特殊字符 297
9.5 进程 298
9.5.1 进程结构 298
9.5.2 进程标识 298
9.5.3 执行命令 300
9.6 历史 300
9.6.1 控制历史的变量 301
9.6.2 重新执行和编辑命令 302
9.6.3 Readline库 310
9.7 别名 316
9.7.1 别名中的单引号和双引号 317
9.7.2 别名的示例 318
9.8 函数 320
9.9 控制bash:特性和选项 323
9.9.1 命令行选项 323
9.9.2 shell特性 323
9.10 处理命令行 326
9.10.1 历史扩展 327
9.10.2 别名替代 327
9.10.3 解析和扫描命令行 327
9.10.4 命令行扩展 328
9.11 本章小结 336
9.12 练习 337
9.13 高级练习 339
第10章 网络与因特网 341
10.1 网络介绍 342
10.2 网络类型及其工作原理 343
10.2.1 广播网络 344
10.2.2 点对点网络 344
10.2.3 交换网络 345
10.2.4 LAN:局域网 345
10.2.5 WAN:广域网 348
10.2.6 网关和路由器的互联网络 348
10.2.7 网络协议 351
10.2.8 IPv4 353
10.2.9 IPv6(互联网协议第6版) 353
10.2.10 主机地址 357
10.2.11 CIDR:无类别域间路由 360
10.2.12 主机名 360
10.3 通过网络通信 361
10.3.1 finger:显示远程用户信息 362
10.3.2 邮件列表服务器 362
10.4 网络工具 362
10.4.1 可信主机 363
10.4.2 OpenSSH工具 363
10.4.3 telnet:登录远程系统 363
10.4.4 ftp:通过网络传输文件 366
10.4.5 ping:测试网络连接 366
10.4.6 traceroute:跟踪互联网路由 367
10.4.7 host和dig:查询互联网名称服务器 368
10.4.8 whois:查找Internet站点信息 369
10.5 分布式计算 370
10.5.1 客户端/服务器模型 371
10.5.2 DNS:域名服务 371
10.5.3 端口 373
10.5.4 NIS:网络信息服务 374
10.5.5 NFS:网络文件系统 374
10.6 WWW:万维网 379
10.6.1 浏览器 380
10.6.2 搜索引擎 381
10.6.3 URL:统一资源定位器 381
10.7 本章小结 381
10.8 练习 382
10.9 高级练习 383
第4部分 系统管理 385
第11章 系统管理:核心概念 386
11.1 以root权限运行命令 388
11.1.1 特权用户的特殊权力 388
11.1.2 获取root权限 389
11.1.3 使用su获取root权限 391
11.1.4 使用sudo获取root权限 393
11.1.5 sudoers:配置sudo 398
11.1.6 锁定root账户(删除root密码) 404
11.1.7 consolehelper:允许普通用户运行特权命令 404
11.2 init守护进程 405
11.2.1 systemd init守护进程(Fedora) 405
11.2.2 Upstart init 守护进程(RHEL) 416
11.2.3 SysVinit(RC)脚本:启动和停止系统服务(Fedora/RHEL) 423
11.3 系统操作 428
11.3.1 运行级别 429
11.3.2 引导系统 430
11.3.3 单用户模式 430
11.3.4 进入图形化多用户模式 431
11.3.5 登录 432
11.3.6 注销 433
11.3.7 关闭系统 433
11.3.8 崩溃 435
11.4 救援已安装的系统 437
11.5 确保系统安全 437
11.5.1 避免特洛伊木马 438
11.5.2 SELinux 439
11.5.3 PAM 443
11.6 系统管理工具 448
11.6.1 文本型管理工具 448
11.6.2 图形化配置工具 455
11.7 设置服务器 456
11.7.1 配置文件中的标准规则 457
11.7.2 rpcinfo:显示关于rpcbind的信息 459
11.7.3 xinetd超级服务器 460
11.7.4 保护服务器 463
11.8 DHCP: 配置网络接口 469
11.8.1 更多信息 469
11.8.2 DHCP的工作原理 469
11.8.3 DHCP客户端 470
11.8.4 DHCP服务器 471
11.9 nsswitch.conf:首先查看哪个服务 473
11.9.1 信息 473
11.9.2 方法 474
11.9.3 搜索顺序 474
11.9.4 操作项 474
11.9.5 compat方法:passwd、group和shadow文件中的±. 475
11.10 获得帮助 476
11.11 本章小结 476
11.12 练习 477
11.13 高级练习 478
第12章 文件、目录和文件系统 479
12.1 重要的文件和目录 480
12.2 文件类型 493
12.2.1 普通文件、目录、链接和Inode 493
12.2.2 设备特殊文件 494
12.3 文件系统 497
12.3.1 mount:挂载文件系统 498
12.3.2 umount:卸载文件系统 501
12.3.3 fstab:跟踪文件系统 502
12.3.4 fsck:检查文件系统的完整性 503
12.3.5 tune2fs:更改文件系统参数 504
12.4 本章小结 506
12.5 练习 506
12.7 高级练习 506
第13章 查找、下载和安装软件 507
13.1 简介 508
13.2 JumpStart:使用yum安装和卸载软件包 509
13.3 寻找包含所需应用程序或文件的软件包 513
13.4 yum:保持系统最新 515
13.4.1 更新包 515
13.4.2 yum 命令 516
13.4.3 yum Groups 517
13.4.4 使用yumdownloader下载RPM包文件 518
13.4.5 yum.conf:配置yum 519
13.4.6 yum 资源库 520
13.5 BitTorrent 521
13.6 RPM:RPM软件包管理器 524
13.6.1 查询软件包和文件 525
13.6.2 安装、升级和卸载软件包 527
13.6.3 安装Linux内核二进制文件 528
13.7 安装非rpm软件 528
13.7.1 /opt和/usr/local目录 528
13.7.2 GNU配置和构建系统 529
13.8 保持软件最新 530
13.8.1 Bugs(缺陷) 531
13.8.2 Errata(勘误表) 531
13.8.3 Red Hat网络(RHEL) 531
13.9 wget:非交互式下载文件 532
13.10 本章小结 533
13.11 练习 533
13.12 高级练习 534
第14章 使用CUPS进行打印 535
14.1 概述 536
14.1.1 先决条件 537
14.1.2 更多信息 537
14.1.3 注记 538
14.2 Fedora/RHEL自动配置本地打印机 538
14.3 JumpStart I:使用system-config-printer配置打印机 538
14.3.1 配置选项 539
14.4 JumpStart II:设置本地或远程打印机 540
14.5 使用CUPS Web界面 544
14.6 配置打印机 546
14.6.1 修改打印机 546
14.6.2 CUPS Web界面 546
14.6.3 在命令行中使用CUPS 547
14.6.4 共享CUPS打印机 551
14.7 传统的UNIX打印 553
14.8 从Windows打印 554
14.8.1 使用CUPS打印 554
14.8.2 使用Samba打印 555
14.9 打印到Windows 556
14.10 本章小结 556
14.11 练习 557
14.12 高级练习 557
第15章 构建Linux内核 558
15.1 下载、安装和预备内核源代码 559
15.1.1 先决条件 560
15.1.2 更多信息 560
15.1.3 下载源代码 560
15.1.4 安装源代码 561
15.1.5 预备源代码 562
15.2 配置和编译Linux内核 563
15.2.1 标记内核 563
15.2.2 config:配置内核 564
15.2.3 定制内核 565
15.2.4 清理源代码树 567
15.2.5 复制配置文件 568
15.2.6 编译内核映像文件和可加载模块 568
15.2.7 使用可加载内核模块 568
15.3 安装内核、模块和相关文件 569
15.4 GRUB:Linux引导加载程序 570
15.4.1 配置GRUB 571
15.4.2 grub-install:安装MBR和GRUB文件 572
15.5 dmesg:显示内核消息 572
15.6 本章小结 573
15.7 练习. 573
15.8 高级练习 574
第16章 管理任务 575
16.1 配置用户和组账户 576
16.1.1 system-config-users:管理用户账户 576
16.1.2 从命令行管理用户账户 578
16.2 备份文件 579
16.2.1 选择备份介质 580
16.2.2 备份工具 580
16.2.3 执行一次简单的备份 583
16.3 计划任务 584
16.3.1 crond和anacron:安排日常任务 585
16.3.2 at:偶尔运行的任务 589
16.4 系统报告 589
16.4.1 vmstat:报告虚拟内存统计信息 589
16.4.2 top:列出使用资源最多的进程 591
16.5 维护系统 592
16.5.1 parted:报告并分区硬盘 592
16.5.2 logrotate:管理日志文件 595
16.5.3 rsyslogd:记录系统消息 597
16.5.4 保证用户知情 600
16.5.5 产生问题 601
16.5.6 解决问题 602
16.6 MySQL 609
16.6.1 更多信息 609
16.6.2 术语 609
16.6.3 语法和约定 610
16.6.4 先决条件 610
16.6.5 注记 610
16.6.6 JumpStart:设置MySQL 611
16.6.7 选项 611
16.6.8 my.cnf配置文件. 612
16.6.9 使用MySQL 612
16.7 本章小结 617
16.8 练习 618
16.9 高级练习 618
第17章 配置和监控局域网 619
17.1 设置硬件 620
17.1.1 连接计算机 620
17.1.2 路由器 621
17.1.3 NIC:网络接口卡 621
17.1.4 工具 622
17.2 配置系统 624
17.3 NetworkManager:配置网络连接 625
17.3.1 NetworkManager小程序的右键菜单 625
17.4 设置服务器 629
17.5 Cacti简介 631
17.5.1 配置SNMP 632
17.5.2 设置LAMP 632
17.5.3 启用Cacti轮询 635
17.5.4 配置Cacti 635
17.5.5 基本Cacti管理 636
17.5.6 设置远程数据源 638
17.6 更多信息 642
17.7 本章小结 642
17.8 练习 643
17.9 高级练习 643
下册
第5部分 使用客户端和设置服务器 1
第18章 OpenSSH:安全网络通信 2
18.1 OpenSSH简介 3
18.1.1 OpenSSH工作原理 4
18.1.2 文件 4
18.1.3 更多信息 6
18.2 运行ssh、scp和sftp(OpenSSH客户端) 6
18.2.1 先决条件 6
18.2.2 JumpStart:使用ssh和scp连接OpenSSH服务器 6
18.2.3 配置OpenSSH客户端 7
18.2.4 ssh:登录远程系统或在远程系统上执行命令 10
18.2.5 scp:在本地与远程系统之间复制文件 13
18.2.6 sftp:一个安全的FTP客户端 15
18.2.7 ~/.ssh/config 和/etc/ssh/ssh_config配置文件 15
18.3 设置OpenSSH服务器(sshd) 17
18.3.1 先决条件 17
18.3.2 注记 17
18.3.3 JumpStart: 启动OpenSSH服务器 18
18.3.4 授权密钥: 自动登录 18
18.3.5 ssh-agent: 存放你的私钥 21
18.3.6 命令行选项 22
18.3.7 /etc/ssh/sshd_config配置文件 22
18.4 排除故障 24
18.5 隧道/端口转发 26
18.5.1 转发X11 26
18.5.2 端口转发 27
18.6 本章小结 28
18.7 练习 29
18.8 高级练习 29
第19章 FTP:通过网络传输文件 30
19.1 FTP简介 31
19.1.1 安全 31
19.1.2 FTP连接 32
19.1.3 FTP客户端 32
19.1.4 更多信息 33
19.1.5 注记 33
19.2 运行ftp和sftp的FTP客户端 33
19.2.1 先决条件 33
19.2.2 JumpStart I:使用FTP下载文件 33
19.2.3 匿名FTP 37
19.2.4 自动登录 37
19.2.5 二进制与ASCII传输模式 38
19.2.6 FTP规范 38
19.3 建立FTP服务器(vsftpd) 42
19.3.1 先决条件 42
19.3.2 注记 42
19.3.3 JumpStart II:启动vsftpd FTP服务器 43
19.3.4 故障排除 43
19.3.5 配置vsftpd服务器 44
19.4 本章小结 56
19.5 练习 57
19.6 高级练习 57
第20章 sendmail:设置邮件服务器、客户端及更多 58
20.1 sendmail简介 59
20.1.1 出站电子邮件 60
20.1.2 入站电子邮件 60
20.1.3 sendmail的替代品 60
20.1.4 更多信息 61
20.2 设置sendmail邮件服务器 62
20.2.1 先决条件 62
20.2.2 注记 62
20.3 JumpStart I:在客户端配置sendmail 63
20.4 JumpStart II:在服务器上配置sendmail 64
20.5 使用sendmail消息 64
20.5.1 邮件日志 65
20.5.2 别名和转发 66
20.5.3 相关程序 68
20.6 配置sendmail 68
20.6.1 sendmail.mc 和 sendmail.cf 文件 69
20.6.2 /etc/mail目录中的其他文件 71
20.7 SpamAssassin 73
20.7.1 SpamAssassin的工作原理 74
20.7.2 先决条件 74
20.7.3 测试SpamAssassin 75
20.7.4 配置SpamAssassin 76
20.8 其他电子邮件工具 80
20.8.1 Webmail 80
20.8.2 邮件列表 82
20.8.3 设置IMAP或POP3邮件服务器 85
20.9 基于身份认证的转发 85
20.10 本章小结 87
20.11 练习 88
20.12 高级练习 88
第21章 NIS和LDAP 90
21.1 NIS简介 91
21.1.1 NIS工作原理 91
21.1.2 更多信息 94
21.2 运行NIS客户端 94
21.2.1 先决条件 94
21.2.2 注记 95
21.2.3 配置NIS客户端 95
21.2.4 客户端故障排除 97
21.2.5 yppasswd: 更改NIS密码 98
21.3 设置NIS服务器 100
21.3.1 先决条件 100
21.3.2 注记 101
21.3.3 配置服务器 102
21.3.4 服务器故障排除 107
21.3.5 NIS密码更新守护进程:yppasswdd 108
21.4 LDAP 109
21.4.1 更多信息 111
21.5 设置LDAP服务器 112
21.5.1 先决条件 112
21.5.2 注记 112
21.5.3 一步一步设置 112
21.6 使用LDAP的工具 118
21.6.1 Evolution邮件 118
21.7 本章小结 122
21.8 练习 122
21.9 高级练习 122
第22章 NFS:共享目录层次结构 124
22.1 NFS简介 126
22.1.1 更多信息 128
22.2 运行NFS客户端 129
22.2.1 先决条件 129
22.2.2 JumpStart I: 挂载远程目录层次结构 129
22.2.3 mount: 挂载目录层次结构 130
22.2.4 提高性能 133
22.2.5 /etc/fstab: 自动挂载目录层次结构 134
22.3 设置NFS服务器 135
22.3.1 先决条件 135
22.3.2 注记 136
22.3.3 JumpStart II: 使用system-config-nfs配置NFS服务器(Fedora) 136
22.3.4 手动导出目录层次结构 138
22.3.5 系统在哪里保存NFS挂载信息 142
22.3.6 exportfs: 维护导出的目录列表 143
22.3.7 故障排除 144
22.4 automount: 按需挂载目录层次结构 145
22.5 本章小结 149
22.6 练习 149
22.7 高级练习 149
第23章 Samba: Linux和Windows文件和打印机共享 151
23.1 Samba简介 152
23.1.1 更多信息 153
23.1.2 注记 153
23.1.3 Samba用户、用户映射和密码 154
23.1.4 smbpasswd和pdbedit: 使用Samba用户和密码 156
23.2 运行Samba客户端 157
23.2.1 先决条件 157
23.2.2 从Linux使用共享 157
23.2.3 从Windows使用共享 160
23.3 设置Samba服务器 161
23.3.1 先决条件 161
23.3.2 JumpStart: 使用system-config-samba配置Samba服务器(Fedora) 162
23.3.3 swat: 配置Samba服务器 165
23.3.4 smb.conf: 手动配置Samba服务器 169
23.4 故障排除 177
23.5 本章小结 180
23.6 练习 180
23.7 高级练习 181
第24章 DNS/BIND:跟踪域名和IP地址 182
24.1 DNS简介 183
24.1.1 节点、域和子域 184
24.1.2 区域 185
24.1.3 查询 186
24.1.4 服务器 187
24.1.5 资源记录 188
24.1.6 DNS查询和响应 191
24.1.7 反向名称解析 192
24.1.8 DNS工作原理 194
24.1.9 更多信息 194
24.2 设置DNS服务器 195
24.2.1 先决条件 195
24.2.2 注记 196
24.2.3 JumpStart I: 设置DNS缓存 197
24.2.4 JumpStart II: 使用system-config-bind设置域(Fedora) 198
24.3 配置DNS服务器 203
24.3.1 named.conf: named配置文件 203
24.3.2 区域文件 205
24.3.3 设置DNS缓存 206
24.3.4 DNS粘附记录 212
24.3.5 TSIG: 事务签名 213
24.3.6 在chroot Jail中运行BIND 214
24.3.7 故障排除 216
24.4 设置不同类型的DNS服务器 217
24.4.1 一个全功能的名称服务器 218
24.4.2 从服务器 222
24.4.3 水平分割的服务器 222
24.5 本章小结 228
24.6 练习 228
24.7 高级练习 229
第25章 system-config-firewall和iptables:设置防火墙 230
25.1 JumpStart:使用system-config-firewall构建防火墙 231
25.2 iptables简介 234
25.2.1 更多信息 236
25.2.2 先决条件 237
25.2.3 注记 238
25.2.4 剖析iptables命令 239
25.3 使用iptables构建规则集 241
25.3.1 命令 241
25.3.2 包匹配条件 243
25.3.3 显示条件 243
25.3.4 匹配扩展 244
25.3.5 目标 246
25.4 复制规则到内核和从内核复制规则 247
25.5 system-config-firewall: 生成规则集 248
25.6 使用NAT共享Internet连接 250
25.6.1 多个客户端连接到一个Internet连接 251
25.6.2 多台服务器连接到一个Internet连接 253
25.7 本章小结 254
25.8 练习 254
25.9 高级练习 255
第26章 Apache(httpd):设置Web服务器 256
26.1 简介 257
26.1.1 更多信息 258
26.1.2 注记 259
26.2 运行Apache Web服务器 260
26.2.1 先决条件 260
26.2.2 JumpStart I: 启动并运行Apache 261
26.3 文件系统布局 263
26.4 配置指令 264
26.4.1 指令I: 入门时可能要修改的指令 265
26.4.2 上下文和容器 270
26.4.3 指令II: 高级指令 274
26.5 Fedora/RHEL中的httpd.conf配置文件 289
26.5.1 第1部分:全局环境配置 289
26.5.2 第2部分:主服务器配置 291
26.5.3 第3部分:虚拟主机配置 292
26.6 高级配置 293
26.6.1 重定向 293
26.6.2 内容协商 293
26.6.3 服务器生成的目录列表(索引) 295
26.6.4 虚拟主机 295
26.7 故障排除 298
26.8 模块 299
26.8.1 mod_cgi和CGI脚本 301
26.8.2 mod_ssl 302
26.8.3 身份认证模块和.htaccess文件 304
26.8.4 脚本模块 305
26.8.5 多处理模块(MPM) 306
26.9 webalizer: Web流量分析 307
26.10 MRTG:流量负载监控 307
26.11 错误代码 307
26.12 本章小结 308
26.13 练习 309
26.14 高级练习 309
第6部分 编程工具 311
第27章 Bourne Again Shell编程 312
27.1 控制结构 313
27.1.1 if .then 314
27.1.2 if .then .else 317
27.1.3 if .then .elif 319
27.1.4 for .in 326
27.1.5 for 328
27.1.6 while 330
27.1.7 until 333
27.1.8 break和continue 336
27.1.9 case 336
27.1.10 select 343
27.1.11 Here文件 345
27.2 文件描述符 347
27.3 参数和变量 351
27.3.1 数组变量 352
27.3.2 变量的局部有效性 353
27.3.3 特殊参数 356
27.3.4 位置参数 358
27.3.5 扩展Null和Unset变量 362
27.4 内置命令 364
27.4.1 type:显示命令信息 364
27.4.2 read:接受用户输入 365
27.4.3 exec:执行命令或重定向文件描述符 369
27.4.4 trap:捕获信号 371
27.4.5 kill:终止一个进程 375
27.4.6 getopts:解析选项 375
27.4.7部分内置命令列表 378
27.5 表达式 379
27.5.1 数学运算 379
27.5.2 逻辑运算(条件表达式) 381
27.5.3 字符串模式匹配 382
27.5.4 运算符 383
27.6 shell程序 388
27.6.1 递归的shell脚本 389
27.6.2 shell脚本quiz 392
27.7 本章小结 399
27.8 练习 400
27.9 高级练习 402
第28章 Perl脚本语言 405
28.1 Perl简介 406
28.1.1 更多信息 407
28.1.2 帮助 407
28.1.3 perldoc 407
28.1.4 术语 409
28.1.5 运行Perl程序 410
28.1.6 语法 412
28.2 变量 414
28.2.1 标量变量 416
28.2.2 数组变量 417
28.2.3 哈希变量 420
28.3 控制结构 422
28.3.1 if/unless 422
28.3.2 if .else 424
28.3.3 if .elsif .else 425
28.3.4 foreach/for 426
28.3.5 last和next 427
28.3.6 while/until 429
28.4 使用文件 431
28.5 排序 435
28.6 子程序 436
28.7 正则表达式 439
28.7.1 语法和“=~”运算符 439
28.8 CPAN模块 444
28.9 示例 447
28.10 本章小结 451
28.11 练习 451
28.12 高级练习 452
第7部分 附录 453
附录A 正则表达式 454
A.1 字符 455
A.2 分隔符 455
A.3 简单的字符串 455
A.4 特殊字符 455
A.4.1 句点 455
A.4.2 方括号 456
A.4.3 星号 456
A.4.4 插入符和$符号 456
A.4.5 引用特殊字符 457
A.5 规则 458
A.5.1 最可能的匹配 458
A.5.2 空的正则表达式 458
A.6 括号表达式 459
A.7 字符串替换 459
A.7.1 &符号 459
A.7.2 引用数字 460
A.8 扩展的正则表达式 460
A.9 附录小结 461
附录B 帮助 463
B.1 解决问题 464
B.2 查找与Linux相关的信息 465
B.2.1 文档 465
B.2.2 有用的Linux站点 466
B.2.3 Linux新闻组 466
B.2.4 邮件列表 467
B.2.5 词汇 467
B.2.6 软件 467
B.2.7 Office套件和文字处理器 469
B.3 指定一个终端 469
附录C 安全 471
C.1 加密 472
C.1.1 公钥(不对称)加密 473
C.1.2 对称密钥加密 474
C.1.3 加密实现 475
C.1.4 GnuPG/PGP 475
C.2 文件安全 476
C.3 电子邮件安全 477
C.3.1 MTA(邮件传输代理) 477
C.3.2 MUA(邮件用户代理) 477
C.4 网络安全 477
C.4.1 网络安全解决方案 478
C.4.2 网络安全指南 478
C.5 主机安全 480
C.5.1 登录安全 481
C.5.2 远程访问安全 482
C.5.3 病毒和蠕虫 482
C.5.4 物理安全 483
C.6 安全资源 484
C.7 附录小结 486
附录D 自由软件的定义 487
词汇表 491
JumpStart索引 542
文件树索引 543
工具索引 547
主索引 552
· · · · · · (
收起)