专家指导委员会 1
前言 1
第1章 操作系统概述 1
1.1 导言 1
1.2 什么是操作系统 1
译者序 1
目录 1
出版者的话 1
1.3 操作系统功能 2
1.4 字符与图形用户界面 2
1.5 操作系统的分类 3
1.6 UNIX产品系列 3
小结 3
问题 4
第2章 UNIX操作系统简史 5
2.1 导言 5
2.2 UNIX操作系统的发展历史 5
2.2.1 开端 5
2 2.3 AT T System V 6
2.2.4 Berkeley软件发布版本 6
2.2.5 shell的历史 6
2.2.2 操作系统研究 6
小结 7
2.3 UNIX系统的变种 7
问题 7
2.2.6 当前与未来的发展——Linux 7
3.2 计算机系统硬件 9
3.1 导言 9
3.2.1 主存 9
第3章 UNIX起步 9
3.2.3 磁盘 10
3.2.4 总线 10
3.2.2 中央处理单元 10
3.3.1 设备驱动程序层 11
3.3 UNIX软件体系结构 11
3 3.2 UNIX内核 11
3.2.5 输入/输出设备 11
3.3.4 语言库 12
3 3.3 系统调用接口 12
3 3.5 UNIX shell 12
3.3.6 应用程序 13
3.4 登录与注销 13
3.5 纠正错误 15
3.6 一些重要的系统设置 15
3.7 初学者常用命令 16
3.7.1 更改口令 17
3.7.2 获得帮助 17
3.7.3 查看自己的账号与UNIX系统名称 19
小结 20
问题 20
第4章 UNIX shell 23
4.1 导言 23
4.2 多种UNIX shell 24
4.2.1 shell程序 24
4.2.2 哪利shell适合你 25
4.2.3 改变shell的方法 25
4.2.4 shell启动文件与环境变量 26
4.3 其他常用命令 27
4.3.1 创建与显示目录 27
4.3.2 显示文件 28
4.3.3 打印文件 28
4.3.4 显示日历 28
4.3.5 单向实时消息传送 28
4.3.6 电子通信的通知和许可 29
4.3.7 命令伪名的生成 29
4.3.8 显示系统正常运行时间 31
4.4 shell元字符 31
小结 32
问题 33
5.1 导言 35
第5章 编辑文本文件 35
5.2.2 如何开始、保存及退出文件 36
5.2 如何使用pico编辑器进行简单的编辑工作 36
5.2.1 使用pico文本编辑器创建电子邮件文本 36
5.2.3 常用键盘命令与光标控制 38
5.2.4 剪切、粘贴与查找 39
5.3 使用vi编辑器获取更多控制 39
5.3.1 shell脚本文件 40
5.3.2 如何开始、保存并退出一个文件 41
5.3.3 vi命令格式及操作模式 42
5.3.4 光标移动与编辑命令 44
5.3.5 拖放(复制与粘贴)和交换(查找与替换) 45
5.3.6 设置vi环境 47
5.3.7 在vi中执行shell命令 47
5.4 使用emacs编辑器获得最大的控制 47
5.4.1 DOS别名 48
5.4.2 如何开始、保存并退出一个文件 48
5.4.3 光标移动与编辑命令 49
5.4.5 剪切、复制、粘贴、查找与替换 51
5.4.4 键盘宏 51
5.5 怎样使用emacs和X Window系统实现图形化编辑 53
5.5.1 编辑数据文件 54
5.5.2 如何开始、保存并退出一个文件 55
小结 56
问题 56
5.53 X Window emacs菜单 56
第6章 电子邮件 59
6.1 导言 59
6.2 怎样有效地使用UNIX的mail命令 60
6.2.1 使用UNIX的mail命令发送和阅读电子邮件 61
6.2.2 用mail发送电子邮件 61
6.2.3 用mail阅读电子邮件 63
6.2.4 在文件夹内保存消息 64
6.2.5 回复和转发邮件(包括附件) 65
6.3 elm:一个全屏幕显示的电子邮件系统 66
6.3.1 用elm发送消息 66
6.2.6 mail别名 66
6.3.2 用elm发送电子邮件 67
6.3.3 用elm阅读电子邮件 69
6.3.4 用elm转发和回复电子邮件 70
6.3.5 在文件夹内保存消息 71
6.3.6 elm别名 71
6.4 pine:另一个全屏幕显示的电子邮件系统 72
6.4.1 用pine发送附有用vi创建的附件的电子邮件消息 72
6.4.2 用pine发送电子邮件 74
6.4.3 用pine阅读电子邮件 75
6.4.4 用pine处理文件夹中的电子邮件 76
6.4.5 使用pine地址簿 77
6.4.6 pine命令小结 79
小结 80
问题 80
第7章 文件与文件系统结构 83
7.1 导言 83
7.2 UNIX文件概念 83
7.3 文件类型 83
7.3.1 简单/普通文件 83
7.3.2 目录 84
7.3.3 链接文件 84
7.4.1 文件系统组织 85
7.4 文件系统结构 85
7.4.2 起始目录与当前工作目录 85
7.3.5 命名管道(FIFO) 85
7.3.4 特殊文件(设备文件) 85
7.4.3 绝对路径名与相对路径名 86
7.4.4 一些标准目录与文件 86
7.5 文件结构导航 88
7.5.1 决定起始目录的绝对路径名 88
7.5.2 浏览文件系统 89
7.5.3 创建文件 91
7.5.4 创建和删除目录 91
7.5.5 决定文件属性 92
7.5.6 决定文件内容的类型 94
7.6 UNIX中文件的表示与存储 94
7.7 标准文件与文件描述符 96
7.8 文件结束记号 97
小结 97
问题 98
8.2 基于口令的保护 101
8.1 导言 101
第8章 文件安全性 101
8.4 基于访问权限的保护 102
8.3 基于加密的保护 102
8.4.1 用户的类型 102
8.5 决定与更改文件访问权 103
8.4.2 文件操作/访问权限的类型 103
8.5.1 决定文件访问权 104
8.5.2 更改文件访问权 105
8.5.3 默认文件访问权 108
8.6 特殊访问位 109
8.6.1 设置用户ID(SUID)位 109
8.6.2 设置组ID(SGID)位 110
8.6.3 粘住位 110
小结 111
问题 112
9.2.1 查看完整的文件 115
9.2 查看文本文件的内容 115
9.1 导言 115
第9章 基本文件处理 115
9.2.2 一次查看一页文件 117
9.2.3 查看文件的头尾部分 118
9.3 复制、移动和删除文件 120
9.3.1 复制文件 120
9.3.2 移动文件 122
9.3.3 删除文件 123
9.3.4 决定文件大小 125
9.4 添加文件 126
9.5 合并文件 127
9.6 比较文件 129
9.7 删除重复的行 131
9.8 打印文件与控制打印作业 133
9.8.1 UNIX文件打印机制 133
9.8.2 打印文件 133
9.8.3 确定打印请求的状态 135
9.8.4 取消打印作业 136
小结 137
问题 138
第10章 高级文件处理 139
10.1 导言 139
10.2 正则表达式 139
10.3 文件压缩 141
10.4 文件排序 143
10.5 命令与文件的查找 145
10.6 查找文件 148
10.7 剪切与粘贴 151
10.8 编码与解码 154
10.9 文件加密与解密 156
小结 158
问题 159
11.3 小组成员的共同登录 161
11.2 复制共享文件 161
11.1 导言 161
第11章 文件共享 161
11.4 为共享文件设置适当的访问权限 162
11.5 小组成员的共同组 162
11.6 通过链接实现文件共享 162
11.6.1 硬链接 162
11.6.2 硬链接的缺点 167
11.6.3 软/符号链接 169
11.6.4 符号链接的优点和缺点 172
小结 172
问题 173
12.2 标准文件 175
第12章 重定向与管道 175
12.1 导言 175
12.3 输入重定向 176
12.4 输出重定向 176
12.5 合并输入输出重定向 177
12.6 带文件描述符的输入/输出重定向 178
12.8 在一个命令中重定向标准输出与标准错误 179
12.7 标准错误重定向 179
12.9 在一个命令中重定向标准输入、标准输出与标准错误 181
12.10 不覆盖文件内容的重定向(添加) 182
12.11 UNIX管道 183
12.12 重定向与管道结合使用 186
12.13 Cshell中的错误重定向 187
12.14 输入输出和错误重定向的归纳总结 189
小结 190
问题 191
13.2 同时运行多个进程 193
13.1 导言 193
第13章 进程 193
13.3 UNIX进程状态 194
13.4 shell命令的执行 195
13.5 进程属性 197
13.6 进程与作业控制 200
13.6.1 前台进程与后台进程以及相关命令 200
13.6.3 命令的顺序执行与并行执行 204
13.6.2 UNIX守护进程 204
13.6.4 命令与进程的异常终止 207
13.7 UNIX的进程等级 209
小结 210
问题 210
第14章 网络和互联网 213
14.1 导言 213
14.2 计算机网络与互联网 213
14.3 使用计算机网络与互联网的原因 214
14.4 网络模型 214
14.5 TCP/IP协议族 215
14.5.1 TCP和UDP 215
14.5.2 应用数据的路由——Internet协议 216
14.5.3 IPv4地址的点分十进制表示法 217
14.5.4 符号名称 217
14.5.5 从名称到IP地址的转换——域名系统 219
14.6 Internet服务和协议 220
14.7 客户-服务器软件模型 220
14.8.1 显示主机名 221
14.8.2 显示网络上正在使用主机的用户信息列表 221
14.8 应用软件 221
14.8.3 显示网络上主机的状态 223
14.8.4 测试网络连接 223
14.8.5 显示用户信息 224
14.8.6 远程登录 227
14.8.7 执行远程命令 231
14.8.8 文件传输 233
14.8.9 远程复制 235
14.8.10 交互式聊天 237
14.8.11 跟踪站点间的路由 238
小结 238
问题 239
15.1 导言 241
15.2 运行Bourne shell脚本 241
第15章 Bourne shell编程初步 241
15.3 shell变量与相关命令 242
15.3.1 读写shell变量 244
15.3.3 导出环境 246
15.3.2 命令替换 246
15.3.4 变量重置 248
15.3.5 创建用户自定义的只读变量 248
15.3.6 从标准输入读 249
15.4 向shell脚本传递参数 251
15.5 注释与程序头 253
15.6 程序控制流命令 254
15.6.1 if-then-elif-else-fi语句 254
15.6.2 for语句 260
15.6.3 while语句 261
15.6.4 until语句 263
15.6.5 break和continue命令 264
15.6.6 case语句 264
小结 267
问题 268
16.1 导言 271
16.2 数值型数据的处理 271
第16章 高级Bourne shell编程 271
16.3 here文档 276
16.4 中断(信号)处理 278
16.5 exec命令与文件输入输出 281
16.5.1 不创建新的进程执行命令 281
16.5.2 使用exec命令进行文件输入输出 283
16.6 Bourne shell函数 288
16.6.1 使用函数的原因 288
16.6.2 函数定义 288
16.6.4 函数举例 289
16.6.3 函数调用 289
16.7 调试shell程序 291
小结 292
问题 292
第17章 C shell编程初步 295
17.1 导言 295
17.2 运行C shell脚本 295
17.3 shell变量与相关命令 296
17.3.1 读写shell变量 299
17.3.2 命令替换 300
17.3.3 导出环境 301
17.3.4 变量重置 302
17.3.5 从标准输入读 303
17.4 向shell脚本传递参数 304
17.5 注释与程序头 306
17.6 程序控制流命令 307
17.6.1 if-then-else-endif语句 307
17.6.2 foreach语句 313
17.6.3 while语句 314
17.6.4 break、continue和goto语句 315
17.6.5 switch语句 316
小结 318
问题 319
第18章 高级C shell编程 321
18.1 导言 321
18.2 数值型数据处理 321
18.3 数组处理 322
18.4 here文档 326
18.5 中断(信号)处理 328
18.6 调试shell程序 331
小结 332
问题 332
第19章 文件系统备份 335
19.1 导言 335
19.2 使用tar归档和恢复文件 335
19.2.1 文件归档 336
19.2.2 恢复归档文件 339
19.2.3 复制目录层次 341
19.3 以tar格式发布软件 342
小结 342
问题 342
第20章 UNIX软件开发工具 343
20.1 导言 343
20.2 计算机编程语言 343
20.3 编译过程 344
20.5.2 缩排C源代码 345
20.5.1 生成C源文件 345
20.4 软件工程生命周期 345
20.5 程序生成工具 345
20.5.3 编译C程序 347
20.5.4 处理基于模块的C软件 350
20.5.5 建立库中的目标文件 357
20.5.6 使用库 360
20.5.7 版本控制 362
20.6 静态分析工具 388
20.6.1 验证代码的可移植性 389
20.6.2 源代码度量分析 392
20.7 动态分析工具 393
20.7.1 跟踪程序执行 393
20.7.2 源代码调试 394
20.7.3 运行时性能 404
小结 405
问题 405
21.2 人机交互和X Window系统 409
21.1 导言 409
第21章 X Window系统——UNIX图形 409
用户界面 409
21.3 用户界面中窗口管理器的角色和fvwm 411
21.3.1 窗口管理器界面的功能和外观 411
21.3.2 fvwm的外观与操作 412
21.4 定制X Window系统与fvwm 414
21.4.1 在命令行修改X Window系统的应用程序 414
21.4.2 修改.Xdefaults和.xinitrc初始文件中的优先设置 416
21.4.3 定制fvwm窗口管理器时对.fvwmrc的典型修改 417
小结 419
问题 420
附录 命令字典 421
词汇表 475
索引 491