《UNIX/Linux应用、编程与系统管理 3版》PDF下载

  • 购买积分:20 如何计算积分?
  • 作  者:(美)达斯著
  • 出 版 社:北京:清华大学出版社
  • 出版年份:2014
  • ISBN:9787302355847
  • 页数:717 页
图书介绍:本书兼顾用户和程序员的思路来编写,是终极的UNIX/Linux教材。本书既有教学工具又有详尽的参考资料,非常适合于任何UNIX或Linux相关课程。与类似教材不同的是,本书设置了一个强大的教学框架,能够使入门级的学生牢固地掌握基本概念,而高级主题章节,激发更有经验的读者超越基础知识。书中提供了近千道练习和自测题,用于让学生测试和巩固他们对知识的理解。

第Ⅰ部分 UNIX之用户篇 3

第1章 UNIX简介 3

1.1 操作系统 4

1.2 UNIX操作系统 5

1.3 了解你的计算机 5

1.4 系统管理员 7

1.5 登录和注销 7

1.5.1 登录 7

1.5.2 注销 8

1.6 实践练习 9

1.6.1 用date和who查看系统信息 9

1.6.2 用ps查看进程 10

1.6.3 处理文件 11

1.6.4 处理目录 12

1.7 UNIX的成功之路 14

1.7.1 伯克利:第二学派 14

1.7.2 UNIX的分化 15

1.7.3 互联网 15

1.7.4 Windows的威胁 15

1.8 POSIX和单一UNIX规范 16

1.9 Linux和GNU 16

1.10 UNIX体系结构 17

1.10.1 分工:Kernel和shell 17

1.10.2 文件和进程 18

1.10.3 系统调用 19

1.11 UNIX的功能 19

1.11.1 多用户系统 19

1.11.2 多任务系统 20

1.11.3 应用程序库 20

1.11.4 构建基块方法 20

1.11.5 模式匹配 21

1.11.6 程序设计实用工具 21

1.11.7 文档 21

1.12 小结 22

1.13 自测题 22

1.14 习题 23

第2章 熟悉UNIX命令 25

2.1 命令基础 26

2.1.1 PATH:定位命令 26

2.1.2 命令的存放位置 27

2.2 命令结构 28

2.3 命令应用的灵活性 30

2.4 man:联机帮助 31

2.4.1 导航与查找 33

2.4.2 用man-k和man-f获取更多帮助 33

2.5 man文档 33

2.5.1 了解man页 34

2.5.2 用man来理解man 35

2.6 echo:显示消息 37

2.7 printf:echo的替代命令 39

2.8 script:记录会话 39

2.9 以mailx命令使用电子邮件 40

2.9.1 发送邮件 40

2.9.2 接收邮件 41

2.9.3 mailx内部命令 42

2.10 passwd:改变密码 43

2.11 uname:显示计算机名和操作系统 44

2.12 who:了解用户 45

2.13 date:显示系统日期 45

2.14 stty:在出错时 46

2.15 X Window系统 48

2.15.1 终端模拟器 48

2.15.2 文件管理器 49

2.16 小结 50

2.17 自测题 51

2.18 习题 52

第3章 文件系统 55

3.1 文件 56

3.1.1 普通(常规)文件 56

3.1.2 目录文件 56

3.1.3 设备文件 57

3.2 文件名中有什么 57

3.3 文件系统的层次结构 58

3.4 UNIX文件系统 59

3.5 随命令一起使用绝对路径名 60

3.6 HOME变量和~:主目录 61

3.7 pwd和cd:在文件系统中导航 61

3.8 相对路径名(.和..) 63

3.9 mkdir:创建目录 64

3.10 rmdir:删除目录 65

3.11 ls:列出文件 66

3.12 cp:复制文件 69

3.13 mv:重命名文件 70

3.14 rm:删除文件 71

3.15 cat:显示和串联文件 73

3.16 more:UNIX分页器 74

3.17 pico:基本文本编辑 76

3.17.1 导航 77

3.17.2 文本编辑 77

3.18 wc:计算行数、字数和字符数 77

3.19 lp:打印文件 78

3.20 od:查看不可打印字符 80

3.2 1 dos2unix、unix2dos和Tofrodos:在DOS和UNIX之间转换 80

3.22 tar:存档程序 81

3.23 gzip:压缩程序 82

3.24 zip:压缩和存档程序 84

3.25 使用这些命令的其他方式 85

3.26 小结 85

3.27 自测题 86

3.28 习题 86

第4章 文件属性 89

4.1 重温ls(-l):列出文件属性 89

4.2 文件权限 91

4.3 chmod:改变文件权限 92

4.3.1 相对权限 93

4.3.2 绝对赋予权限 94

4.3.3 递推操作(-R) 95

4.4 目录 96

4.4.1 读权限 96

4.4.2 写权限 96

4.4.3 执行权限 98

4.5 umask:默认的文件与目录权限 98

4.6 文件系统和inode 99

4.7 ln:创建硬链接 101

4.8 再论ln:创建符号链接 103

4.9 文件所有权 105

4.9.1 chown:改变文件所有权 106

4.9.2 chgrp:改变用户组所有者 106

4.9.3 如何处理入侵者 107

4.10 修改时间与访问时间 108

4.11 find:定位文件 108

4.11.1 选择准则 110

4.11.2 find操作符(!,-o和-a) 112

4.11.3 操作部分的操作符 112

4.12 小结 113

4.13 自测题 113

4.14 习题 114

第5章 vi/vim编辑器 117

5.1 vi基础 118

5.2 一些提示 120

5.3 输入模式——输入和替换文本 121

5.3.1 插入和追加文本(i和a) 122

5.3.2 在行的两端插入和追加文本(I和A) 122

5.3.3 新建一行(o和O) 123

5.3.4 替换文本(r、s、R和S) 124

5.3.5 输入控制字符([Ctrl-v]) 125

5.4 保存文本并退出——ex模式 126

5.4.1 保存工作(:w) 127

5.4.2 保存并退出(:x和:wq) 127

5.4.3 中止编辑(:q) 127

5.4.4 写入选定行 128

5.4.5 退出到shell(:sh和[Ctrl-z]) 129

5.5 从崩溃中恢复(:recover和-r) 129

5.6 导航 130

5.6.1 4个方向上的相对移动(h、j、k和1) 131

5.6.2 滚动([Ctrl-f]、[Ctrl-b]、[Ctrl-d]和[Ctrl-u]) 131

5.6.3 单词导航(b、e和w) 132

5.6.4 移到行的末端(0、|和$) 132

5.6.5 绝对移动(G) 133

5.7 编辑文本,不使用操作符 133

5.7.1 删除文本(x、X和dd) 133

5.7.2 移动文本(p) 134

5.7.3 合并行(J) 134

5.7.4 改变大小写(~) 135

5.8 纠正C程序 135

5.9 用操作符编辑文本 136

5.9.1 删除和移动文本(d、p和P) 137

5.9.2 复制文本(y、p和P) 138

5.9.3 修改文本(c) 139

5.10 在文件之间复制和移动文本 139

5.11 撤消之前的编辑指令(u和U) 140

5.12 查找模式(/和?) 141

5.13 重复上一条命令(.) 142

5.14 替代-查找并替换(:s) 143

5.15 set:定制vi 144

5.16 map:映射键盘的按键 146

5.17 abbr:文本输入的缩写 147

5.18 小结 147

5.19 自测题 148

5.20 习题 149

第6章 shell 151

6.1 作为命令处理器的sheU 152

6.2 shell提供的功能 152

6.3 模式匹配——通配符 153

6.3.1 *和? 154

6.3.2 字符类 155

6.3.3 匹配句点 156

6.3.4 综述 157

6.4 转义与引用 157

6.4.1 转义 158

6.4.2 引用 159

6.4.3 在echo中进行转义 159

6.5 重定向 160

6.5.1 标准输入 160

6.5.2 标准输出 162

6.5.3 文件描述符 163

6.5.4 标准错误 164

6.5.5 过滤器——使用标准输入与标准输出 165

6.6 集体处理 165

6.6.1 复制描述符 166

6.6.2 命令分组 166

6.7 /dev/null和/dev/tty:两个独立的文件 167

6.8 管道 168

6.9 tee:创建一个T型三通 170

6.10 命令替换 171

6.11 shell变量 172

6.11.1 引用和转义的影响 173

6.11.2 使用shell变量的场合 174

6.12 shell脚本 175

6.13 shell对命令行的处理 175

6.14 有关通配符的更多信息 176

6.15 xargs:构建动态命令行 177

6.16 小结 177

6.17 自测题 178

6.18 习题 179

第7章 进程 181

7.1 进程基础 182

7.2 shell和init 182

7.3 ps:显示进程属性 183

7.4 系统进程和init 184

7.5 进程创建机制 187

7.6 继承的进程属性 188

7.7 不能使用单独进程的情景 190

7.8 进程状态与僵尸进程(Zombie) 190

7.9 信号处理 191

7.10 在后台运行作业 193

7.10.1 &:不注销 194

7.10.2 nohup:安全注销 194

7.11 作业控制 195

7.12 at和batch:推后执行 198

7.12.1 at:一次执行 198

7.12.2 batch:在批队列中执行作业 199

7.12.3 限制at和batch的使用 199

7.13 cron和crontab:定期运行作业 199

7.14 小结 202

7.15 自测题 203

7.16 习题 203

第8章 shell—定制环境 205

8.1 shell 205

8.2 环境变量 207

8.3 常见环境变量 208

8.4 别名 212

8.5 命令历史记录 213

8.5.1 访问之前的命令 214

8.5.2 在先前命令中进行替换 215

8.5.3 使用上一条命令中的参数)$) 215

8.5.4 历史记录变量 216

8.6 行内命令编辑 217

8.7 ~替换 218

8.8 使用set选项 219

8.9 初始化脚本 220

8.9.1 登录脚本 221

8.9.2 rc文件 221

8.10 C shell 222

8.10.1 局部变量和环境变量 222

8.10.2 别名 224

8.10.3 历史记录 225

8.10.4 其他shell变量 225

8.10.5 初始化脚本 226

8.11 目录栈操作 226

8.12 小结 228

8.13 自测题 229

8.14 习题 229

第9章 简单过滤器 231

9.1 pr:对文件进行编页 232

9.2 对比文件 233

9.3 cmp:逐字节对比 234

9.4 comm:哪些共同内容 235

9.5 diff:将一个文件转换为另一文件 236

9.6 head:显示一个文件的开头 236

9.7 tail:显示文件的末尾 237

9.8 cut:垂直划分文件 238

9.9 paste:粘贴文件 240

9.10 sort:对文件进行排序 240

9.11 uniq:定位重复行和非重复行 244

9.12 tr:变换字符 245

9.13 应用过滤器 247

9.13.1 列出当前目录中5个最大的文件 248

9.13.2 创建一份单词使用情况列表 249

9.13.3 找出两个密码文件之间的差别 249

9.14 小结 251

9.15 自测题 251

9.16 习题 252

第10章 使用正则表达式的过滤器——grep和sed 255

10.1 示例数据库 256

10.2 grep:查找模式 256

10.2.1 grep中的引用 257

10.2.2 grep失败的场合 258

10.3 grep选项 258

10.4 基本正则表达式(BRE)——简介 260

10.4.1 字符类 262

10.4.2 * 262

10.4.3 句点 263

10.4.4 指定模式位置(^和$) 264

10.4.5 元字符失去其意义的情景 265

10.5 扩展正则表达式(ERE)和egrep 265

10.5.1 +和? 266

10.5.2 匹配多种模式(|、(和)) 266

10.6 sed:流编辑器 267

10.7 行寻址 269

10.8 sed选项 270

10.9 上下文寻址 271

10.10 将选定行写入文件(W) 272

10.11 文本编辑 272

10.11.1 插入和改变行(i、a、c) 272

10.11.2 删除行(d) 273

10.12 替换(s) 274

10.12.1 在替换中使用正则表达式 275

10.12.2 记忆模式(∥) 275

10.13 基本正则表达式回顾 276

10.13.1 重复模式(&) 277

10.13.2 间隔正则表达式(IRE) 277

10.13.3 标记正则表达式(TRE) 277

10.14 应用IRE和TRE 278

10.14.1 处理电话簿 278

10.14.2 用POSIX兼容的函数替换过时的函数 279

10.14.3 变换URL中的路径名 280

10.15 小结 281

10.16 自测题 281

10.17 习题 282

第11章 联网工具 285

11.1 TCP/IP基础知识 286

11.2 解析主机名和IP地址 287

11.2.1 /etc/hosts:主机文件 287

11.2.2 域名系统(DNS) 288

11.3 客户端-服务器:网络应用程序如何通信 290

11.4 ping:检查网络 291

11.5 telnet:远程登录 292

11.6 ftp:文件传输协议 293

11.6.1 基本文件与目录处理 293

11.6.2 传送文件 294

11.6.3 匿名FTP 295

11.7 密码学基础 296

11.7.1 对称密钥算法 296

11.7.2 非对称密钥算法 297

11.8 SSH:安全shell 297

11.8.1 主机验证 297

11.8.2 rhosts/shosts验证机制 298

11.8.3 采用对称算法的用户验证 298

11.8.4 使用SSH代理进行非交互式登录 300

11.9 SSH协议 301

11.9.1 远程登录与执行命令(ssh和slogin) 301

11.9.2 用sftp和scp进行文件传输 302

11.10 互联网邮件 303

11.11 MIME:处理邮件中的二进制附件 305

11.12 在TCP/IP网络上使用X Window 306

11.12.1 显示器 306

11.12.2 使用DISPLAY变量 307

11.12.3 使用-display选项 307

11.13 HTTP和万维网 307

11.13.1 统一资源定位符(URL) 308

11.13.2 HTTP:Web的协议 309

11.13.3 运行外部程序 309

11.13.4 HTML:网页的语言 310

11.13.5 Web浏览器 311

11.14 Web上的多媒体:重温MIME 311

11.15 小结 312

11.16 自测题 313

11.17 习题 314

第Ⅱ部分 UNIX之程序员篇 317

第12章 用awk进行过滤和程序设计 317

12.1 awk预备知识 318

12.2 使用print和printf 320

12.3 数字处理 321

12.4 变量和表达式 322

12.5 比较与逻辑运算符 324

12.5.1 字符串和数值比较 324

12.5.2 ~和!~:正则表达式运算符 325

12.5.3 逻辑运算符 327

12.6 -f选项:将awk程序存储在文件中 327

12.7 BEGIN和END节 328

12.8 位置参数 329

12.9 数组 329

12.9.1 关联(哈希)数组 330

12.9.2 ENVIRON[]:环境数组 331

12.10 内置变量 331

12.11 函数 333

12.12 控制流——if语句 335

12.13 for循环 336

12.14 while循环 338

12.15 结论 339

12.16 小结 340

12.17 自测题 340

12.18 习题 341

第13章 shell程序设计 345

13.1 shell脚本 346

13.1.1 script.sh:一个简单脚本 346

13.1.2 She-Bang行 347

13.2 read:使脚本变为交互式的 348

13.3 使用命令行参数 348

13.4 exit和$?:命令的退出状态 350

13.5 逻辑运算符&&和‖——条件执行 351

13.6 if条件句 351

13.7 使用test和[]对表达式求值 353

13.7.1 数值比较 353

13.7.2 []:test的快捷方式 354

13.7.3 字符串比较 355

13.7.4 文件属性检验 355

13.7.5 使用复合条件 357

13.8 两个重要的程序设计习惯 357

13.8.1 以交互式、非交互式执行一项任务 357

13.8.2 用不同名称调用脚本($0) 359

13.9 case条件句 359

13.10 expr、bc和basename:计算与字符串处理 361

13.10.1 用expr进行计算 362

13.10.2 用bc进行浮点计算 362

13.10.3 用expr处理字符串 363

13.10.4 basename:改变文件名扩展 364

13.11 示例程序1:自动选择上一个C程序 365

13.12 for:用列表进行循环 366

13.12.1 列表的来源 366

13.12.2 使用for的重要应用 367

13.13 while:循环 367

13.13.1 在循环中处理重定向 368

13.13.2 使用while等待文件 369

13.13.3 找出用户占用的空间 370

13.13.4 break和continue 371

13.14 示例脚本2:向备份文件提供数字扩展名 371

13.15 用set和shift处理位置参数 373

13.15.1 按名称杀死进程 374

13.15.2 shift:左移位置参数 374

13.15.3 IFS变量:set的默认分隔符 375

13.16 示例脚本3:已下载文件的目录 376

13.17 Here文档(<<) 378

13.18 shell函数 379

13.19 trap:脚本如何处理信号 380

13.20 eval:两次求值 381

13.21 exec语句 382

13.22 小结 382

13.23 自测题 383

13.24 习题 384

第14章 perl——高级操纵器 387

14.1 perl预备知识 388

14.2 变量和常数 389

14.3 运算符 391

14.3.1 比较与逻辑运算符 391

14.3.2 串联运算符和重复运算符(.和x) 392

14.4 标准条件句与循环 392

14.4.1 if条件句 393

14.4.2 while、do-while和for循环 393

14.5 从命令行参数读取文件 394

14.5.1 用单行代码读取文件 395

14.5.2 在脚本中读取文件 395

14.6 当前行号($.)和范围运算符(..) 396

14.7 $:默认变量 396

14.8 字符串处理函数 397

14.9 列表和数组 399

14.10 foreach:循环遍历一个列表 401

14.11 两个重要的列表函数 402

14.11.1 split:分割到列表或数组中 402

14.11.2 join:联接列表 404

14.12 dec2bin.pL:将十进制数变换为二进制 404

14.13 关联数组 405

14.14 使用正则表达式 407

14.14.1 识别空白、数位和单词 407

14.14.2 IRE的TRE功能 408

14.15 用s和tr函数替换 409

14.16 文件处理 411

14.17 文件测试 412

14.18 子例程 413

14.19 用perl进行CGI程序设计——概述 414

14.19.1 查询字符串 414

14.19.2 GET和POST:请求方法 415

14.20 小结 415

14.21 自测题 416

14.22 习题 417

第15章 C语言简介 421

15.1 C语言 422

15.2 first_prog.c:理解我们的第一个C程序 423

15.2.1 预处理器部分 424

15.2.2 主体 424

15.2.3 main:独一无二的函数 425

15.3 printf和scanf:两个重要函数 426

15.3.1 printf:打印到终端 426

15.3.2 scanf:由键盘输入 427

15.4 变量和常数 427

15.5 基本数据类型 428

15.5.1 整型 428

15.5.2 浮点类型 429

15.5.3 字符类型 430

15.6 sizeof.c:确定基本数据类型的大小 431

15.7 符号常量:有名称的常量 432

15.8 数组 432

15.9 arrays.c:打印数组元素 433

15.10 结构 434

15.11 运算符和表达式 435

15.11.1 位运算符 436

15.11.2 自动变换 436

15.11.3 隐式变换 437

15.12 type_conversion.c:演示类型变换 438

15.13 求值顺序 440

15.13.1 运算符优先级 440

15.13.2 运算符结合性 441

15.14 控制流回顾 441

15.14.1 用switch进行决策 442

15.14.2 用do-while重复 443

15.14.3 break和continue 443

15.15 函数 444

15.16 first func.c:两个参数和返回值 445

15.17 函数实参、形参和局部变量 446

15.17.1 按值传递 447

15.17.2 swap_failure.c:形参与局部变量的可见性 448

15.17.3 以数组为函数实参 449

15.17.4 以结构作为函数实参 450

15.18 指针 450

15.19 pointers.c:指针的基本功能 452

15.20 指针属性 453

15.20.1 指针运算 453

15.20.2 其他属性 454

15.21 指针和函数 455

15.21.1 解决交换问题 455

15.21.2 用指针返回多个值 456

15.22 指针和其他数据类型 456

15.22.1 指针和数组 456

15.22.2 指针和字符串 457

15.22.3 字符串数组 458

15.22.4 指针和结构 458

15.23 小结 459

15.24 自测题 460

15.25 习题 461

第16章 程序开发工具 463

16.1 处理拥有多个源文件的C应用程序 463

16.1.1 包含多个源文件的应用程序 464

16.1.2 编译和链接应用程序 466

16.1.3 为什么需要.o文件 467

16.2 make:使程序保持最新 468

16.2.1 删除冗余 470

16.2.2 make的其他功能:清理与备份 470

16.2.3 宏 471

16.3 ar:生成库(档案) 472

16.3.1 使用库 473

16.3.2 用make维护档案 474

16.4 静态库和共享库 474

16.5 用SCCS、RCS和CVS实现版本控制 475

16.6 SCCS会话 476

16.6.1 admin:创建一个SCCS文件 477

16.6.2 get:签出 477

16.6.3 delta:签入 478

16.6.4 unget:如果改变主意 480

16.7 活动与历史信息 481

16.7.1 sact:显示活动状态 481

16.7.2 prs:显示SCCS历史 481

16.8 继续以SCCS编辑 482

16.8.1 get-r:改变默认的编号顺序 482

16.8.2 处理多个版本 483

16.8.3 rmdel和comb:删除和合并版本 484

16.8.4 使用标识关键字 485

16.9 控制对SCCS的访问权限 486

16.9.1 控制用户访问 486

16.9.2 控制发布版本 486

16.10 版本控制系统(RCS) 487

16.10.1 用ci创建RCS文件 488

16.10.2 co和ci:签出和签入 488

16.10.3 指定修订 489

16.10.4 rlog和rcs:其他RCS功能 490

16.11 并发版本系统(CVS) 492

16.11.1 建立存储库 493

16.11.2 导入文件 493

16.11.3 签出 494

16.11.4 编辑和签入 494

16.11.5 合并和解决冲突 495

16.11.6 设置标记并导出存储库 496

16.11.7 其他功能 496

16.12 用gdb调试程序 497

16.12.1 启动gdb 500

16.12.2 使用断点 501

16.12.3 单步执行程序 502

16.12.4 再赋值 503

16.12.5 设定观察点 504

16.12.6 gdb的其他功能 505

16.13 小结 506

16.14 自测题 506

16.15 习题 507

第17章 系统程序设计Ⅰ——文件 509

17.1 系统调用的基础知识 510

17.1.1 系统调用剖析 510

17.1.2 系统调用与库函数的对比 510

17.2 errno和perror:处理错误 511

17.3 open:打开和创建文件 513

17.4 close:关闭文件 515

17.5 read:读取文件 516

17.6 write:写文件 516

17.7 ccp.c:复制文件 517

17.8 lseek:定位偏移指针 519

17.9 truncate和ftruncate:截短文件 521

17.10 umask:在创建期间修改文件权限 522

17.11 目录导航 523

17.12 读取目录 524

17.13 修改目录中的项目 526

17.13.1 mkdir和rmdir:创建和删除目录 526

17.13.2 link和symlink:创建硬链接和符号链接 526

17.13.3 unlink:删除链接 527

17.13.4 rename:对文件、目录或符号链接重命名 527

17.14 读取Inode:struct stat和stat 528

17.14.1 attributes.c:显示一些文件属性 529

17.14.2 S IFMT:处理st mode成员 530

17.14.3 用S ISxxx宏确定文件类型 530

17.14.4 访问权限位 531

17.14.5 lsdir.c:仅列出目录 531

17.15 access:检查实际用户的权限 533

17.16 修改文件属性 534

17.16.1 chmod和fchrnod:改变文件权限 535

17.16.2 chown:改变所有权 535

17.16.3 utime:改变时间戳记 536

17.16.4 atimemtime.c:创建一个具有相同时间戳记的文件 536

17.17 小结 537

17.18 自测题 538

17.19 习题 539

第18章 系统程序设计Ⅱ——进程控制 541

18.1 进程回顾 541

18.1.1 虚拟地址空间 542

18.1.2 进程表 543

18.2 进程环境 544

18.3 fork:复制当前进程 545

18.4 exec:进程创建的最终步骤 547

18.4.1 execl和execv:关键成员 548

18.4.2 其他exec成员 549

18.5 收集退出状态 550

18.5.1 wait:当父进程等待时 550

18.5.2 waitpid:一种功能更强大的等待机制 551

18.6 fork_exec_wait.c:使用全部三个调用 552

18.7 文件共享 553

18.7.1 文件说明符表 554

18.7.2 文件表 554

18.7.3 vnode表 555

18.7.4 当链接发生变化时 555

18.8 文件说明符处理 556

18.8.1 dup和dup2:复制文件说明符 556

18.8.2 redirection.c:最后讨论重定向 557

18.8.3 fcntl:对其推荐程度高于dup和dup2 559

18.9 信号处理 559

18.10 sigaction:安装信号处理器 561

18.10.1 signal.c:捕获SIGALRM信号 563

18.10.2 捕获终端生成的信号 564

18.11 killprocess.c:使用fork-exec-wait和SIGCHLD 565

18.12 用未命名管道实现进程间通信 567

18.12.1 和fork一起使用pipe 568

18.12.2 pipe2.c:在管道中运行UNIX命令 569

18.13 小结 570

18.14 自测题 571

18.15 习题 572

第Ⅲ部分 系统管理 577

第19章 系统管理 577

19.1 root:系统管理员的登录 578

19.2 管理员的特权 579

19.3 用户管理 580

19.3.1 理解/etc/group 580

19.3.2 理解/etc/passwd 581

19.3.3 添加和修改用户配置文件 582

19.4 维护安全 583

19.4.1 受限制的shell 583

19.4.2 Set-User-Id(SUID):临时能力 584

19.4.3 粘着位 585

19.5 启动与关机 585

19.5.1 启动 585

19.5.2 关机 586

19.6 init如何控制系统 587

19.6.1 init如何创建shell 588

19.6.2 rc脚本 589

19.7 设备文件 590

19.7.1 块设备和字符设备 590

19.7.2 主次设备号 591

19.8 文件系统 591

19.8.1 文件系统的组成部分 592

19.8.2 标准文件系统及其类型 592

19.9 加载和卸载文件系统 593

19.9.1 mount:加载文件系统 593

19.9.2 mount:卸载文件系统 594

19.10 fsck:文件系统检查 595

19.11 管理磁盘空间 596

19.11.1 df:报告空闲空间 596

19.11.2 du:磁盘利用率 596

19.11.3 find回顾:管理员的工具 597

19.12 处理软盘 597

19.12.1 format和fdformat:格式化磁盘 598

19.12.2 dd:复制磁盘 598

19.12.3 处理DOS磁盘 598

19.13 tar:备份文件 600

19.13.1 备份文件(-c) 600

19.13.2 恢复文件(-x) 601

19.13.3 显示档案(-t) 602

19.13.4 其他选项 602

19.14 用rpm安装程序 603

19.14.1 安装和升级包 603

19.14.2 删除包 604

19.14.3 查询包 604

19.15 小结 606

19.16 自测题 607

19.17 习题 607

附录A C shell——程序设计构造 609

附录B Kom和Bash shell——独有的程序设计构造 617

附录C GNU emacs编辑器 625

附录D vi/vim命令参考 653

附录E 正则表达式超集 661

附录F 常用操作指南 665

附录G ASCII字符集 671

附录H 术语表 677

附录I 自测题解答 695