《UNIX&LINUX大学教程》PDF下载

  • 购买积分:22 如何计算积分?
  • 作  者:(美)HarleyHahn编著;张杰良译
  • 出 版 社:北京:清华大学出版社
  • 出版年份:2010
  • ISBN:9787302209560
  • 页数:812 页
图书介绍:Unix是最古老最流行的操作系统,本书以Linux和其他常用Unix操作系统为例,全面介绍了输入输出,管道线,文件与目录系统,命令语法以及Shell的使用等方面的知识。

第1章 Unix简介 1

1.1 使用Unix的原因 2

1.2 Unix语言 3

1.3 Unix学习提示 3

1.4 不知道正在使用Unix的人 4

1.5 知道正在使用Unix的人 4

1.6 从本书获取最多的知识 5

1.7 本书所做的假定 5

1.8 本书未做的假定 6

1.9 本书使用方法 6

1.10 练习 7

第2章 什么是Linux?什么是Unix 8

2.1 什么是操作系统 8

2.2 什么是内核 9

2.3 Unix=内核+实用工具 11

2.4 “Unix”曾经是一个专用名称 11

2.5 “Unix”现在是一个通用名称 12

2.6 自由软件基金会 12

2.7 GNU宣言摘录 14

2.8 GPL和开放源代码软件 16

2.9 20世纪70年代的Unix:由贝尔实验室转向Berkeley 17

2.10 20世纪80年代的Unix:BSD和System Ⅴ 18

2.11 1991年的Unix:等待中 20

2.12 真命天子:Linus Torvalds 22

2.13 Linux发行版 24

2.14 BSD发行版 25

2.15 您应该使用什么类型的Unix 26

2.16 获取Linux或者FreeBSD的方式 28

2.17 什么是Unix?什么是Linux 31

2.18 练习 31

第3章 Unix连接 33

3.1 人、机器和外星人 33

3.2 价格昂贵的早期计算机 34

3.3 主机和终端 36

3.4 终端室和终端服务器 38

3.5 控制台 40

3.6 Unix连接 40

3.7 没有控制台的主机 42

3.8 客户端/服务器关系 43

3.9 按下键时发生的事情 44

3.10 字符终端和图形终端 46

3.11 最常见类型的终端 47

3.12 练习 48

第4章 开始使用Unix 49

4.1 系统管理员 49

4.2 用户标识和口令 50

4.3 登录(开始使用Unix) 51

4.4 登录之后发生的事情 53

4.5 着手工作:shell提示 54

4.6 注销(停止使用Unix):logout、exit、login 55

4.7 大写字母和小写字母 57

4.8 Unix会话样本 57

4.9 改变口令:passwd 59

4.10 口令选择 60

4.11 检查他人是否使用过您的Unix账户:last 61

4.12 用户标识和用户 62

4.13 超级用户的用户标识:root 62

4.14 安全计算实践中体验快乐 63

4.15 练习 64

第5章 GUI:图形用户界面 65

5.1 什么是GUI 65

5.2 X Window 66

5.3 谁负责X Window 68

5.4 抽象层次 69

5.5 窗口管理器 70

5.6 桌面环境 71

5.7 抽象层次:继续 72

5.8 Unix公司如何发展图形界面 72

5.9 KDE和Gnome 73

5.10 CDE和总拥有成本 75

5.11 桌面环境的选择 77

5.12 祖母机器 79

5.13 练习 81

第6章 Unix工作环境 82

6.1 同时做不止一件事情:Ⅰ 82

6.2 GUI和CLI 85

6.3 使用GUI登录和注销 85

6.4 运行级别 86

6.5 Microsoft Windows的运行级别 88

6.6 学习使用GUI 89

6.7 鼠标和菜单 90

6.8 调整大小、最小化、最大化及关闭窗口 92

6.9 控制焦点:任务切换 94

6.10 多桌面/工作空间 95

6.11 终端窗口 96

6.12 虚拟控制台 99

6.13 唯一的控制台 101

6.14 选择与插入 102

6.15 复制与粘贴 103

6.16 以超级用户工作:su 104

6.17 以超级用户执行一条单独的命令:sudo 106

6.18 配置文件 108

6.19 浏览配置文件 109

6.20 系统关闭与重新启动:init、reboot、shutdown 110

6.21 系统启动或者停止时发生什么事情?dmesg 111

6.22 同时做不止一件事情:Ⅱ 111

6.23 练习 113

第7章 Unix键盘使用 114

7.1 最初的Unix终端 114

7.2 Teletype和Unix文化 116

7.3 Termcap、Terminfo与curses 117

7.4 Unix如何知道所使用终端的类型 120

7.5 修饰键:〈Ctrl〉键 121

7.6 Unix键盘信号 122

7.7 键入过程中使用的信号:erase、werase、kill 122

7.8 〈Backspace〉和〈Delete〉 124

7.9 神秘字符^H 126

7.10 停止程序:intr 127

7.11 另一种停止程序的方法:quit 128

7.12 暂停显示:stop、start 129

7.13 文件结束信号:eof 130

7.14 shell和eof信号 130

7.15 Bash:封闭eof信号 131

7.16 Kom Shell:封闭eof信号 132

7.17 C-Shell:封闭eof信号 132

7.18 显示键映射:stty-a 133

7.19 修改键映射:stty 134

7.20 命令行编辑 135

7.21 返回和换行 137

7.22 新行字符的重要性 137

7.23 ^J的一个重要用途:stty sane、reset 139

7.24 程序员和公主的神话 140

7.25 练习 140

第8章 能够立即使用的程序 142

8.1 在系统中查找程序:which、type、whence 142

8.2 如何停止程序 144

8.3 显示时间和日期:date 145

8.4 显示日历:cal 146

8.5 Unix提醒服务:calendar 148

8.6 查看系统信息:uptime、hostname、uname 149

8.7 显示自己的信息:whoami、quota 150

8.8 显示其他用户的信息:users、who、w 150

8.9 终端临时上锁:lock 152

8.10 请求Unix提醒何时离开:leave 154

8.11 内置计算器:bc 155

8.12 使用bc进行计算 156

8.13 在bc中使用变量 158

8.14 在bc中使用不同的基 160

8.15 逆波兰表示法 161

8.16 基于栈的计算器:dc 164

8.17 练习 167

第9章 文档资料:Unix手册与Info 168

9.1 Unix传统与自学 168

9.2 RTFM 169

9.3 什么是Unix手册?man 171

9.4 说明书页 172

9.5 显示说明书页 172

9.6 两个有用的说明书页技术 175

9.7 man的备选方案:xman和Web 177

9.8 Unix手册的组织方式 179

9.9 在man命令中指定节号 180

9.10 说明书页的引用方式 181

9.11 说明书页的格式 182

9.12 一种快速查寻命令作用的方法:whatis 186

9.13 搜索命令:apropos 187

9.14 foo、bar和foobar 188

9.15 Info系统 189

9.16 Info和树 191

9.17 启动Info:info 193

9.18 学习Info 193

9.19 阅读Info文件 194

9.20 从一个节点跳转到另一个节点 196

9.21 练习 198

第10章 命令语法 199

10.1 一次输入多条命令 199

10.2 输入命令时会发生什么事情 200

10.3 命令语法 201

10.4 选项 202

10.5 -选项和--选项 203

10.6 参数 204

10.7 空白符 205

10.8 一个或多个;零个或多个 206

10.9 命令的形式描述:语法 207

10.10 使用Unix手册学习命令语法 209

10.11 如何学习众多的选项 210

10.12 练习 211

第11章 shell 212

11.1 什么是shell 212

11.2 Bourne Shell家族:sh、ksh、bash 213

11.3 C-Shell家族:csh、tcsh 217

11.4 应该使用哪种shell 219

11.5 临时改变shell 222

11.6 口令文件,改变登录shell:chsh 223

11.7 练习 225

第12章 使用shell:变量和选项 226

12.1 交互式shell和非交互式shell 227

12.2 环境、进程和变量 228

12.3 环境变量和shell变量 229

12.4 显示环境变量:env、printenv 232

12.5 显示shell变量:set 234

12.6 显示及使用变量的值:echo、print 236

12.7 Bourne shell家族使用变量:export、unset 238

12.8 C-Shell家族使用变量:setenv、unsetenv、set、unset 239

12.9 shell选项:set-o、set+o 241

12.10 显示shell选项 243

12.11 机器可读、人类可读 244

12.12 练习 245

第13章 使用shell:命令和定制 246

13.1 元字符 246

13.2 引用和转义 249

13.3 强引用和弱引用 251

13.4 shell内置命令:type 252

13.5 学习内部命令 254

13.6 外部命令及搜索路径 255

13.7 修改搜索路径 256

13.8 黑客如何使用搜索路径 258

13.9 shell提示 259

13.10 修改shell提示 260

13.11 使用变量的值 261

13.12 引用变量时使用哪类引号 263

13.13 使用转义字符的特殊码 263

13.14 命令替换 265

13.15 键入命令并进行修改 267

13.16 历史列表:fc、history 268

13.17 历史列表:设置大小 271

13.18 历史列表示例:避免删错文件 272

13.19 在shell提示中显示事件编号&工作目录 273

13.20 自动补全 274

13.21 自动补全:高级应用 277

13.22 为好玩和赌注使用自动补全 279

13.23 命令行编辑:bindkey 280

13.24 别名:alias、unalias 281

13.25 临时挂起别名 283

13.26 别名示例:避免删错文件 284

13.27 别名示例:从历史列表中重用命令 285

13.28 别名示例:在shell提示中显示工作目录名称 287

13.29 练习 289

第14章 使用shell:初始化文件 291

14.1 初始化文件和注销文件 291

14.2 初始化文件和注销文件的名称 292

14.3 点文件和rc文件 293

14.4 使用简单的文本编辑器 295

14.5 登录shell和非登录shell 296

14.6 何时执行初始化文件 296

14.7 shell初始化文件的历史简介 297

14.8 初始化文件中放置什么内容 298

14.9 显示、创建及编辑初始化文件 299

14.10 shell脚本注释 300

14.11 Bourne shell家族:初始化文件示例 301

14.12 C-Shell家族:初始化文件示例 303

14.13 练习 306

第15章 标准I/O:重定向和管道 307

15.1 Unix设计准则 307

15.2 Unix新设计准则 308

15.3 标准输入、标准输出和标准错误 310

15.4 重定向标准输出 311

15.5 防止文件被重定向替换或创建 312

15.6 重定向标准输入 314

15.7 文件描述符、Bourne shell家族重定向标准错误 315

15.8 子shell 317

15.9 在C-Shell家族中重定向标准错误 319

15.10 组合标准输出和标准错误 320

15.11 抛弃输出 321

15.12 重定向:小结和体验 322

15.13 管道线 326

15.14 管道线分流:tee 328

15.15 管道线的重要性 329

15.16 条件执行 330

15.17 练习 331

第16章 过滤器:简介和基本操作 333

16.1 命令和选项变体 333

16.2 过滤器 334

16.3 是否应该创建自己的过滤器 335

16.4 问题解决过程 335

16.5 可能最简单的过滤器:cat 337

16.6 增强过滤器的功能 339

16.7 最有用的过滤器列表 341

16.8 组合文件:cat 343

16.9 划分文件:split 345

16.10 组合文件时反转文本行的顺序:tac 347

16.11 反转字符的顺序:rev 348

16.12 从数据开头或末尾选择数据行:head、tail 349

16.13 删除数据列:colrm 351

16.14 练习 352

第17章 过滤器:比较和抽取 353

17.1 比较文件 353

17.2 比较任意两个文件:cmp 354

17.3 比较有序文本文件:comm 355

17.4 比较无序文本文件:diff 357

17.5 diff使用的选项 361

17.6 比较文件时的输出格式:diff、sdiff 362

17.7 差分和补丁 365

17.8 抽取数据列:cut 367

17.9 记录、字段和定界符;抽取数据字段:cut 369

17.10 组合数据列:paste 371

17.11 练习 374

第18章 过滤器:统计和格式化 376

18.1 创建行号:nl 376

18.2 统计行、单词和字符数量:wc 378

18.3 Unix使用制表符的方式 381

18.4 可视化制表符和空格 383

18.5 将制表符转换成空格:expand 384

18.6 将空格转换成制表符:unexpand 386

18.7 格式化行:fold 387

18.8 80字符行 390

18.9 格式化段落:fmt 391

18.10 打印的旧时代 393

18.11 按页格式化文本:pr 394

18.12 按列格式化文本:pr 397

18.13 练习 398

第19章 过滤器:选取、排序、组合及变换 400

19.1 选取包含特定模式的行:grep 400

19.2 最重要的grep选项 403

19.3 grep的变体:fgrep、egrep 407

19.4 选取以特定模式开头的行:look 408

19.5 使用look和grep的时机 409

19.6 查找以特定模式开头的所有单词:look 410

19.7 排序数据:sort 412

19.8 控制数据排序的顺序:sort-dfn 413

19.9 检查数据是否有序:sort-c 415

19.10 ASCII码;排序序列 416

19.11 区域设置和排序序列 419

19.12 查找重复行:uniq 423

19.13 合并两个文件中的有序数据:join 425

19.14 由偏序创建全序:tsort 429

19.15 在二进制文件中搜索字符串:strings 431

19.16 转换字符:tr 433

19.17 转换不可显示字符 436

19.18 转换字符:高级话题 437

19.19 非交互式文本编辑:sed 439

19.20 使用sed进行替换 441

19.21 告诉sed只对指定行进行操作 443

19.22 使用非常长的sed命令 444

19.23 练习 445

第20章 正则表达式 447

20.1 正则表达式简介 447

20.2 正则表达式的起源 449

20.3 基本和扩展正则表达式 450

20.4 匹配行和单词 452

20.5 匹配字符;字符类 455

20.6 预定义字符类;范围 455

20.7 区域设置和排序序列:locale;ASCII码 456

20.8 使用范围和预定义字符类 459

20.9 重复运算符 460

20.10 理解复杂正则表达式的方式 463

20.11 解决3个有趣的难题;字典文件 463

20.12 练习 466

第21章 显示文件 468

21.1 文件显示程序综述 469

21.2 less简介:启动、停止、帮助 471

21.3 less和more的故事 473

21.4 使用less 474

21.5 使用less在文件中搜索 475

21.6 原始模式和成熟模式 477

21.7 less使用的选项 478

21.8 使用less和cat的时机 480

21.9 使用环境变量定制分页程序 481

21.10 使用less显示多个文件 482

21.11 使用more显示文件 485

21.12 显示文件的开头:head 487

21.13 显示文件的末尾:tail 487

21.14 观察不断增长的文件的末尾:tail-f 488

21.15 二进制、八进制和十六进制 490

21.16 二进制、八进制和十六进制的读取和写入 495

21.17 选择使用十六进制而不是八进制的原因 496

21.18 显示二进制文件:hexdump、od 498

21.19 众多计算机术语来自数学的原因 502

21.20 练习 502

第22章 vi文本编辑器 505

22.1 vi重要的原因 505

22.2 vi历史简介 506

22.3 Vim:vi的备用编辑器 509

22.4 启动vi 510

22.5 启动Vim:vim 511

22.6 命令模式和输入模式 513

22.7 了解所处模式的方式 515

22.8 以只读方式启动vi:view、vi-R 515

22.9 系统失败后数据的恢复 516

22.1 0停止vi 517

22.11 vi使用屏幕的方式 518

22.12 使用vi和ex命令 519

22.13 学习vi命令的策略 520

22.14 创建一个练习文件 521

22.15 移动光标 521

22.16 在编辑缓冲区中移动 525

22.17 跳转到前一位置 526

22.18 搜索模式 528

22.19 使用行号 530

22.20 插入文本 531

22.21 修改文本 533

22.22 替换文本 536

22.23 删除文本 538

22.24 撤销或重复改变 541

22.25 恢复删除 542

22.26 移动文本 543

22.27 复制文本 545

22.28 改变字母的大小写 546

22.29 设置选项 547

22.30 显示选项 549

22.31 在键入过程中自动换行 550

22.32 分隔与连接行 550

22.33 复制与移动行 551

22.34 输入shell命令 552

22.35 将文件中的数据插入到编辑缓冲区中 553

22.36 将shell命令的输出插入到编辑缓冲区中 554

22.37 使用程序处理数据:fmt 555

22.38 将数据写入文件 557

22.39 切换到一个新文件 558

22.40 使用缩写 559

22.41 宏 560

22.42 初始化文件:exrc、.vimrc 562

22.43 使用两个初始化文件 564

22.44 学习使用Vim 565

22.45 事实背后的故事 566

22.46 练习 567

第23章 Unix文件系统 569

23.1 什么是文件 569

23.2 文件类型 570

23.3 目录和子目录 571

23.4 特殊文件 572

23.5 硬件特殊文件 573

23.6 终端特殊文件:tty 574

23.7 伪设备特殊文件 575

23.8 命名管道:mkfifo 576

23.9 proc文件 578

23.10 树型结构文件系统;文件系统层次结构标准 580

23.11 根目录;子目录 582

23.12 挂载文件系统:mount、umount 582

23.13 漫游根目录 584

23.14 漫游/usr目录 587

23.15 使用多个目录存放程序的原因 589

23.16 home目录 590

23.17 虚拟文件系统 592

23.18 练习 594

第24章 目录操作 596

24.1 路径名与工作目录 596

24.2 绝对路径名与相对路径名 597

24.3 3种便利的路径名缩写:.. .~ 599

24.4 在目录树中移动:cd、pwd 602

24.5 创建新目录:rnkdir 605

24.6 移除目录:rmdir 608

24.7 移动或重命名目录:mv 610

24.8 使用目录栈:pushd、popd、dirs 611

24.9 最重要的程序:ls 617

24.10 列举目录内容:ls-CrRl 618

24.11 排序序列、区域设置和ls 621

24.12 检查文件类型:ls-F 622

24.13 检查文件类型:ls--color 622

24.14 检查文件类型:file 624

24.15 掌握磁盘空间使用情况:ls-hs、du、df、quota 626

24.16 文件有多大?块和分配单元:dumpe2fs 629

24.17 使用通配符进行通配 631

24.18 点文件(隐藏文件):ls-a 635

24.19 长目录列表:ls-dhltu 637

24.20 ls使用过程中的有用别名 640

24.21 显示目录树:tree 641

24.22 文件管理器 643

24.23 练习 645

第25章 文件操作 647

25.1 创建文件:touch 647

25.2 命名文件 649

25.3 复制文件:cp 652

25.4 将文件复制到不同的目录中:cp 653

25.5 将目录复制到另一个目录中:cp-r 654

25.6 移动文件:mv 654

25.7 重命名文件或目录:mv 655

25.8 删除文件:rm 656

25.9 如何防止误删文件:rm-if 657

25.10 删除整个目录树:rm-r 659

25.11 被删除文件恢复的可能性 660

25.12 文件权限 660

25.13 setuid 662

25.14 Unix维护文件权限的方式:id、groups 663

25.15 显示文件权限:ls-l 665

25.16 文件模式 666

25.17 改变文件权限 667

25.18 Unix为新文件指定权限的方式:umask 668

25.19 清空文件内容:shred 669

25.20 链接的概念:stat、ls-i 670

25.21 多重链接 671

25.22 创建新链接:ln 672

25.23 基本文件命令的工作方式 673

25.24 符号链接:ln-s 674

25.25 目录使用符号链接 675

25.26 查找与Unix命令相关的文件:whereis 676

25.27 通过搜索数据库查看文件:locate 678

25.28 通过搜索目录树查找文件:find 679

25.29 find命令:路径 681

25.30 find命令:测试 681

25.31 find命令:使用!运算符对测试求反 685

25.32 find命令:处理文件权限错误消息 685

25.33 find命令:动作 686

25.34 处理查找到的文件:xargs 689

25.35 练习 692

第26章 进程和作业控制 695

26.1 内核管理进程的方式 695

26.2 进程分叉到死亡 696

26.3 孤儿进程和废弃进程 698

26.4 区分父进程和子进程 699

26.5 第一个进程:init 699

26.6 前台进程和后台进程 700

26.7 创建延迟:sleep 701

26.8 作业控制 703

26.9 在后台运行作业 705

26.10 挂起作业:fg 706

26.11 挂起shell:suspend 708

26.12 作业控制与多窗口 709

26.13 显示作业列表:jobs 710

26.14 将作业移至前台:fg 711

26.15 将作业移至后台:bg 713

26.16 学习使用ps程序 714

26.17 ps程序:基本技能 715

26.18 ps程序:选择选项 720

26.19 ps程序:状态 722

26.20 监视系统进程:top、prstat 724

26.21 显示进程树:pstree、ptree 727

26.22 思考Unix如何组织进程和文件:fuser 729

26.23 杀死进程:kill 731

26.24 向进程发送信号:kill 733

26.25 设置进程的优先级:nice 734

26.26 改变现有进程的优先级:renice 736

26.27 守护进程 737

26.28 结束语 739

26.19 练习 740

附录A Unix命令一览表 742

附录B Unix命令分类表 747

附录C vi命令小结 753

附录D ASCII码 760

附录E 忘记root口令的处理方法 765

附录F 时区与24小时制时间 767

附录G shell选项和shell变量 771

术语表 776