《普通高校本科计算机专业特色教材精选 实用UNIX教程》PDF下载

  • 购买积分:12 如何计算积分?
  • 作  者:蒋砚军,高占春编著
  • 出 版 社:北京:清华大学出版社
  • 出版年份:2005
  • ISBN:7302098255
  • 页数:318 页
图书介绍:本书面向UNIX的普通用户,介绍UNIX操作系统提供的用户接口。书中讲述了UNIX中的基本概念和原理,在此基础上讲述UNIX的主要命令和函数调用。书中重点突出,理论学习和实际操作相结合,强调在理解基本原理的基础上理解和掌握UNIX提供给操作员的命令和提供给程序员的函数调用,为深入研究UNIX系统打下基础。主要内容包括UNIX的命令,Shell编程语言,进程控制和进程通信,以及网络Socket编程。本书读者不需要事先具备UNIX的操作经验,但需要有C语言的基本知识,适合高校本科生和研究生以及工程技术人员学习UNIX使用。

第1章 UNIX简介 1

1.1 UNIX的发展过程和标准化 1

1.1.1 UNIX的发展过程 1

1.1.2 什么是UNIX 3

1.1.3 UNIX的标准化 3

1.2 系统的登录与退出 3

1.2.1 UNIX的主机和终端 3

1.2.2 登录 5

1.2.3 退出 6

1.2.4 关机 6

1.3 使用系统命令 6

1.3.1 man:查阅联机手册 6

1.3.2 获取系统情况 9

1.3.3 passwd:更换用户口令 10

1.3.4 与其他用户通信 11

1.3.5 与其他主机通信 12

1.3.6 几个实用工具 17

第2章 基本UNIX实用程序 21

2.1 more,less,pg:逐屏显示文件内容 22

2.2 cat:列出文本文件内容 24

2.3 od:列出文件每个字节的内容 24

2.4 head与tail:打印文件头或尾 25

2.5 wc:字计数 26

2.6 sort:对文件内容排序 28

2.7 tee:三通 29

2.8 正则表达式的概念 29

2.9 grep,egrep与fgrep:在文件中查找字符串 31

2.10  awk:文本处理语言 34

2.11 sed:流编辑 36

2.12 tr:翻译字符 37

2.13  cmp和diff:比较两个文件 38

第3章 全屏幕编辑程序vi 41

3.1 vi的启动方法 41

3.2 vi的选项 41

3.3 vi的工作方式 42

3.4 vi的编辑命令 42

3.4.1 正文插入命令 43

3.4.2 光标移动命令 43

3.4.3 设置书签 45

3.4.4 删除 45

3.4.5 字符替换 45

3.4.6 取消和重复 46

3.4.7 文件命令 46

3.4.8 段落的删除、复制和移动 46

3.4.9 剪贴板 47

3.4.10 其他命令 48

3.4.11 模式查找 48

3.4.12 模式替换 48

3.4.13 编辑命令小结 52

第4章 UNIX的文件和目录 55

4.1 文件和目录的层次结构 55

4.2 文件和目录的命名 56

4.3 shell的文件名通配符 56

4.3.1 规则 56

4.3.2 与DOS文件名通配符的区别 56

4.3.3 文件名通配符的处理过程 57

4.3.4 验证文件名匹配的结果 58

4.4 文件管理 60

4.4.1 ls:文件名列表 60

4.4.2 cp:复制文件 64

4.4.3 mv:移动文件 65

4.4.4 rm:删除文件 65

4.4.5 find:查找文件 67

4.5 目录管理 69

4.5.1 路径名 69

4.5.2 pwd:打印当前工作目录 70

4.5.3 cd:改变当前工作目录 70

4.5.4 mkdir:创建目录 70

4.5.5 rmdir:删除目录 70

4.5.6 cp:复制目录 71

4.6 文件的归档与压缩处理 71

4.6.1 tar:文件归档 71

4.6.2 compress:文件压缩 72

4.6.3 应用 73

4.7 文件系统的存储结构 73

4.7.1 基本文件系统与子文件系统 73

4.7.2 文件系统的结构 75

4.7.3 目录结构 76

4.7.4 命令df与du 77

4.8 硬连接与符号连接 79

4.8.1 硬连接 79

4.8.2 符号连接 82

4.8.3 硬连接与符号连接的比较和应用 85

4.9 系统调用 86

4.10 文件和目录的访问 88

4.10.1 文件存取 88

4.10.2 目录访问 93

4.10.3 获取文件系统的信息 96

4.11 获取文件的状态信息 97

4.12 设备文件 99

4.13 文件和目录的权限 101

4.13.1 权限控制的方法 101

4.13.2 查看文件和目录的权限 103

4.13.3 chmod:修改权限 103

4.13.4 umask:改变文件创建状态掩码 106

4.13.5 SUID权限和SGID权限 107

第5章 C-shell的交互功能 113

5.1 UNIX的shell 113

5.2 csh启动与终止 114

5.3 使用csh的历史机制 115

5.3.1 历史表大小 115

5.3.2 查看历史表 115

5.3.3 引用历史机制 115

5.4 别名 116

5.4.1 在别名表中增加一个别名 116

5.4.2 查看别名表 117

5.4.3 给别名传递参数 117

5.4.4 取消别名 118

5.5 csh提示符 118

5.6 csh的管道和重定向 118

5.6.1 标准输入,标准输出,标准错误输出 119

5.6.2 标准输出和标准错误输出重定向 120

5.6.3 管道 121

第6章 B-shell及编程 123

6.1 启动B-shell 123

6.1.1 启动一个交互式B-shell 123

6.1.2 #!/bin/sh:脚本文件的执行 123

6.2 重定向与管道 125

6.2.1 输入重定向 125

6.2.2 输出重定向 127

6.2.3 管道 129

6.3 变量 129

6.3.1 变量赋值和引用 129

6.3.2 read:读用户的输入 130

6.3.3 环境变量和局部变量 131

6.3.4 内置变量 132

6.3.5 shell的标准变量 134

6.4 替换 135

6.4.1 文件名生成 135

6.4.2 变量替换 135

6.4.3 命令替换 136

6.5 元字符 136

6.5.1 空格、制表符和转义符 137

6.5.2 回车和分号 138

6.5.3 文件名通配符 138

6.5.4 美元符和反撇号 138

6.5.5 重定向和管道 138

6.5.6 启动程序后台执行 140

6.5.7 括号 140

6.5.8 转义符 141

6.5.9 双引号和单引号 142

6.5.10 转义符与引号及反撇号 142

6.6 条件判断 144

6.6.1 条件 144

6.6.2 最简单的条件判断 146

6.6.3 命令true与命令false 147

6.6.4 命令test与命令[ 147

6.6.5 {}与() 149

6.6.6 条件结构if 152

6.6.7 case结构 153

6.7 循环结构 154

6.7.1 while结构 154

6.7.2 expr:计算表达式的值 155

6.7.3 for结构 157

6.7.4 break与continue 159

6.8 函数 161

6.9 shell开关和位置变量 163

6.9.1 set:设置B-shell内部开关 163

6.9.2 set:设置shell位置变量 165

6.9.3 shift:位置变量的移位 166

第7章 进程控制与进程间通信 169

7.1 进程控制 169

7.1.1 进程的基本概念 169

7.1.2 fork:创建新进程 180

7.1.3 exec:重新初始化进程 183

7.1.4 wait:等待子进程运行结束 186

7.1.5 xsh0.c:最简单的shell 188

7.1.6 vfork和_exit 191

7.1.7 system:在程序中运行一个命令 193

7.1.8 ps:列出进程的状态 195

7.2 信号 197

7.2.1 信号的产生及信号类型 197

7.2.2 kill:发送信号 200

7.2.3 信号的捕捉与处理 204

7.2.4 longjmp:全局跳转 210

7.2.5 信号对进程执行的影响 213

7.2.6 sleep,pause与alarm 214

7.2.7 trap命令:shell对信号的处理 216

7.3 进程与文件描述符 218

7.3.1 内核中的文件打开结构 218

7.3.2 文件描述符的继承和复制 221

7.3.3 管道操作 226

7.4 消息队列 232

7.4.1 有关的系统调用 232

7.4.2 程序举例 235

7.4.3 消息队列的特点 239

7.4.4 死锁 240

7.4.5 命令ipcs和ipcrm 241

7.4.6 有关的主要系统参数 242

7.5 信号量 242

7.5.1 创建或获取信号量组 243

7.5.2 信号量组的控制 243

7.5.3 信号量操作 244

7.5.4 相关命令和系统参数 245

7.6 共享内存 245

7.6.1 创建或获取共享内存段 246

7.6.2 获取指向共享内存段的指针 246

7.6.3 共享内存段的控制 246

7.6.4 相关的命令和系统参数 246

7.7 信号量和共享内存使用举例 247

7.8 内存映射文件I/O 253

7.9 文件和记录的锁定 255

7.9.1 设置文件锁定的必要性 255

7.9.2 锁定操作 256

7.9.3 使用举例 258

7.9.4 咨询式锁定和强制性锁定 261

7.9.5 死锁 262

7.9.6 文件锁的隐式释放 262

7.9.7 获取记录的加锁状态 264

第8章 网络程序设计 267

8.1 概述 267

8.1.1 socket 267

8.1.2 TCP与UDP 268

8.1.3 网络字节次序 269

8.2 TCP客户—服务器程序 270

8.2.1 TCP客户端程序 270

8.2.2 最简单的TCP服务器端程序 273

8.2.3 多进程并发处理的TCP服务器端程序 275

8.3 与socket有关的系统调用 279

8.3.1 socket:创建一个socket 279

8.3.2 bind:指定本地端点名 279

8.3.3 listen:开始监听到达的连接请求 280

8.3.4 accept:接受一个连接请求 280

8.3.5 connect:建立连接 280

8.3.6 read和write:接收和发送 281

8.3.7 send/sendto和recv/recvfrom 284

8.3.8 fcntl:无阻塞I/O 285

8.3.9 getpeername:获取对方的端点名 286

8.3.10 getsockname:获取本地的端点名 286

8.3.11 shutdown:禁止发送或接收 286

8.3.12 close:关闭一个连接 287

8.3.13 getsockopt,setsockopt和ioctl 287

8.3.14 库函数 289

8.4 单进程并发处理 291

8.4.1 select:I/O多路转接 291

8.4.2 单进程并发处理的TCP服务器端程序 295

8.5 UDP通信 298

8.5.1 UDP客户端程序 298

8.5.2 UDP服务器端程序 300

8.6 与TCP/IP通信相关的命令 302

8.6.1 查看IP接口状态 302

8.6.2 打印IP路由表 303

8.6.3 协议统计信息 303

8.6.4 查看连接和端点名 304

附录A ASCII码表 307

参考文献 311

索引 313