第一部分 UNIX入门 1
第1章 UNIX操作系统 1
1.1 什么是UNIX 1
1.2 操作系统简介 2
1.2.1 硬件管理,第一部分 3
1.2.2 进程管理 3
1.2.3 硬件管理,第二部分 3
1.3 UNIX操作系统 4
1.4 UNIX的历史 4
1.4.1 早期 5
1.4.2 Berkeley软件发布 5
1.5 UNIX和标准 5
1.5.1 大型主机和工作站上的UNIX 6
1.5.2 Intel平台上的UNIX 6
1.5.3 UNIX源代码版本 6
1.5.4 修改UNIX 6
1.6 UNIX的哲学 7
1.6.1 简单、通用的命令 7
1.6.2 使用管通连接命令 7
1.6.3 通用可选择的接口风格 8
1.6.4 无文件类型 8
1.7 总结 8
第2章 使用入门 9
2.1 Logging ln 9
2.1.1 用户帐号的建立 9
2.1.2 登录到系统 10
2.1.3 成功登录之后 11
2.1.4 用户的权限 11
2.2 logging out 11
2.3 使用命令 11
2.3.1 什么是命令 12
2.3.2 输入输出重定向 13
2.4 配置自己的环境 15
2.4.1 浏览和设置环境变量 15
2.4.2 使用Shell的启动文件 16
2.4.3 配置rc文件 16
2.5 管理口令 16
2.6 在系统中工作 17
2.6.1 擦除(Erase) 18
2.6.2 取消(Kill) 18
2.6.3 停止和开始(Stop and Start) 18
2.6.4 文件结束符(eof) 18
2.7 在线帮助 19
2.8 总结 20
第3章 其他的UNIX资源 21
3.1 UNIX手册页 21
3.1.1 手册页的组织 21
3.1.2 手册页命令 21
3.2 Web站点 22
3.2.1 有关UNIX的书目 23
3.2.2 有关UNIX的FAQ文档 23
3.2.3 UNIX入门知识 23
3.2.4 FTP站点 25
3.3 新闻组 25
3.4 UNIX用户组 26
3.5 UNIX的专业组织 26
3.5.1 电子工业领域基金会(Electronic Frontier Foundation,简称EFF) 26
3.5.2 开放工作组(The Open Group) 27
3.5.3 USENIX 27
3.5.4 UniForum 27
3.5.5 X组织 28
3.6 出版物 28
3.6.1 UNIX Review 28
3.6.2 UNIX world 28
3.6.3 Sys Admin 28
3.6.4 Sun World 28
3.6.5 Sun Expert 28
3.7 总结 28
第4章 UNIX文件系统 29
4.1 文件类型 29
4.1.1 正规文件 29
4.1.2 目录文件 30
4.1.3 字符和块设备文件 31
4.1.4 套接字(socket) 31
4.1.5 有名管道 32
4.1.6 符号链接和硬链接 32
4.2 文件和目录的命名 33
4.3 文件系统的组织 35
4.3.1 路径名 35
4.3.2 使用目录 36
4.3.3 使用ls命令对文件和目录列表 36
4.3.4 创建和删除目录 37
4.3.5 使用find命令 38
4.3.6 使用du和df查询磁盘空间 39
4.3.7 根据文件内容确定文件类型 40
4.4 文件和目录的权限 41
4.4.1 权限位 42
4.4.2 默认权限:umask 44
4.4.3 使用chmod命令改变文件或目录权限 44
4.4.4 改变所有者和组的命令:chown和chgrp 45
4.4.5 setuid和setgid命令 45
4.5 总结 45
第5章 通用命令 46
5.1 与用户相关的命令 46
5.1.1 Login 46
5.1.2 rlogin 47
5.1.3 telnet 48
5.1.4 passwd 48
5.1.5 exit命令 49
5.2 定位命令 49
5.2.1 which 50
5.2.2 whence命令 50
5.2.3 where 50
5.3 学习命令的使用 51
5.4 管理命令 52
5.4.1 install 52
5.4.2 shutdown 52
5.4.3 ulimit 53
5.4.4 umask命令 54
5.5 进程相关命令 54
5.5.1 kill 55
5.5.2 nice 56
5.5.3 ps 56
5.5.4 jobs 58
5.5.5 wait 59
5.5.6 nohup 59
5.5.7 sleep 60
5.6 通讯命令 61
5.6.1 cu 61
5.6.2 ftp 62
5.6.3 mailx 66
5.6.4 talk 68
5.6.5 vacation命令 69
5.6.6 write 70
5.7 文件比较命令 71
5.7.1 cmp 71
5.7.2 comm 72
5.7.3 diff 73
5.7.4 diff3 80
5.7.5 dircmp 83
5.7.6 sdiff 84
5.8 文件的操作命令 86
5.8.1 touch 86
5.8.2 chmod 87
5.8.3 chgrp 88
5.8.4 chown 88
5.8.5 rm 88
5.8.6 mv 90
5.8.7 cp 91
5.8.8 cat 92
5.8.9 rcp 94
5.8.10 ln 95
5.9 目录操作命令 96
5.9.1 mkdir 96
5.9.2 rmdir 97
5.10 文件信息命令 97
5.10.1 ls 97
5.10.2 find 103
5.10.3 file 108
5.11 与文件内容相关的命令 108
5.11.1 more 108
5.11.2 less 112
5.11.3 tail 113
5.11.4 head 115
5.11.5 wc 115
5.11.6 read 116
5.11.7 od 116
5.11.8 pg 118
5.11.9 tee 119
5.11.10 vi 120
5.12 文件内容查询命令 123
5.12.1 egrep 123
5.12.2 fgrep 125
5.12.3 grep 127
5.12.4 strings 129
5.13 打印命令 130
5.13.1 cancel 130
5.13.2 lp 130
5.13.3 pr 131
5.13.4 lpstat 133
5.14 调度命令 133
5.14.1 at 134
5.14.2 atq 135
5.14.3 crontab 135
5.15 存贮命令 136
5.15.1 compress 136
5.15.2 cpio 137
5.15.3 dd 138
5.15.4 pack 138
5.15.5 pcat 139
5.15.6 ta? 139
5.15.7 uncompress 140
5.15.8 unpack 141
5.15.9 zcat 141
5.16 状态命令 141
5.16.1 date 141
5.16.2 env 143
5.16.3 iostat 143
5.16.4 sar 144
5.16.5 uname 145
5.16.6 uptime 145
5.16.7 vmstat 145
5.17 文本处理命令 147
5.17.1 cut 147
5.17.2 ex 148
5.17.3 fmt 148
5.17.4 fold 149
5.17.5 join 149
5.17.6 paste 151
5.17.7 sort 152
5.17.8 tr 154
5.17.9 uniq 155
5.17.10 sed 156
5.18 其他命令 160
5.18.1 banner 160
5.18.2 bc 160
5.18.3 cal 162
5.18.4 calendar 163
5.18.5 clear 164
5.18.6 time 164
5.18.7 xargs 164
5.19 正则表达式 166
5.19.1 字符集 166
5.19.2 位置指示符 166
5.19.3 元字符 166
5.20 执行命令 168
5.21 总结 169
第6章 网络知识 170
6.1 什么是网络 170
6.1.1 UUCP——基本的网络互联工具 170
6.1.2 TCP/IP——局域网、广域网和Internet 170
6.1.3 名字和地址 171
6.2 rlogin、telnet及cu命令 173
6.2.1 使用rlogin、rsh和rcp之前的准备工作 174
6.2.2 使用rlogin命令 176
6.2.3 使用telnet命令 178
6.2.4 使用cu命令之前的准备 180
6.2.5 使用cu命令 180
6.3 传输文件的命令rcp、ftp及uucp 181
6.3.1 rcp命令 181
6.3.2 ftp命令 182
6.3.3 使用uucp、uuto和uupick 184
6.4 其他网络服务 185
6.4.1 archie 185
6.4.2 gopher 186
6.4.3 World Wide Web 186
6.5 TCP/IP疑难解答 186
6.5.1 使用nslookup命令检查地址变换 187
6.5.2 ping命令 187
6.6 总结 188
第7章 通信 189
7.1 电子邮件 189
7.1.1 邮件消息的组成 189
7.1.2 发送二进制数据 194
7.1.3 寻找地址 203
7.1.4 用户的地址和名片 204
7.1.5 邮件程序 204
7.1.6 邮件列表 214
7.1.7 自动邮件排序 215
7.2 Usenet 216
7.2.1 新闻阅读器 219
7.2.2 寻找感兴趣的新闻组 220
7.2.3 Usenet的礼节 222
7.2.4 Usenet其他知识 224
7.2.5 Usenet中的恶作剧 225
7.3 talk 225
7.4 Internet中继交谈(IRC Internet Relay Chat) 227
7.4.1 IRC基本结构 227
7.4.2 建立IRC客户 227
7.4.3 连接服务器 228
7.4.4 选择通道 228
7.4.5 获得帮助 228
7.4.6 注意事项 228
7.4.7 其他信息 229
7.5 多媒体 229
7.5.1 Internet基础设施 229
7.5.2 Multicast Backbone 230
7.5.3 Internet上的音频 231
7.5.4 Internet上的视频 232
7.6 未来发展方向 233
第二部分 UNIX Shell 235
第8章 什么是Shell 235
8.1 UNIX内核和Shell的交互方法 235
8.1.1 UNIX在用户登录时启动Shell 235
8.1.2 Shell及其子进程 236
8.1.3 Shell的自动执行 237
8.2 Shell的功能和特点 237
8.2.1 命令行解释 237
8.2.2 保留字 238
8.2.3 Shell通配符 238
8.2.4 程序命令 239
8.2.5 输入输出重定向及管道 239
8.2.6 命令的替换 239
8.2.7 维护变量 239
8.2.8 Shell环境的建立 240
8.2.9 Shell编程 241
8.3 总结 241
第9章 Bourne Shell 242
9.1 Shell基础 242
9.1.1 Shell的启动和环境 242
9.1.2 特殊字符及其含义 245
9.1.3 Shell解释命令的方法 247
9.1.4 输入简单命令 247
9.2 Shell变量 249
9.2.1 用户定义的变量 249
9.2.2 条件变量替换 251
9.2.3 位置变量或Shell参数 252
9.3 Shell程序设计 253
9.3.1 什么是Shell程序 253
9.3.2 简单的Shell程序 254
9.3.3 Shell是一种语言 254
9.3.4 在Shell程序中使用数据变量 255
9.3.5 在Shell程序中加入注释 255
9.3.6 对Shell变量进行算术运算 255
9.3.7 向Shell程序传递参数 256
9.3.8 Shell程序中的条件判断 257
9.3.9 程序中的重复语句 271
9.3.10 使用与/或结构有条件的执行命令 282
9.4 规范Shell 285
9.4.1 使用Shell变量设置Shell环境 285
9.4.2 在Shell中增加自己的命令和函数 286
9.5 其他 288
9.5.1 调试Shell程序 288
9.5.2 命令分组 289
9.5.3 使用Shell分层管理器shl 289
9.6 总结 290
第10章 Bourne Again Shell 291
10.1 特色 291
10.2 定义 292
10.3 Bash的安装 292
10.3.1 准备 292
10.3.2 过程 292
10.4.1 交互式激活 294
10.4.2 非交互式Shell 295
10.4.3 激活的选项 295
10.4.4 使用Bash作为登录Shell 296
10.5 语法 296
10.5.1 变量 296
10.5.2 表达式 299
10.5.3 引用 301
10.5.4 简单命令 302
10.5.5 管道 302
10.5.6 命令表(list) 302
10.5.7 重定向 303
10.5.8 流程控制 305
10.5.9 循环 307
10.5.10 注释 309
10.6 初始化文件 309
10.6.1 初始化文件基本思想 310
10.6.2 Shell变量 310
10.6.3 提示符 311
10.6.4 set和shopt命令 312
10.6.5 别名 314
10.6.6 函数 315
10.6.7 初始化文件的例子 316
10.7 命令行和历史 318
10.7.1 命令行 318
10.7.2 命令行编辑 318
10.7.3 补齐 320
10.7.4 历史调用 320
10.7.5 历史变量 320
10.7.6 历史替换 321
10.8 总结 322
第11章 Korn Shell 323
11.1 Shell基础 324
11.1.1 通配符表达式 325
11.1.2 ~表达式 325
11.1.3 模式表达式 326
11.1.4 命令替换 327
11.1.5 增强的cd命令 327
11.2 别名 327
11.2.1 定义别名 328
11.2.2 清除别名 329
11.2.3 别名定义的方法 329
11.2.4 使用输出的别名 330
11.2.5 使用跟踪别名 330
11.3 Shell选项 331
11.4 命令历史 334
11.4.1 显示命令历史列表 335
11.4.2 执行历史命令 336
11.4.3 访问历史清单:fc命令 336
11.5 命令编辑 338
11.5.1 激活命令编辑模式 338
11.5.2 vi编辑模式 338
11.5.3 EMACS编辑模式 342
11.6 变量 346
11.6.1 预定义的变量 346
11.6.2 变量引用 350
11.6.3 数组变量 355
11.6.4 变量的算术运算 356
11.7 shell编程 362
11.7.1 条件表达式 362
11.7.2 函数 364
11.7.3 使用getopts命令扫描参数 365
11.7.4 使用select语句 367
11.7.5 使用协同进程(Coprocesses) 368
11.7.6 需要小心的问题 371
11.8 规范Korn shell 371
11.8.1 使用tty命令设置控制键 372
11.8.2 使用ulimit命令控制资源 372
11.8.3 设置环境变量 372
11.8.4 为shell控制设置本地变量 373
11.8.5 定义别名 373
11.8.6 定义函数 373
11.8.7 设置shell选项 374
11.8.8 执行每次登录后都要执行的命令 374
11.8.9 在修改后执行.profile文件 374
11.8.10 创建ENV文件 374
11.8.11 在.profile文件中增加对其他程序的设置 375
11.8.12 作业控制 375
11.9 总结 381
第12章 C Shell 383
12.1 激活C Shell 383
12.2 Shell基础 384
12.2.1 执行命令:基础 385
12.2.2 Shell语句:近观 390
12.2.3 文件名替换 391
12.2.4 重定向输入和输出 393
12.2.5 引用或避免特殊字符 395
12.2.6 目录和目录栈 398
12.2.7 改变活跃的Shell 401
12.3 别名(Aliases) 406
12.3.1 定义、列表和改变命令别名:alias 407
12.3.2 删除命令别名:unalias 409
12.4 Shell选项 409
12.5 命令历史 411
12.5.1 显示命令历史 411
12.5.2 使用历史替换执行命令 411
12.6 变量 415
12.6.1 变量名 415
12.6.2 创建Shell变量 415
12.6.3 用访问表达式获得变量值 418
12.6.4 使用数组变量 419
12.6.5 使用特殊只读变量 421
12.6.6 使用预定义的变量 422
12.7 Shell编程 424
12.7.1 什么是Shell脚本 424
12.7.2 编写Shell脚本:总览 425
12.7.3 一个简单的Shell脚本 426
12.7.4 在Shell语句中使用表达式和操作符 427
12.7.5 在Shell程序中输入注解 432
12.7.6 条件语句 432
12.7.7 重复语句 437
12.7.8 改变命令执行顺序:goto 439
12.7.9 规定对信号的响应:onintr 440
12.7.10 处理任意数目的参数:Shift 441
12.7.11 解释当前Shell中的脚本:source 441
12.8 规范Shell环境 441
12.8.1 在.cshrc初始化文件中写什么 442
12.8.2 在.login文件中写什么 442
12.9 作业控制 443
12.9.1 以后台方式执行作业:& 444
12.9.2 列出活跃的后台作业:jobs 444
12.9.3 引用作业号:fg和bg 445
12.9.4 将前台命令切换到后台命令:bg 445
12.9.5 暂停和恢复后台作业 445
12.9.6 将后台作业切换为前台作业:fg 446
12.9.7 停止后台作业:stop 446
12.9.8 停止当前Shell:suspend 446
12.9.9 等待后台作业完成:wait 446
12.9.10 请求后台作业状态变化的通知:notify 447
12.9.11 控制后台进程分配优先级:nice 447
12.9.12 发信号给进程:kill 447
12.10 使用Shell的Hash表 449
12.10.1 测定Shell表的效果:hashstat 449
12.10.2 重建hash表:rehash 449
12.10.3 废除hash表的使用:unhash 449
12.11 限制资源的使用:limit和unlimit 450
12.12 总结 451
第13章 Shell比较 452
13.1 交互式用法 452
13.1.1 Bourne Shell 453
13.1.2 POSIX Shell 454
13.1.3 C Shell 454
13.1.4 Korn Shell 455
13.1.5 TC Shell 456
13.1.6 Bourne Again Shell 456
13.1.7 Z Shell 457
13.1.8 交互式Shell特性比较 459
13.2 个人Shell脚本 460
13.3 公用Shell脚本 462
13.4 总结 463
第三部分 系统管理 465
第14章 什么是系统管理 465
14.1 系统管理员基本知识 466
14.1.1 多用户和多帐号 466
14.1.2 对网络的支持 467
14.1.3 UNIX网络?文件和信息共享 468
14.1.4 网络安全问题 471
14.2 UNIX是异构的 473
14.2.1 管理工具 473
14.2.2 图形接口 474
14.2.3 命令行接口 475
14.3 系统管理任务 475
14.3.1 支持用户 475
14.3.2 支持系统 476
14.4 资源管理 478
14.4.1 手册页 479
14.4.2 Internet信息资源 480
14.5 商业工具 480
14.5.1 Shell 480
14.5.2 Perl和其他自动工具 481
14.5.3 Intranet工具 481
14.6 总结 481
第15章 UNIX安装基础 482
15.1 不同UNIX变体的差异 482
15.2 预备知识 483
15.3 空间需求 483
15.3.1 系统的用户 484
15.3.2 网段上的其他系统 485
15.3.3 安装前准备工作的总结 487
15.4 安装计划 487
15.4.1 安装的起点 487
15.4.2 无盘服务器和单机服务器的选择 489
15.4.3 系统命名 490
15.4.4 选择本地安装的软件包 491
15.4.5 分区的概念 491
15.5 为什么使用多文件系统 491
15.5.1 root分区 492
15.5.2 swap分区 492
15.5.3 usr分区 493
15.5.4 var分区 493
15.5.5 home分区 493
15.5.6 tmp分区 493
15.5.7 给磁盘驱动器分配分区 494
15.5.8 分配IP地址 494
15.5.9 是否有必需的网络连接 494
15.5.10 使用NIS/NIS+ 495
15.6 系统安装 495
15.6.1 引导安装媒体 495
15.6.2 软盘引导 496
15.6.3 安装主系统 496
15.6.4 安装附加的软件包 496
15.6.5 给服务器添加无盘客户机 498
15.7 总结 498
第16章 启动和关闭系统 499
16.1 启动系统 499
16.1.1 初始化操作 500
16.1.2 配置文件 500
16.1.3 RC脚本 503
16.1.4 启动守护进程和程序 505
16.2 关闭系统 506
16.2.1 HP-UX 506
16.2.2 IRIX 507
16.2.3 Solaris 508
16.2.4 Linux 508
16.3 总结 509
第17章 用户管理 510
17.1 增加新用户 510
17.1.1 口令文件 510
17.1.2 阴影(shadow)口令文件 512
17.1.3 组文件 514
17.1.4 其他文件 514
17.1.5 伪用户 516
17.2 用户维护命令 516
17.3 用户监视命令 518
17.4 用户限制命令 521
17.5 匿名FTP 522
17.6 总结 523
第18章 文件系统和磁盘管理 524
18.1 什么是文件系统 524
18.1.1 inode 525
18.1.2 超级块 525
18.1.3 文件类型 525
18.2 管理文件系统 527
18.2.1 安装和卸下文件系统 527
18.2.2 文件系统管理的常用命令 530
18.3 使用fsck修复文件系统 534
18.3.1 fsck工具 534
18.3.2 稳定(干净)的文件系统 535
18.3.3 fsck程序的存放 535
18.3.4 运行fsck的时机 535
18.3.5 运行fsck的方法 535
18.3.6 fsck运行之后 538
18.3.7 处理lost+found目录 538
18.4 创建文件系统 538
18.4.1 选择硬盘 538
18.4.2 什么是分区 539
18.4.3 设备项 540
18.4.4 格式化磁盘 541
18.4.5 磁盘分区和创建文件系统 542
18.5 总结 559
第19章 内核配置 560
19.1 什么是内核 560
19.2 内核服务 560
19.2.1 系统启动 560
19.2.2 内核模式 561
19.3 进程管理 561
19.3.1 进程结构 561
19.3.2 进程运行状态 566
19.3.3 进程调度 567
19.4 内存管理 567
19.5 I/O管理 569
19.5.1 RAM I/O 569
19.5.2 硬驱动I/O 570
19.6 文件系统管理子系统 571
19.6.1 文件系统的类型 571
19.6.2 硬件结构 572
19.6.3 文件系统的概念和格式 572
19.7 内核配置过程 576
19.7.1 重建内核的时机 576
19.7.2 HP-UX 10.x 576
19.7.3 Solaris 2.5 577
19.7.4 SVR4 578
19.7.5 AIX 4.2 579
19.7.6 Linux 581
19.8 总结 583
第20章 组网 584
20.1 TCP/IP通信基础 584
20.1.1 TCP/IP协议体系结构 584
20.1.2 TCP/IP数据封装 586
20.1.3 网络访问层 587
20.1.4 IP层 588
20.1.5 主机——主机传输层 601
20.1.6 名字服务 603
20.2 为TCP/IP配置UNIX 611
20.2.1 准备建立和配置TCP/IP 611
20.2.2 TCP/IP配置文件 612
20.2.3 启动TCP/IP 618
20.2.4 ifconfig 639
20.3 NFS文件共享 641
20.3.1 NFS的概念 641
20.3.2 远程过程调用(RPC) 642
20.3.3 NFS守护进程 644
20.3.4 建立NFS服务器 644
20.3.5 建立NFS客户 647
20.3.6 启动和终止NFS服务 648
20.4 实现域名服务 650
20.4.1 建立DNS客户 651
20.4.2 DNS数据库和启动文件 652
20.4.3 DNS资源记录(RR) 653
20.4.4配置一个主域名服务器 658
20.4.5 配置一个二级域名服务器 664
20.4.6 启动二级服务器 665
20.5 配置一个只有高速缓存(cache-only)的服务器 666
20.6 nslookup 667
20.6.1 nslookup的在线帮助 667
20.6.2 用nslookup询问本地服务器 668
20.6.3 使用nslookup询问一个远程服务器 669
20.6.4 使用nslookup下载DNS数据库 670
20.6.5 简易编辑DNS文件 671
20.7 使用UNIX工具解决网络问题 672
20.7.1 解决问题的方法 672
20.7.2 网络诊断工具 674
20.7.3 可达性问题 675
20.7.4 解决域名服务中出现的问题 682
20.7.5 解决与NFS相关的问题 687
20.7.6 snoop:协议分析工具 690
20.8 总结 691
第21章 系统计帐 692
21.1 系统计帐基础 692
21.1.1 会话连接统计 692
21.1.2 进程使用情况 693
21.1.3 磁盘空间的使用 693
21.1.4 打印机的使用(AIX 4.2) 693
21.2 命令定义 694
21.2.1 自动运行的系统计帐命令 694
21.2.2 手工或自动执行的系统记帐命令 694
21.2.3 手工运行的记帐命令 694
21.3 配置例程 695
21.3.1 设置AIX4.2记帐系统 695
21.3.2 设置HP-UX 10.x记帐系统 699
21.4 磁盘记帐统计 701
21.5 系统记帐的目录结构 707
21.5.1 记帐系统的高层目录 707
21.5.2 /var/adm目录中的文件 707
21.5.3 /var/adrn/acct/nite目录中的文件 708
21.5.4 /var/adm/acct/sum目录中的文件 708
21.5.5 /var/adm/acct/fiscal目录中的文件 709
21.6 系统记帐报告的产生 709
21.6.1 系统记帐数据报告的产生 709
21.6.2 每天自动产生的报告 711
21.7 总结 720
第22章 性能及调整 721
22.1 性能及其对用户的影响 721
22.2 UNIX性能简介 722
22.3 监视整个系统的性能 723
22.3.1 使用uptime命令监视系统状态 723
22.3.2 使用perfmeter监视系统状态 724
22.3.3 使用sar-q命令监视系统性能 724
22.3.4 使用sar-u命令监视系统 725
22.4 使用ps命令监视进程 726
22.5 监视内存的使用 728
22.5.1 UNIX内存管理 728
22.5.2 使用vmstat监视内存性能 729
22.5.3 使用sar-wpgr监视内存性能 731
22.5.4 Vmstat命令在多处理器上的实现 732
22.6 监视磁盘系统的性能 733
22.6.1 磁盘I/O性能的优化 733
22.6.2 关系数据库 734
22.6.3 使用iostat和sar命令检查磁盘性能 734
22.6.4 使用df命令监视文件系统 737
22.7 监视网络性能 738
22.7.1 使用netstat-i监视网络性能 739
22.7.2 使用spray监视网络性能 740
22.7.3 使用nfsstat-c监视网络性能 740
22.7.4 使用netstat监视网络性能 741
22.7.5 使用netstat-s分析网络数据 742
22.7.6 解决网络问题 743
22.8 监视CPU性能 744
22.9 内核调整 745
22.9.1 内核表格 746
22.9.2 使用sar-v检查内核表 747
22.9.3 显示可调的内核参数 748
22.9.4 显示可调内核参数的当前值 749
22.9.5 修改配置文件 750
22.9.6 maxusers参数 750
22.9.7 monitor工具 752
22.9.8 影响调页和交换的参数 752
22.9.9 内核调整总结 753
22.10 第三方解决方案 753
22.11 总结 754
第23章 设备管理 755
23.1 SVR4的SAF工具 755
23.1.1 端口服务 755
23.1.2 端口监视器 756
23.1.3 服务访问控制器 756
23.1.4 SAF管理命令和文件 756
23.1.5 sac相关的文件和命令 756
23.1.6 端口监视器相关的文件和命令 757
23.1.7 SAF初始化过程 757
23.1.8 SAF的管理 758
23.1.9 ttymon端口监视器 762
23.1.10 listen端口监视器 766
23.2 SVR下的设备管理任务 768
23.2.1 连接终端和modem 768
23.2.2 建立连接 769
23.2.3 连接modem 771
23.2.4 连接终端 774
23.2.5 在BSD系统中连接终端和modem 775
23.2.6 Linux下连接终端和modem 778
23.3 连接打印机 779
23.3.1 LP打印服务工作原理(SVR4,Solaris 2.x) 779
23.3.2 设置本地打印服务(SVR4,Solaris 2.x) 780
23.3.3 设置网络打印服务 781
23.3.4 管理打印机 785
23.3.5 在BSD系统上设置本地打印机 789
23.3.6 在BSD系统设置网络打印 790
23.3.7 BSD下的打印服务管理 791
23.4 将PC连接到UNIX系统 792
23.4.1 通过COM口连接PC 792
23.4.2 利用TCP/IP连接PC 793
23.5 连接X终端 793
23.5.1 X的体系结构 794
23.5.2 X资源 794
23.5.3 窗口管理器 796
23.5.4 设置Shell环境变量 796
23.5.5 X显示管理器 797
23.5.6 X服务器访问安全 801
23.5.7 X服务器的类型 802
23.5.8 PC X服务器 803
23.6 总结 803
第24章 邮件管理 805
24.1 E-Mail简介 805
24.2 mail命令 806
24.2.1 为用户设置mail 806
24.2.2 mail命令和选项 806
24.2.3 阅读邮件 808
24.2.4 mail命令 809
24.2.5 发消息 813
24.2.6 定义变量 813
24.3 elm命令 815
24.3.1 elm的主菜单 815
24.3.2 调试elm 817
24.3.3 在X窗口中使用 817
24.4 pine工具 818
24.5 UUCP做为MTA 822
24.5.1 有关UUCP做为MTA的讨论 822
24.5.2 背景资料和其他资源 822
24.5.3 Internet Mail协议 823
24.5.4 域名服务和e-mail 824
24.5.5 sendmail的功能 827
24.5.6 sendmail的辅助文件 827
24.5.7 别名文件 828
24.6 设置sendmail 829
24.6.1 获取源代码 829
24.6.2 解压缩和编译sendmail源代码 831
24.7 配置文件sendmail.cf 833
24.7.1 配置文件的一般格式 833
24.7.2 配置文件的功能描述 834
24.7.3 创建一个sendmail.cf文件 843
24.7.4 测试sendmail和sendmail.cf 846
24.7.5 安装sendmail 848
24.7.6 修改sendmail在系统引导时的设置 849
24.8 总结 849
第25章 新闻管理 850
25.1 简介 850
25.2 其他信息资源 850
25.2.1 FAQ文档 851
25.2.2 新闻传输软件文档 851
25.2.3 RFC文档 851
25.2.4 Usenet新闻组 852
25.3 新闻系统和软件 852
25.3.1 新闻文章 852
25.3.2 新闻组的层次 853
25.3.3 新闻文章的存放 854
25.3.4 新闻浏览数据库(News Overview Database NOV) 854
25.4 新闻发布 854
25.4.1 通过网络共享新闻 857
25.4.2 将新闻传给其他主机 857
25.4.3 主机到主机传输协议 858
25.4.4 新闻传输系统的配置文件 858
25.5 用户界面——新闻阅读器和投递程序 859
25.6 规划一个新闻系统 860
25.6.1 是否真正需要成为一个Usenet站点 860
25.6.2 共享新闻还是每个主机一个新闻缓冲区 860
25.6.3 隔离新闻缓冲区 861
25.6.4 配置新闻缓冲区文件系统 861
25.6.5 获得新闻的途径 861
25.6.6 站点管理规则 862
25.6.7 新闻的删除策略 862
25.6.8 对newgroup/rmgroup控制消息的自动响应 863
25.7 新闻传输软件基础 863
25.8 INN分布图 864
25.8.1 了解INN 864
25.8.2 配置INN——config.data文件 865
25.8.3 创建INN 866
25.8.4 安装INN 867
25.8.5 站点的配置 867
25.8.6 系统启动脚本和新闻cron作业 868
25.8.7 其他任务 869
25.8.8 安装的检查以及问题的解决 869
25.9 帮助 870
25.10 总结 870
第26章 UUCP管理 871
26.1 什么是UUCP 871
26.1.1 传输文件 871
26.1.2 执行远端命令 872
26.1.3 彻底了解UUCP 872
26.2 设置UUCP 874
26.2.1 接收UUCP呼叫 874
26.2.2 初始化UUCP呼叫 875
26.2.3 对话脚本的进一步介绍 880
26.2.4 对有关文件的管理 880
26.2.5 支撑文件 884
26.2.6 UUCP守护程序 884
26.3 使用UUCP 885
26.4 UUCP工具 887
26.5 总结 889
第27章 FTP管理 890
27.1 FTP协议和服务简介 890
27.1.1 FTP连接 890
27.1.2 FTP传输的可靠性 892
27.1.3 FTP的优化特性 892
27.2 FTP会话过程 892
27.3 FTP内部命令和响应 894
27.4 FTP第三方(代理)传输 897
27.5 FTP管理 899
27.5.1 建立FTP服务 899
27.5.2 FTP用户管理 900
27.6 匿名FTP 901
27.7 非在线FTP传输 903
27.8 FTP疑难解答 905
27.9 总结 908
第28章 备份和恢复系统 909
28.1 tar命令的使用 909
28.2 dump命令的使用 910
28.3 cpio的使用 911
28.4 在HP-UX系统上做备份 911
28.4.1 fbackup 912
28.4.2 frecover 913
28.5 在AIX系统上的备份 913
28.5.1 AIX3.2系统的复制 913
28.5.2 用mksysb恢复一个AIX3.2系统 914
28.5.3 AIX4系统的复制 915
28.5.4 用mksysb恢复AIX4系统 917
28.5.5 用AIX4的savevg命令备份磁盘组 917
28.5.6 用AIX4的restvg命令恢复磁盘组 918
28.5.7 backup命令和restore命令的使用 918
28.5.8 rdump/rrestore 919
28.5.9 pax 920
28.6 在Sun Solaris系统上做备份 920
28.6.1 做追加备份 921
28.6.2 用ufsrestore恢复 921
28.7 在SVR4系统上做备份 922
28.8 在Silicon Graphics IRIX系统上做备份 923
28.9 在BSD系统上做备份 925
28.10 在Linux系统上做备份 925
28.10.1 在Linux上备份文件 926
28.10.2 用tar在一个磁带上获取多个文档 927
28.10.3 使用taper 927
28.10.4 用taper做备份 928
28.10.5 用taper恢复文件 928
28.11 其他方法 929
28.12 总结 929
第四部分 附录 930
附录A GND通用公布许可证 930
A.1 序言 930
A.2 GNU通用公布许可证 930
A.3 不保证 932
A.4 Linux和GNU系统 933
A.5 Free BSD版权 934
附录B 术语 937