当前位置:首页 > 工业技术
UNIX原理与应用 第4版
UNIX原理与应用 第4版

UNIX原理与应用 第4版PDF电子书下载

工业技术

  • 电子书积分:18 积分如何计算积分?
  • 作 者:(印度)SUMITABHADAS著;吴文国译
  • 出 版 社:北京:清华大学出版社
  • 出版年份:2008
  • ISBN:7302166900
  • 页数:635 页
图书介绍:本书介绍Unix操作系统的原理与应用。
上一篇:爆破工下一篇:液压与气动 第2版
《UNIX原理与应用 第4版》目录
标签:原理 应用

第Ⅰ部分 初级篇 3

第1章 入门 3

1.1 什么是操作系统 4

1.2 UNIX操作系统 5

1.3 了解自己的机器 5

1.4 一个简单的会话过程 7

1.4.1 用账号和口令登录 7

1.4.2 命令 9

1.4.3 显示日期和时间的命令date 9

1.4.4 两个重要的事实 10

1.4.5 清屏命令——tput 10

1.4.6 日历命令——cal 10

1.4.7 检查当前用户命令——who 11

1.4.8 查看进程命令——ps 12

1.4.9 文件列表命令——ls 12

1.4.10 把输出重定向到文件 13

1.4.11 统计文件的行数命令——wc 13

1.4.12 命令之间的导向作用 14

1.4.13 shell指令的编程特性 14

1.4.14 退出命令——exit 14

1.5 UNIX简史 15

1.5.1 UNIX的BSD版 15

1.5.2 UNIX的其他版本 16

1.5.3 Internet时代 16

1.5.4 来自Windows的挑战 17

1.6 Linux与GNU 17

1.7 小结 17

第2章 UNIX的体系结构与命令用法 20

2.1 UNIX的系统结构 21

2.1.1 任务分工——内核和壳 21

2.1.2 文件与进程 22

2.1.3 系统调用 23

2.2 UNIX系统的主要特性 23

2.2.1 UNIX是一个多用户系统 23

2.2.2 UNIX是一个多任务系统 24

2.2.3 UNIX系统采用积木构建法 24

2.2.4 UNIX的工具包 25

2.2.5 模式匹配 25

2.2.6 编程工具 25

2.2.7 帮助文档 26

2.3 POSIX和单一UNIX规范 26

2.4 定位命令文件 27

2.5 内部命令与外部命令 28

2.6 命令格式 28

2.6.1 可选项 29

2.6.2 文件名参数 30

2.6.3 例外情形 30

2.7 命令的灵活使用 31

2.7.1 组合命令 31

2.7.2 命令自动换行与多行命令 31

2.7.3 在前一个命令结束之前输入命令 32

2.8 浏览在线帮助文档的man命令 32

2.9 man文档的组成 34

2.9.1 man帮助页的组成 35

2.9.2 利用man文档了解man的用法 35

2.10 利用man-k、apropos和whatis命令得到的帮助 36

2.11 出错时的处理 37

2.12 小结 40

第3章 通用命令介绍 43

3.1 日历命令——cal 44

3.2 显示系统日期命令——date 45

3.3 回显命令——echo 45

3.4 用printf命令取代echo命令 47

3.5 计算器命令——bc 48

3.6 会话过程记录命令——script 49

3.7 电子邮件基础 50

3.8 万能的邮件处理工具——mailx 51

3.8.1 发送邮件 51

3.8.2 接收邮件 52

3.8.3 mailx的内部命令 53

3.9 口令修改命令passwd 55

3.10 查看系统当前用户的命令——who 56

3.11 了解系统特性的命令——uname 57

3.12 获取终端名称的命令——tty 58

3.13 显示和设置终端特性的命令——stty 59

3.14 小结 60

第4章 文件系统 63

4.1 文件 63

4.1.1 普通文件 64

4.1.2 目录文件 64

4.1.3 设备文件 65

4.2 文件的命名规则 65

4.3 父目录与子目录的关系 66

4.4 HOME变量——主目录 67

4.5 显示当前目录命令——pwd 68

4.6 改变当前目录命令——cd 68

4.7 创建目录命令——mkdir 69

4.8 删除目录命令——rmdir 70

4.9 绝对路径 71

4.10 相对路径 72

4.11 目录列表命令——ls 74

4.12 UNIX文件系统 77

4.13 小结 78

第5章 普通文件 81

5.1 显示和创建文件命令——cat 82

5.1.1 cat命令的可选项(-v和-n) 82

5.1.2 用cat命令创建文件 82

5.2 文件复制命令——cp 83

5.3 文件删除命令——rm 85

5.4 文件重命名命令——mv 86

5.5 分页输出命令——more 87

5.5.1 导航 88

5.5.2 重复参数 89

5.5.3 搜索匹配模式 89

5.5.4 在管道中使用more命令 89

5.6 lp子系统——文件打印命令 90

5.6.1 lp命令可选项 90

5.6.2 lp子系统的其他命令 91

5.7 文件类型识别命令file 92

5.8 统计行数、字数和字符数的命令——wc 92

5.9 数据的八进制显示命令od 93

5.10 文件比较命令cmp 94

5.11 查找两个文件相同之处的命令comm 95

5.12 文件转换命令diff 96

5.13 实现DOS与UNIX文件的转换:dos2unix和unix2dos命令 96

5.14 文件压缩与文件归档 98

5.15 压缩和解压缩命令:gzip和gunzip 98

5.16 归档程序tar 100

5.16.1 创建归档文件(-c) 100

5.16.2 解压归档文件(-x) 101

5.16.3 浏览归档文件的内容(-t) 101

5.17 将压缩与归档功能合二为一的命令:zip和unzip 102

5.18 小结 103

第6章 文件的基本属性 106

6.1 显示文件属性命令——ls-l 107

6.2 用-d可选列出目录的属性 108

6.3 文件所有权 109

6.4 文件权限 109

6.5 改变文件权限命令——chmod 110

6.5.1 相对权限设置 111

6.5.2 绝对权限设置 112

6.5.3 安全隐患 114

6.5.4 递归模式的chmod命令(-R) 114

6.6 目录权限 115

6.7 改变文件的所有权 115

改变文件所有权命令——chown 116

6.7.2 改变组所有者命令——chgrp 116

6.8 小结 117

第7章 vi编辑器 120

7.1 初识vi编辑器 121

7.1.1 重复因子 123

7.1.2 .exrc文件 123

7.1.3 几个小技巧 123

7.2 输入模式——文本输入和文本替换 124

7.2.1 插入文本(i和a命令) 124

7.2.2 在行首行尾插入文本 125

7.2.3 新建一行(o或O命令) 125

7.2.4 文本替换(r、s、R和S命令) 126

7.3 保存文件和退出ex模式 127

7.3.1 保存文件(:w) 128

7.3.2 保存和退出命令(:x和:wq) 128

7.3.3 放弃编辑命令(:q) 129

7.3.4 保存所选的行 129

7.3.5 暂时返回到shell的命令(:sh或[Ctrl+z]) 130

7.3.6 从紧急事故中恢复数据(:recover和:r) 130

7.4 导航命令 130

7.4.1 移动命令(h、j、k和l) 131

7.4.2 单词导航(b、e和w) 131

7.4.3 移动行首行尾(0、|和$) 132

7.4.4 翻页命令([Ctrl+f]、[Ctrl+b]、[Ctrl+d]和[Ctrl+u] 132

7.4.5 绝对移动命令 133

7.5 编辑文本 133

7.5.1 删除文本(x和dd) 134

7.5.2 移动文本(p) 135

7.5.3 复制文本(y和p) 135

7.5.4 行合并命令(J) 135

7.6 撤消最近一次的编辑操作(u和U) 136

7.7 重复上次操作(.) 136

7.8 模式搜索(/和?) 137

7.9 替换命令(:s) 139

7.10 小结 140

第8章 shell 143

8.1 shell的命令解释过程 144

8.2 shell的类型 145

8.3 模式匹配——通配符 145

8.3.1 *和?通配符 146

8.3.2 匹配“.” 147

8.3.3 字符类 147

8.3.4 无规律的匹配模式 148

8.3.5 总结 149

8.4 转义和引用 149

8.4.1 转义机制 150

8.4.2 引用 151

8.4.3 echo命令中的转义字符 152

8.5 重定向符与三个标准文件 152

8.5.1 标准输入 153

8.5.2 标准输出 154

8.5.3 标准错误 155

8.5.4 连接标准输出和标准输入的过滤器 157

8.6 两个特殊文件:/dev/null和/dev/tty 158

8.7 管道符 159

8.8 分叉符命令tee 162

8.9 命令替换 163

8.10 shell变量 164

8.10.1 引号和转义的作用 165

8.10.2 什么情形下使用shell变量 166

8.11 小结 167

第9章 进程 171

9.1 进程的基本概念 172

9.1.1 shell进程 172

9.1.2 父进程与子进程 173

9.1.3 父进程等待或不等待子进程的死亡 173

9.2 显示进程状态命令ps 173

9.3 系统进程(-e或-A) 176

9.4 进程创建的机制 177

9.5 内部命令和外部命令 179

9.6 进程状态和僵尸状态 179

9.7 在后台运行作业 180

9.7.1 后台运行命令——& 180

9.7.2 nohup命令 180

9.8 降低优先级命令——nice 181

9.9 用信号方式终止进程 182

9.10 作业控制 183

9.11 在将来某个时刻运行——at和batch命令 185

9.11.1 一次性自动执行命令——at 185

9.11.2 批处理命令batch 186

9.12 周期性执行作业的命令——cron 186

9.13 查看进程运行时间的命令——time 188

9.14 小结 188

第10章 环境设置 191

10.1 shell的演变 192

10.2 环境变量 192

10.3 常用的环境变量 193

10.4 别名(bash和Korn shell) 197

10.5 命令的历史记录(bash和ksh) 198

10.5.1 根据事件代号访问历史命令(!和r) 199

10.5.2 根据上下文执行历史命令 200

10.5.3 在先前的命令中执行替换 200

10.5.4 使用前面命令的最后一个参数($_) 200

10.5.5 历史变量 201

10.6 行编辑命令(bash和ksh) 201

10.6.1 编辑命令行 201

10.6.2 在历史列表中搜索先前的命令 202

10.7 其他特性(bash和ksh) 202

10.7.1 使用set-o命令 203

10.7.2 代字符的替换作用 203

10.8 启动脚本 204

10.8.1 启动文件(.profile和.bash_profile) 204

10.8.2 rc文件(bash和ksh) 205

10.9 小结 206

第11章 文件的其他属性 209

11.1 文件系统与文件的inode结点 210

11.2 硬链接 211

11.2.1 建立硬链接——ln命令 212

11.2.2 硬链接的应用 212

11.3 符号连接和ln命令 213

11.4 目录 214

11.4.1 读权限 215

11.4.2 写权限 215

11.4.3 执行权限 215

11.5 设置文件和目录默认权限——umask命令 216

11.6 修改和访问时间 217

11.7 定位文件命令find 218

11.7.1 查找条件 220

11.7.2 find命令的操作符(!,-o和-a) 222

11.7.3 动作部分的可选项 222

11.8 小结 223

第12章 简单的过滤器 226

12.1 实例数据库 227

12.2 分页命令pr 227

12.3 显示文件头命令——head 229

12.4 显示文件尾——tail命令 229

12.5 垂直截取——cut命令 231

12.5.1 按列截取(-c) 231

12.5.2 用cut命令截取字段(-f) 231

12.6 粘贴——paste命令 232

12.7 排序命令sort 234

12.8 定位重复行和非重复行命令——uniq 237

12.9 字符变换命令tr 239

12.10 一个实例——单词统计表 241

12.11 小结 242

第13章 使用正则表达式的过滤器——grep与sed 244

13.1 模式搜索命令grep 245

13.2 初探基本正则表达式(BRE) 248

13.2.1 字符类 249

13.2.2 直接前缀符(*) 250

13.2.3 点的作用——匹配单个字符 251

13.2.4 位置匹配(^和$) 251

13.2.5 元字符不起作用的情形 252

13.3 扩展正则表达式(ERE)和grep命令 253

13.3.1 +和? 253

13.3.2 多模式匹配(|、(和)) 254

13.4 流编辑命令sed 254

13.5 行地址 256

13.6 使用多个指令(-e和-f) 257

13.7 根据上下文寻址 257

13.8 把选取的行写入文件(w) 258

13.9 文本编辑 259

13.9.1 行插入和修改指令(i、a、c) 259

13.9.2 删除行(d) 260

13.10 替换操作(s) 260

13.11 再识基本正则表达式 263

13.11.1 重复模式(&) 263

13.11.2 间隔正则表达式 263

13.11.3 带标志的正则表达式 264

13.12 小结 266

第14章 shell程序设计基础 269

14.1 shell脚本 270

14.2 read命令——脚本的交互式执行 271

14.3 使用命令行参数 272

14.4 exit命令和命令的退出状态 274

14.5 逻辑运算符&&和||——有条件执行 275

14.6 if条件语句 276

14.7 利用test和[]符号计算表达式的值 277

14.7.1 数值比较 277

14.7.2 字符串比较 279

14.7.3 文件测试 281

14.8 case条件语句 282

14.8.1 匹配多个模式 284

14.8.2 在case结构中使用通配符 284

14.9 数值计算和字符串处理命令expr 284

14.9.1 数值运算 285

14.9.2 字符串处理 285

14.10 脚本程序的另外一种调用方法——$0 287

14.11 while循环结构 288

14.11.1 利用while循环等待一个文件 289

14.11.2 设置无限循环 290

14.12 for循环——作用在列表上的循环 290

14.12.1 各种列表 291

14.12.2 修改文件的扩展名——basename命令 292

14.13 操作位置参数命令:set和shift 293

14.13.1 位置参数左移命令shift 294

14.13.2 执行命令替换的set--命令 295

14.14 here文档(<<) 295

14.15 程序中断命令trap 297

14.16 用set-x命令调试shell脚本 298

14.17 数据验证和数据录入实例 298

14.17.1 代码列表搜索程序valcode.sh 298

14.17.2 数据录入脚本程序dentryl.sh 299

14.18 小结 301

第15章 系统管理基础 305

15.1 系统管理员的登录身份——root 306

15.2 系统管理员的特权 307

15.2.1 设置系统日期——date命令 307

15.2.2 向用户传达消息——wall命令 307

15.2.3 设置文件大小的最大值——ulimit命令 308

15.2.4 控制用户使用at和cron 308

15.3 安全维护 308

15.3.1 passwd命令可以修改任何口令 308

15.3.2 临时权限SUID 309

15.3.3 粘着位 310

15.4 用户管理 311

15.4.1 创建组——groudadd命令 311

15.4.2 创建用户——useradd命令 312

15.4.3 用户配置文件:/etc/passwd和/etc/shadow 312

15.4.4 修改和删除用户——usermod和userdel命令 313

15.5 启动和关机过程 313

15.6 管理磁盘空间 315

15.6.1 报告磁盘可用空间——df命令 315

15.6.2 报告磁盘使用情况——df命令 316

15.7 设备文件 317

15.7.1 块设备和字符设备 318

15.7.2 主设备号和次设备号 318

15.8 操作软盘设备 319

15.8.1 软盘格式化命令——format和fdformat 319

15.8.2 磁盘复制命令——dd 320

15.8.3 操作DOS磁盘 320

15.9 备份程序cpio 321

15.9.1 备份文件(-o) 322

15.9.2 恢复文件(-i) 323

15.9.3 显示归档文件里的文件列表(-it) 324

15.9.4 其他可选项 325

15.10 tar命令 325

15.10.1 备份文件(-c) 326

15.10.2 文件恢复(-x) 327

15.10.3 显示归档文件的内容(-t) 328

15.10.4 其他可选项 328

15.11 小结 329

第Ⅱ部分 高级篇 335

第16章 X Window系统 335

16.1 X系统基础 336

16.2 通用桌面环境 338

16.3 启动和退出X系统 339

16.4 终端仿真程序 340

16.5 剪切和粘贴操作 341

16.5.1 使用鼠标按钮 342

16.5.2 高级的剪切和粘贴操作:xclipboard 342

16.6 远程运行X客户端程序 343

16.6.1 显示程序 343

16.6.2 使用DISPLAY变量 343

16.6.3 使用-display可选项 344

16.7 命令行可选项 344

16.7.1 窗口位置和大小(-geometry) 345

16.7.2 设置颜色(-fg,-bg和-rv) 345

16.7.3 其他可选项 346

16.8 一些标准的X客户端程序 346

16.8.1 文件管理器dtfile 346

16.8.2 时钟模拟器xclock 347

16.8.3 计算器xcalc 347

16.8.4 邮件通知程序xbiff 348

16.8.5 显示系统负荷命令xload 348

16.8.6 终止窗口命令xkill 349

16.9 启动文件 349

16.10 X系统的资源 350

16.10.1 装载资源命令——xrdb 350

16.10.2 -xrm可选项——使配置文件无效 351

16.11 小结 351

第17章 网络工具 353

17.1 TCP/IP基础 354

17.1.1 TCP/IP工作原理 354

17.1.2 TCP/IP的特点 354

17.1.3 IP地址 355

17.1.4 守护进程和端口 355

17.2 域名解析 356

17.3 TCP/IP应用程序 357

17.4 检查网络是否连通——ping命令 358

17.5 远程登录命令——telnet 358

17.6 文件传输协议ftp 359

17.6.1 文件和目录基本操作命令 360

17.6.2 传输文件 361

17.6.3 匿名ftp登录 362

17.7 密码学基础 363

17.7.1 对称密钥算法 363

17.7.2 非对称密钥算法 364

17.8 SSH——安全外壳 364

17.8.1 主机认证 365

17.8.2 rhosts/shosts认证模式 365

17.8.3 用对称算法进行用户认证 366

17.8.4 利用SSH代理实现非交互式登录 367

17.9 SSH工具 368

17.9.1 远程登录和命令的执行——ssh和slogin 369

17.9.2 安全的文件传输命令——sftp和scp 369

17.10 域名系统(DNS) 370

17.11 电子邮件服务 373

17.12 MIME——处理邮件中的二进制附件 374

17.13 万维网 375

17.13.1 统一资源定位器(URL) 376

17.13.2 Web协议HTTP 377

17.13.3 执行外部程序 377

17.13.4 网页设计语言——HTML 378

17.13.5 Web浏览器 379

17.14 Web上的多媒体——再论MIME协议 379

17.15 小结 380

第18章 高级过滤器——awk命令 383

18.1 awk命令简单的过滤功能 384

18.2 把一行拆分成字段 385

18.3 printf格式化输出 386

18.4 变量和表达式 386

18.5 比较运算符 387

18.5.1 正则表达式运算符:~和!~ 388

18.5.2 数值比较 389

18.6 数值运算 390

18.7 变量 390

18.8 -f可选项——把awk程序保存到一个文件里 391

18.9 BEGIN段和END段 391

18.10 内置变量 392

18.11 数组 393

18.11.1 关联(哈希)数组 394

18.11.2 环境数组ENVIRON[] 395

18.12 函数 395

18.13 流程控制——if语句 397

18.14 for循环 398

18.15 while循环 400

18.16 小结 400

第19章 perl——最重要的文本处理器 403

19.1 petl概述 404

19.2 chop截尾函数——删除最后一个字符 405

19.3 变量与运算符 406

19.4 字符串处理函数 407

19.5 在命令行中说明文件名 408

19.6 默认变量$_ 410

19.7 当前行号($.)和范围运算符(..) 410

19.8 列表与数组 411

19.8.1 命令行参数ARGV[] 413

19.8.2 修改数组元素 414

19.9 列表循环——foreach 414

19.10 split函数——把一行拆分成列表或数组 415

19.10.1 拆分到变量里 416

19.10.2 拆分到数组里 416

19.11 join命令——合并列表 417

19.12 dec2bin.pl——把十进制转化为二进制 418

19.13 用grep在数组中搜索一个模式 419

19.14 关联数组 420

19.15 正则表达式与模式替换 422

19.15.1 s和tr函数 422

19.15.2 识别空白符、数字和单词 424

19.15.3 IRE和TRE用法 424

19.15.4 在位编辑文件 425

19.16 文件的处理 425

19.17 文件属性测试 426

19.18 子程序 427

19.19 小结 429

第20章 vi编辑器的高级功能 433

20.1 操作符 433

20.1.1 删除、移动文本(d、p和P命令) 434

20.1.2 文本复制(y命令) 434

20.1.3 修改文本(c命令) 435

20.1.4 过滤文本(!命令) 435

20.2 ex模式——多文件操作 437

20.2.1 文件切换 437

20.2.2 插入文件和命令执行结果 438

20.3 符号缓冲区——保存多个文本段 439

20.4 标号缓冲区——取消多个行删除操作 440

20.5 输入控制符([Ctrl+v]) 441

20.6 字符搜索 442

20.7 标签文本 442

20.8 定制vi编辑器 443

20.8.1 set命令 443

20.8.2 map——建立快捷键映射表 444

20.8.3 abbr——定义文本输入缩写符 445

20.9 小结 446

第21章 高级shell程序设计 449

21.1 shell与子shell 450

21.2 组运算符——()和{} 450

21.3 export命令——导出shell变量 451

21.4 在当前shell运行脚本——.命令 452

21.5 let运算命令(ksh和bash) 453

21.6 数组(ksh和bash) 454

21.7 字符串处理(ksh和bash) 455

21.7.1 字符串的长度 455

21.7.2 根据模式的匹配结果求子串 456

21.8 带条件的参数替换 457

21.9 流的合并 458

21.10 shell函数 459

21.10.1 利用系统日期生成一个文件名 460

21.10.2 函数返回值 460

21.10.3 验证输入日期的有效性 461

21.11 eval命令——两次求值 462

21.12 exec语句 464

21.13 小结 467

第22章 程序开发工具 469

22.1 处理多文件C语言应用程序 470

22.2 一个多文件应用程序 470

22.2.1 编译和连接程序 472

22.2.2 保留.o文件的原因 473

22.3 make命令——保持程序更新 474

22.3.1 删除冗余内容 476

22.3.2 make的其他功能:文件清理和备份 476

22.3.3 宏 477

22.4 ar命令——建立一个库文件(归档文件) 478

22.4.1 使用库文件 479

22.4.2 用make命令维护库文件 480

22.5 静态库和共享库 480

22.6 版本控制工具——SCCS和RCS 481

22.7 一次SCCS会话 482

22.7.1 admin命令——创建一个SCCS文件 483

22.7.2 get命令——检出版本 484

22.7.3 delta——检入命令 485

22.7.4 unget命令——取消修改 486

22.8 活动和历史信息 486

22.8.1 sact——显示活动状态信息 486

22.8.2 prs命令——显示SCCS历史记录 487

22.9 用SCCS继续编辑 487

22.9.1 get-r命令改变默认的数字编号 488

22.9.2 使用标识关键字 489

22.10 修订控制系统(RCS) 489

22.10.1 用ci建立一个RCS文件 490

22.10.2 co和ci——检出和检入命令 491

22.10.3 设置版本号 492

22.10.4 rlog命令——查看版本状态 492

22.10.5 ident命令——使用标识关键字 493

22.11 小结 493

第23章 系统程序设计(上)——文件 496

23.1 系统调用基础 497

23.1.1 系统调用与库函数 497

23.1.2 系统调用的执行过程 497

23.1.3 原子操作 498

23.2 打开和关闭文件 498

23.2.1 打开或建立一个文件——open命令 499

23.2.2 close系统调用——关闭文件 500

23.3 I/O系统调用 501

23.3.1 read调用——读取文件 501

23.3.2 write调用——写入文件 502

23.3.3 ccp.c——文件复制程序 502

23.3.4 lseek调用——定位偏移指针 503

23.3.5 reverse_read.c——逆序读取文件 504

23.3.6 截断文件——truncate和ftruncate 505

23.4 带缓冲和不带缓冲的读写操作 506

23.5 umask命令——文件创建与权限修改 507

23.6 错误处理 508

23.6.1 strerror函数 508

23.6.2 perror函数 509

23.6.3 带错误处理的文件逆序读取程序reverse_read2.c 510

23.7 文件共享 512

23.7.1 文件描述表 513

23.7.2 文件表 513

23.7.3 vnode表 514

23.8 目录浏览 515

23.9 读取目录文件 516

23.10 修改目录文件的记录 517

23.10.1 建立和删除目录——mkdir和rmdir系统调用 518

23.10.2 建立硬连接和符号连接——link和symlink调用 518

23.10.3 unlink:删除连接 518

23.10.4 rename:重命名文件名、目录名和连接文件名 519

23.11 stat——读取inode 519

23.11.1 attributes.c显示文件部分属性 520

23.11.2 作用于st_mode成员上的S_IFMT屏蔽字 521

23.11.3 用S_IS系列宏判断文件类型 522

23.11.4 lsdir.——只列出目录 522

23.12 查看文件的存取权限 524

23.12.1 check_all_perm.c——查看12个权限位 524

23.12.2 access——查看文件所有者的权限 526

23.12.3 SUID对文件存取的影响 528

23.13 修改文件属性 529

23.13.1 chmod和fchmod——修改文件权限 529

23.13.2 chown——修改文件所有权 530

23.13.3 utime——修改文件的时间戳 530

23.13.4 atimetime.c——创建具有相同时间戳的文件 531

23.14 小结 532

第24章 系统程序设计(下)——进程控制 536

24.1 进程的几个抽象概念 537

24.1.1 虚拟地址空间 537

24.1.2 进程表 538

24.2 process.c程序——查看进程的权限 539

24.3 创建一个进程 540

24.3.1 fork系统调用——复制当前进程 540

24.3.2 fork.c——一个简单的子进程创建程序 540

24.3.3 getenv和setenv——使用环境变量 542

24.3.4 childenv.c——传递环境 542

24.4 _exit和exit——终止进程 544

24.5 等待状态——读取子进程的退出状态值 545

24.5.1 wait——等待子进程死亡 545

24.5.2 wait.c——说明wait和WEXISTATUS的用法 545

24.5.3 waitpid——一个功能更强大的等待机制 546

24.6 进程组 547

24.7 僵尸进程和孤儿进程 548

24.8 exec——进程创建中的最后一个步骤 549

24.8.1 execl——“l”系列中最重要函数 549

24.8.2 execv——v组中最重要的函数 551

24.8.3 exec_and_fork.c——在子进程执行exec 551

24.8.4 l家族和v家族的其他成员 552

24.9 shell.c——一个类似于shell的程序 553

24.10 文件描述符的使用 555

24.10.1 dup——复制文件描述符 556

24.10.2 dup2——复制描述符的一种更好方法 557

24.10.3 fcntl——比dup和dup2更好的函数 558

24.11 pipe系统调用——进程之间的通信 559

24.11.1 pipe与fork一起使用 560

24.11.2 pipe2.c——管道中运行UNIX命令 561

24.12 信号机制 562

24.12.1 信号处理 562

24.12.2 内核处理信号的过程 563

24.12.3 与信号有关的系统调用 564

24.13 signal调用——设置信号处理程序 564

24.13.1 响应SIGALRM信号 565

24.13.2 为什么signal调用不可靠 566

24.13.3 捕获来自键盘终端的信号 567

24.14 killprocess.c——用kill产生信号 568

24.15 小结 570

第25章 高级系统管理 573

25.1 安全措施 574

25.1.1 口令老化机制 574

25.1.2 受限的shell 574

25.1.3 只允许一个用户关机 575

25.2 分区与文件系统 575

25.2.1 引导块 576

25.2.2 超级块 576

25.2.3 inode块 577

25.2.4 数据块 577

25.3 常用的文件系统和类型 578

25.4 fdisk——建立分区 579

25.5 mkfs——创建文件系统 580

25.6 加载和卸载文件系统 581

25.6.1 用mount加载文件系统 581

25.6.2 umount——卸载文件系统 582

25.6.3 /etc/fstab文件——配置mount命令 582

25.6.4 mount的可选项 583

25.7 用fsck命令检查文件系统 584

25.8 系统启动和init命令 585

25.8.1 init命令——控制运行级 586

25.8.2 使用/etc/inittab文件 586

25.8.3 init和getty 587

25.8.4 rc脚本程序 588

25.9 关机操作和sync操作 589

25.10 备份 590

25.10.1 用find命令进行增量备份(-newer) 590

25.10.2 用find命令备份文件系统 590

25.10.3 xargs——建立动态命令行 591

25.10.4 保存备份文件的列表 591

25.11 小结 592

附录A C shell的结构 594

附录B vi/vim命令手册 601

附录C 命令反查表 609

附录D 测试题答案 614

返回顶部