第1章 UNIX操作系统概述 1
1.1 计算机系统组成 1
1.1.1 计算机硬件系统 2
1.1.2 计算机软件系统 4
1.2 什么是操作系统 5
1.2.1 操作系统的概念 5
1.2.2 操作系统的功能 6
1.3 UNIX操作系统的诞生和发展 7
1.3.1 UNIX系统的诞生 7
1.3.2 UNIX系统的发展 7
1.3.3 UNIX系统发展时间表 9
1.4 UNIX操作系统的特点 11
1.5 UNIX与Windows的比较 13
1.5.1 Windows NT/2000/2003 13
1.5.2 Windows服务器系统与UNIX系统的区别 14
1.5.3 UNIX和Windows的市场竞争 15
1.5.4 UNIX与Windows的进化 15
1.6 UNIX的未来 16
1.7 小结 16
1.8 习题 17
第2章 UNIX操作系统基础 18
2.1 UNIX操作系统结构 18
2.2 内核 19
2.3 Shell 19
2.3.1 Shell的分类 20
2.3.2 Shell编程 22
2.4 UNIX文件系统 22
2.4.1 UNIX文件 23
2.4.2 UNIX目录 25
2.4.3 UNIX文件结构 26
2.5 应用程序 31
2.6 用户界面 31
2.6.1 命令行用户界面 32
2.6.2 图形用户界面 32
2.7 小结 34
2.8 习题 34
第3章 标准UNIX命令 36
3.1 了解命令 36
3.2 UNIX命令语法 38
3.2.1 通配符 38
3.2.2 重定向字符 38
3.2.3 命令行选项 39
3.2.4 管道符 39
3.2.5 后台处理 39
3.3 UNIX系统的登录和退出 40
3.3.1 登录 40
3.3.2 修改口令 41
3.3.3 退出 41
3.4 操作文件和目录的命令 42
3.4.1 ls命令 42
3.4.2 cp命令 43
3.4.3 mv命令 44
3.4.4 rm命令 44
3.4.5 mkdir命令 45
3.4.6 chdir(cd)命令 45
3.4.7 rmdir命令 45
3.4.8 pwd命令 45
3.4.9 cat/more/less命令 45
3.4.10 chmod命令 46
3.5 网络命令 47
3.5.1 arp命令 47
3.5.2 ping命令 48
3.5.3 telnet命令 48
3.5.4 ftp命令 49
3.5.5 nslookup命令 50
3.6 系统状态命令 51
3.6.1 w命令 51
3.6.2 date命令 51
3.6.3 ps命令 52
3.7 在线查询命令 53
3.8 小结 54
3.9 习题 55
第4章 UNIX文件系统 56
4.1 UNIX文件的概念 56
4.1.1 什么是文件系统 57
4.1.2 树形结构 58
4.1.3 文件系统层次 58
4.1.4 一些特殊的目录 60
4.2 文件类型 61
4.2.1 普通文件、目录、设备文件和链接 61
4.2.2 静态文件和动态文件 63
4.3 文件系统结构 64
4.3.1 文件系统布局 64
4.3.2 查找和定位文件 67
4.4 文件的权限和存取 69
4.4.1 权限和存取概述 69
4.4.2 谁有存取一个文件的权利 69
4.4.3 存取权限的类型 70
4.4.4 授权与回收权限 70
4.5 管理设备文件 74
4.5.1 初识设备文件 75
4.5.2 设备文件分类 75
4.5.3 /dev目录的布局 77
4.6 配置文件系统 79
4.6.1 文件系统创建概述 79
4.6.2 配置文件系统的步骤 79
4.6.3 newfs命令 80
4.6.4 加载新文件系统 81
4.6.5 卸载一个文件系统 82
4.6.6 自动加载文件系统 83
4.6.7 CD-ROM文件系统 89
4.7 UNIX文件系统内部组织 89
4.7.1 引导块 90
4.7.2 超级块 90
4.7.3 i-node列表块 91
4.7.4 数据块 92
4.7.5 UNIX定位文件的整体过程 92
4.7.6 UNIX硬盘分区简介 93
4.8 文件系统的维护 96
4.8.1 监控磁盘使用情况 96
4.8.2 日常维护 97
4.8.3 扩展一个卷组 100
4.8.4 扩展逻辑卷的大小 100
4.8.5 扩展一个文件系统 101
4.9 小结 102
4.10 习题 102
第5章 UNIX的编辑器 104
5.1 vi的基本概念 104
5.2 vi的基本操作 105
5.2.1 设置终端 105
5.2.2 启动vi 106
5.2.3 进入输入模式 107
5.2.4 退出输入模式 108
5.2.5 退出vi 108
5.2.6 在窗口中移动光标 109
5.2.7 在编辑缓存中移动窗口 110
5.2.8 修改文本 111
5.2.9 删除文本 112
5.2.10 取消更改和删除 112
5.3 一个实例教程 113
5.4 进一步了解vi 116
5.4.1 搜索文本 116
5.4.2 复制和移动文本 117
5.4.3 工作缓冲区 118
5.4.4 编辑多个文件 119
5.4.5 插入Shell命令的输出 120
5.5 vi的设置选项 120
5.5.1 设置vi选项 120
5.5.2 显示当前设置 122
5.5.3 vi选项 123
5.6 应用vi 124
5.6.1 编写vi宏 124
5.6.2 实用的文本处理宏 126
5.7 使用emacs进行编辑 128
5.7.1 设置终端 129
5.7.2 启动emacs 130
5.7.3 在emacs中创建文本 131
5.7.4 退出emacs 131
5.7.5 在窗口中移动光标 131
5.7.6 移动缓冲区中的窗口 132
5.7.7 删除文本 132
5.7.8 emacs的帮助 132
5.8 简短的emacs实例 133
5.9 进一步了解emacs 136
5.9.1 查找正文 136
5.9.2 用emacs修改文本 137
5.9.3 复制和移动文本 138
5.9.4 在多窗口中编辑 138
5.10 得到emacs 139
5.11 小结 140
5.12 习题 140
第6章 UNIX进程控制 141
6.1 进程概述 141
6.1.1 进程的基本概念 141
6.1.2 父进程与子进程 142
6.1.3 进程的状态 143
6.1.4 进程间通信 144
6.2 UNIX进程的层次结构 145
6.2.1 使用ps命令查看进程状态 145
6.2.2 系统进程 147
6.2.3 用户进程 148
6.3 UNIX进程调度 149
6.3.1 进程优先级 149
6.3.2 nice命令 149
6.3.3 前台进程和后台进程 150
6.3.4 将任务放在后台/前台运行 151
6.3.5 nohup命令 152
6.3.6 kill命令终止进程 152
6.4 作业调度 153
6.4.1 作业调度的概念 153
6.4.2 关于cron 154
6.4.3 at和batch命令 154
6.4.4 crontab命令 154
6.5 小结 155
6.6 习题 156
第7章 Shell 157
7.1 Shell的启动和主要功能 157
7.1.1 Shell的启动 158
7.1.2 Shell启动文件 158
7.1.3 Shell的功能 160
7.2 各种UNIX Shell 161
7.2.1 细说Shell的生平 161
7.2.2 Bourne Shell 161
7.2.3 C Shell 161
7.2.4 Korn Shell 162
7.2.5 TCSH 162
7.2.6 BASH Shell 162
7.2.7 Shell的使用 164
7.3 选择Shell 164
7.3.1 查看当前用户的默认Shell 164
7.3.2 更改用户的默认Shell 165
7.4 Shell环境变量 165
7.4.1 用户环境 165
7.4.2 设置Shell变量 166
7.4.3 两个重要的变量 167
7.4.4 显示变量的值 168
7.4.5 传送局部变量到环境 169
7.4.6 传递变量给一个应用 170
7.5 配置Shell 171
7.5.1 别名 171
7.5.2 文件名自动完成 172
7.5.3 命令的历史机制 173
7.5.4 重新输入命令 174
7.5.5 Shell内部命令和UNIX命令 174
7.6 Shell的替代功能 175
7.6.1 Shell的替代功能简介 175
7.6.2 Shell变量存储 175
7.6.3 变量替代 176
7.6.4 命令替代 178
7.6.5 波浪号替代 179
7.7 小结 180
7.8 习题 180
第8章 Shell编程 181
8.1 Shell编程基础 181
8.1.1 概述 181
8.1.2 shell程序举例 182
8.1.3 传递数据给shell程序 183
8.1.4 shell程序的参数 184
8.1.5 特殊的shell变量——#和* 185
8.1.6 shift命令 186
8.1.7 read命令 188
8.1.8 其他技术 189
8.2 test及其他几个重要的命令 190
8.2.1 返回值 190
8.2.2 test命令 191
8.2.3 exit命令 196
8.2.4 使用let命令进行算术计算 196
8.3 shell分支语句 198
8.3.1 if语句 198
8.3.2 if-else语句 199
8.3.3 case语句 200
8.4 shell循环语句 201
8.4.1 有关循环的简单介绍 202
8.4.2 while语句 202
8.4.3 until语句 205
8.4.4 for语句 207
8.4.5 break和continue语句 209
8.5 小结 210
8.6 习题 212
第9章 使用awk和sed 213
9.1 awk概述 213
9.1.1 调用awk 215
9.1.2 awk程序的基本结构 216
9.1.3 awk使用标准的输入/输出设备 217
9.1.4 在多个文件中运行awk程序 217
9.1.5 多行awk程序 218
9.2 模式 218
9.2.1 字符串模式 219
9.2.2 复合模式 222
9.2.3 范围模式 223
9.2.4 数值模式 223
9.2.5 开始与结束模式 224
9.3 动作 224
9.3.1 变量 224
9.3.2 内建变量 225
9.3.3 数值运算符及其操作 227
9.3.4 数组 228
9.3.5 用户定义函数 229
9.3.6 控制语句 230
9.4 输入 232
9.4.1 从文件中读取输入 232
9.4.2 从键盘读取输入 233
9.4.3 从管道中读取输入 233
9.4.4 在命令行上将参变量传递给程序 234
9.4.5 多行文件和记录分隔符 234
9.5 输出 235
9.5.1 print 235
9.5.2 printf 235
9.5.3 传递输出到多个文件中 236
9.6 用Shell来运行awk 236
9.7 sed文件和sed命令 237
9.7.1 sed用法介绍 237
9.7.2 保存sed输出 238
9.7.3 使用sed在文件中查询文本的方式 238
9.8 小结 239
9.9 习题 240
第10章 UNIX安全机制 241
10.1 系统安全的必要性 241
10.1.1 计算机信息系统的脆弱性 241
10.1.2 安全威胁 242
10.1.3 UNIX系统的安全管理 243
10.2 用户安全性 244
10.2.1 口令保护 244
10.2.2 文件保护 244
10.2.3 目录许可 245
10.2.4 umask命令 245
10.2.5 设置用户ID和同组用户ID许可 246
10.2.6 cp、mv、ln和cpio命令 246
10.2.7 su和newgrp命令 248
10.2.8 文件加密 248
10.3 文件系统安全 248
10.3.1 UNIX文件系统概述 248
10.3.2 设备文件 249
10.3.3 /etc/mknod命令 250
10.3.4 安全考虑 251
10.3.5 find命令 251
10.3.6 secure程序 252
10.3.7 ncheck命令 252
10.3.8 安装和卸载文件系统 252
10.3.9 系统目录和文件 253
10.4 安全相关文件 253
10.4.1 /etc/passwd文件 253
10.4.2 /etc/group文件 255
10.4.3 /etc/profile文件 255
10.5 安全策略 256
10.5.1 限制访问 256
10.5.2 防火墙 257
10.5.3 ACL(访问控制列表) 258
10.5.4 监控系统文件 258
10.5.5 加密安全工具 259
10.6 防火墙 260
10.6.1 防火墙技术 260
10.6.2 防火墙的类型 261
10.6.3 先进的认证技术 264
10.7 系统管理员意识 264
10.7.1 管理员登录安全 265
10.7.2 保证系统安全 266
10.7.3 root运行的进程 267
10.7.4 增加、删除和移走用户 268
10.8 物理安全 269
10.9 小系统安全 270
10.10 小结 271
10.11 习题 273
第11章 UNIX网络通信 274
11.1 网络简介 274
11.1.1 OSI分层模型 275
11.1.2 TCP/IP协议简介 276
11.2 UNIX网络配置的相关文件 278
11.2.1 网络地址 278
11.2.2 接口名与IP地址的映射 280
11.2.3 子网掩码 280
11.2.4 默认网关 282
11.3 网络命令 283
11.3.1 ping命令 283
11.3.2 ifconfig命令 283
11.3.3 netstat命令 284
11.3.4 finger命令 285
11.3.5 route命令 286
11.4 小结 286
11.5 习题 286
第12章 UNIX网络服务与应用 287
12.1 域名解析 287
12.1.1 三种主机名解析的比较 287
12.1.2 DNS的工作原理 289
12.1.3 DNS服务器配置实例 290
12.1.4 DNS客户端的配置 298
12.1.5 使用nslookup测试DNS 300
12.1.6 DNS其他知识 302
12.2 WWW服务 303
12.2.1 WWW服务和HTTP的工作原理 303
12.2.2 非持久连接和持久连接 305
12.2.3 HTTP消息格式 307
12.2.4 用户——服务器交互 310
12.3 文件传输 311
12.3.1 FTP的工作原理 311
12.3.2 FTP配置说明 313
12.3.3 VSFTPD配置举例 322
12.3.4 虚拟用户的配置 324
12.4 小结 325
12.5 习题 325
第13章 用户账号管理 326
13.1 用户账号 326
13.1.1 用户与用户组 327
13.1.2 用户账号的定义 327
13.1.3 /etc/passwd文件 327
13.1.4 /etc/group文件 329
13.2 用户账号的创建、修改和删除 330
13.2.1 useradd 330
13.2.2 groupadd 331
13.3 用户账号口令字管理 331
13.4 权限管理 333
13.4.1 更改用户密码 333
13.4.2 定制用户 334
13.5 系统管理员的角色 335
13.5.1 什么是系统管理员 335
13.5.2 硬件方面的职责 336
13.5.3 软件方面的职责 336
13.5.4 对用户的责任 337
13.6 小结 338
13.7 习题 338
附录 VMware下UNIX的安装 339
一、VMware的安装 339
二、使用VMware创建Solaris 10虚拟机 341
三、Solaris 10的安装 344
参考文献 350