第1章 UNIX操作系统概述 1
1.1 UNIX操作系统的发展史 1
1.2 UNIX系统结构 4
1.3 UNIX的体系结构 5
1.4 UNIX的目录结构 6
1.5 编程环境设计 7
1.6 本章小结 7
1.7 思考与练习 8
第2章 UNIX文件系统 9
2.1 文件系统基础 9
2.2 文件结构 11
2.3 目录和文件名 12
2.4 权限 15
2.5 i节点 19
2.6 目录层次 23
2.7 设备 25
2.8 本章小结 28
2.9 思考与练习 30
第3章 UNIX操作系统常用命令 32
3.1 通信命令 32
3.2 文件管理命令 35
3.3 运行程序命令 48
3.4 状态信息查询 52
3.5 全屏幕文本编辑器vi 63
3.5.1 屏幕编辑命令 63
3.5.2 底行命令方式 67
3.6 文本处理命令 71
3.7 本章小结 75
3.8 思考与练习 76
第4章 shell的元字符和基本语法规则 78
4.1 命令行结构 78
4.2 元字符 80
4.3 创建新命令 82
4.4 命令行参数 83
4.5 程序输出作为参数 85
4.6 shell变量 86
4.6.1 用户定义变量 86
4.6.2 系统定义变量 86
4.6.3 shell定义变量 89
4.7 I/O重定向 91
4.8 shell程序里的循环 94
4.9 测试和求值 95
4.9.1 测试 95
4.9.2 求值 97
4.10 bundle合并 97
4.11 过滤程序 99
4.11.1 grep系列 99
4.11.2 正则表达式 101
4.11.3 sed流编辑程序 103
4.11.4 awk模式扫描与处理语言 106
4.12 本章小结 117
4.13 思考与练习 118
第5章 shell编程 120
5.1 设计newcal命令 120
5.2 目录搜索程序 123
5.3 用户登录和退出系统的程序 125
5.3.1 shell的三种循环比较 125
5.3.2 用户登录和退出系统的程序设计 126
5.3.3 shell对变量赋值的规则 127
5.4 trap捕获中断 129
5.5 改写文件 130
5.6 使用名称终止进程 133
5.7 创建交互式命令 134
5.8 进度指示器 136
5.9 本章小结 139
5.10 思考与练习 140
第6章 使用标准的I/O编程 142
6.1 标准I/O 142
6.2 流文件操作与系统调用间的关系 143
6.3 程序参数 145
6.4 访问文件 147
6.5 显示和交互控制 150
6.6 获取环境变量 154
6.7 错误与调试 155
6.8 本章小结 156
6.9 思考与练习 156
第7章 UNIX系统程序设计 158
7.1 文件系统程序设计 158
7.2 用文件的系统调用实现进程间通信 162
7.3 高级进程间通信 167
7.4 远程进程间通信 171
7.4.1 概述 171
7.4.2 socket调用的数据结构 172
7.4.3 socket系统调用 173
7.4.4 socket通信程序设计 175
7.5 系统程序综合设计实例 180
7.6 本章小结 192
7.7 思考与练习 193
第8章 UNIX系统网络和通信管理 194
8.1 TCP/IP协议简介 194
8.2 域名 195
8.3 TCP/IP网络地址与配置 196
8.4 网络文件系统(NFS) 198
8.4.1 NFS的工作原理 198
8.4.2 Sun的NFS系统 200
8.5 网络信息系统(NIS) 206
8.6 远程计算机的通信 209
8.7 远程计算机登录 215
8.8 远程文件的拷贝 216
8.9 本章小结 218
8.10 思考与练习 219
附录A 命令和应用程序 220
附录B 系统调用 225
附录C 库函数 229
附录D 特殊文件 237
附录E 文件格式 238
附录F 宏程序包、语言约定和系统维护 240
参考文献 242