《Linux教程》PDF下载

  • 购买积分:17 如何计算积分?
  • 作  者:(美)Syed Mansoor Sarwar,(美)Robert Koretsky,(美)Syed Aqeel Sarwar著;李善平,施韦,林欣译
  • 出 版 社:北京:清华大学出版社
  • 出版年份:2005
  • ISBN:7302107688
  • 页数:582 页
图书介绍:这是一本真正的Linux入门教科书。全书内容为Linux初学者定制,全面、系统地介绍Linux和环境。还带有数百个精心设计的实战操作练习和章末习题,帮助读者高频度地复习命令、原语和概念。各章节内容主要包括Linux历史,Linux的shell命令和shell编程,编辑工具,电子邮件,文件操作,重定向和管道,进程,网络互连,Linux软件开发,Linux图形用户界面等。本书适合作为高等院校计算机及相关专业的教材和教学参考书,亦可作为系统编程人员的自学教材和参考手册。

第1章 操作系统综述 1

1.1 引言 1

1.2 操作系统是什么 1

目录 1

1.3 操作系统提供的服务 2

1.4 文字与图形用户接口 2

1.5 操作系统的类型 3

1.6 Linux家族 4

小结 4

习题 5

第2章 Linux历史 6

2.1 引言 6

2.3 Linus Torvalds 7

2.2 放源码 7

2.4 Linux发行版 8

2.5 内核的历史 8

2.6 Linux的流行 9

2.7 未来的发展 9

2.8 Web资源 9

小结 9

习题 9

第3章 开始行动 11

3.1 引言 11

3.2 计算机系统硬件 11

3.2.2 中央处理器(CPU) 12

3.2.1 内存/主存 12

3.2.4 总线 13

3.2.5 输入/输出设备 13

3.2.3 磁盘 13

3.3 Linux软件体系结构 14

3.3.1 设备驱动程序层 14

3.3.2 Linux内核 14

3.3.3 系统调用接口 15

3.3.4 语言函数库 16

3.3.5 Linux shell 16

3.3.6 应用程序 16

3.4 登录和退出 16

3.6 重要的一些系统设置 19

3.5 改正命令行输入错误 19

3.7 对初学者有用的几个命令 20

3.7.1 修改密码 21

3.7.2 获取帮助 21

3.7.3 找出用户及其Linux系统的名字 23

小结 24

习题 25

第4章 Linux shell 26

4.1 引言 26

4.2 各种各样的Linux shell 27

4.2.1 各种shell程序 27

4.2.2 哪种shell能满足需要 28

4.2.3 更改shell的各种方法 29

4.2.4 shell的启动文件和环境变量 31

4.3 一些有用的多用途命令 32

4.3.1 创建和显示目录 32

4.3.2 显示文件 34

4.3.3 打印文件 34

4.3.4 显示日历 34

4.3.5 单向实时消息 34

4.3.6 电子通信的通知和允许 35

4.3.7 为命令创建假名 35

4.3.8 显示系统运行时间 37

4.4 shell元字符 37

小结 38

习题 39

第5章 编辑文本文件 40

5.1 引言 40

5.2 如何使用pico编辑器进行简短编辑 41

5.2.1 使用pico文本编辑器创建一封E-mail 41

5.2.2 如何新建、保存一个文件并退出 41

5.2.3 常用的按键命令和光标移动命令 43

5.2.4 剪切、粘贴和查找 44

5.3 使用vi编辑器获取更多控制 45

5.3.1 shell脚本文件 45

5.3.2 如何开始编辑文件,保存文件并退出 46

5.3.3 vi命令的格式和操作模式 47

5.3.4 光标移动和编辑命令 49

5.3.5 yank、put命令(复制和粘贴)和substitute命令(搜索和替换) 50

5.3.6 设置vi环境 52

5.3.7 从vi中执行shell命令 52

5.4 使用emacs编辑器获取最大控制 53

5.4.1 DOS别名 53

5.4.2 如何开始编辑文件,保存文件并退出 53

5.4.3 光标移动和编辑命令 54

5.4.4 键盘宏命令 56

5.4.5 剪切或复制、粘贴、查找和替换 57

5.5 如何使用XEmacs进行图形化编辑 59

5.5.1 用XEmacs编辑数据文件 59

5.5.2 XEmacs菜单和按钮 60

5.5.3 如何开始编辑文件,保存文件并退出 61

5.6 命令行编辑 62

小结 65

习题 65

第6章 电子邮件 67

6.1 引言 67

6.2 如何高效使用Linux中的mail命令 69

6.2.1 用mail命令发送和读取电子邮件 69

6.2.2 用mail命令发送电子邮件 70

6.2.3 用mail命令阅读电子邮件 72

6.2.4 将邮件存储到文件夹中 73

6.2.5 回复、转发邮件并添加附件 73

6.2.6 邮件别名 74

6.3.2 用elm发送电子邮件 75

6.3 elm——全屏显示电子邮件系统 75

6.3.1 在elm中发送一封邮件 75

6.3.3 用elm程序阅读电子邮件 77

6.3.4 在elm中转发和回复邮件 79

6.3.5 把邮件保存到文件夹中 80

6.3.6 elm别名 80

6.4 pine——另一个全屏电子邮件系统 82

6.4.1 用pine发送邮件连同在vi中创建的附件 82

6.4.2 用pine程序发送电子邮件 82

6.4.3 用pine程序阅读电子邮件 84

6.4.4 在pine中处理目录里的电子邮件 85

6.4.5 使用pine的地址簿 86

6.4.6 pine命令总结 88

6.5 图形化电子邮件系统——Kmail 90

6.5.1 开始使用Kmail 90

6.5.2 在Kmail中读电子邮件 92

6.5.3 在Kmail程序发送邮件 93

6.5.4 将邮件简单过滤到目录中 95

小结 96

习题 96

第7章 文件和文件系统结构 99

7.1 引言 99

7.2 Linux文件概念 99

7.3 文件类型 99

7.3.2 目录 100

7.3.1 简单/普通文件 100

7.3.3 连接文件 101

7.3.4 特殊文件(设备) 101

7.3.5 命名管道(FIFO) 101

7.4 文件系统结构 102

7.4.1 文件系统的组织 102

7.4.2 主目录和当前工作目录 102

7.4.3 绝对路径和相对路径 103

7.4.4 一些标准目录和文件 103

7.5 文件结构导航 107

7.5.1 确定主目录的绝对路径 108

7.5.2 浏览文件系统 108

7.5.4 创建和删除目录 111

7.5.3 创建文件 111

7.5.5 使用目录堆栈 112

7.5.6 确定文件属性 115

7.5.7 确定文件内容的类型 117

7.6 Linux中的文件表示和存储 118

7.7 标准文件和文件描述符 120

7.8 文件末尾(eof)标记 121

小结 122

习题 122

第8章 文件安全 124

8.1 引言 124

8.2 基于密码的保护 124

8.4.1 用户分类 125

8.4 基于访问权限的文件保护 125

8.3 基于文件加密的保护 125

8.4.2 文件操作/访问权限的分类 126

8.5 读取和更改文件的访问特权 127

8.5.1 读取文件的访问特权 127

8.5.2 改变文件访问特权 128

8.5.3 默认的文件访问特权 131

8.6 特殊访问位 132

8.6.1 set-user-ID(SUID)位 132

8.6.2 set-group-ID(SGID)位 134

8.6.3 sticky位 134

8.7 文件访问权限和类型 135

习题 136

小结 136

第9章 基本文件处理 138

9.1 引言 138

9.2 查看文本文件的内容 138

9.2.1 查看完整的文件 138

9.2.2 每次一页地查看文件 140

9.2.3 查看文件的头或尾 142

9.2.4 显示NIS数据库 145

9.3 文件的复制、转移和删除 145

9.3.1 文件的复制 145

9.3.2 文件的转移 147

9.3.3 文件的删除 148

9.3.4 文件大小的确定 149

9.4 文件的追加 151

9.5 文件的合并 152

9.6 文件的比较 153

9.7 删除重复行 157

9.8 文件的打印与打印任务的控制 158

9.8.1 Linux的文件打印机制 158

9.8.2 文件的打印 159

9.8.3 显示打印请求的状态 159

9.8.4 打印任务的取消 160

小结 160

习题 161

10.2 正则表达式 163

10.1 引言 163

第10章 高级文件处理 163

10.3 文件压缩 165

10.3.1 gzip命令 165

10.3.2 gunzip命令 166

10.3.3 gzexe命令 167

10.3.4 zcat命令 167

10.3.5 重命名文件 168

10.4 文件排序 168

10.5 搜索命令和文件 171

10.5.1 find命令 171

10.5.2 whereis命令 172

10.5.3 which命令 172

10.6 搜索文件内容 173

10.7 cutting和pasting 176

10.8 编码和解码 179

10.9 历史命令列表 180

小结 185

习题 186

第11章 文件共享 188

11.1 引言 188

11.2 通过副本共享 188

11.3 通过同一用户名登录共享 188

11.6.1 硬链接 189

11.6 通过文件链接共享 189

11.5 为团队成员建立一个用户组 189

11.4 为共享文件设立适当的访问权限 189

11.6.2 硬链接的缺点 195

11.6.3 软链接/符号链接 196

11.6.4 符号链接的类型 199

11.6.5 符号链接的优缺点 199

11.7 查找符号链接 200

小结 201

习题 202

第12章 重定向和管道 203

12.1 引言 203

12.2 标准文件 203

12.3 输入重定向 204

12.4 输出重定向 205

12.5 输出重定向和输入重定向的合并 206

12.6 带文件描述符的I/O重定向操作 207

12.7 标准出错的重定向 207

12.8 用一条命令实现标准输出和标准出错的重定向 208

12.9 用一条命令重定向标准输入、标准输出和标准出错 211

12.10 不覆盖文件内容的重定向(追加) 212

12.11 Linux管道 213

12.12 结合管道使用重定向 216

12.13 在TC shell中的出错重定向 218

12.14 I/O及错误重定向总结 220

小结 221

习题 222

13.2 同一时刻执行的进程 224

第13章 进程 224

13.1 引言 224

13.3 Linux进程的状态 225

13.4 shell命令的执行 226

13.5 进程属性 229

13.6 进程和作业控制 236

13.6.1 前后台进程以及相关命令 236

13.6.2 Linux守护进程 241

13.6.3 命令的顺序和并行执行 241

13.6.4 命令和进程的异常终止 244

13.6.5 命令的有条件执行 247

13.7 Linux进程的层次关系 248

小结 251

习题 252

第14章 连网与网络互联 253

14.1 引言 253

14.2 计算机网络和计算机互联网 253

14.3 计算机网络和网络互联的动机 254

14.4 网络模型 255

14.5 TCP/IP协议 256

14.5.1 TCP和UDP协议 256

14.5.2 数据的路由——IP协议(The Internet Protocol) 257

14.5.3 点分10进制的IPv4地址 258

14.5.4符号名 259

14.5.5 将名字翻译到IP地址——域名系统 261

14.6 互联网服务和协议 262

14.7 client-server软件模型 262

14.8 应用软件 264

14.8.1 显示主机名 264

14.8.2 显示当前网络中所有登录用户的用户列表 264

14.8.3 显示网络中所有主机状态 266

14.8.4 测试网络连接 266

14.8.5 显示用户信息 267

14.8.6 远程登录 270

14.8.7 远程命令执行 275

14.8.8 文件传输 276

14.8.9 远程复制 279

14.8.10 交互式聊天 280

14.8.11 追踪从一个站点到另一个站点的路由 281

小结 282

习题 282

第15章 Bash编程 284

15.1 引言 284

15.2 运行一个Bash脚本 284

15.3 shell变量和相关的命令 285

15.3.1 控制shell提示符 289

15.3.2 变量声明 290

15.3.3 读写shell变量 292

15.3.4 命令替换 294

15.3.5 输出环境变量 295

15.3.6 重设变量 296

15.3.7 创建只读的用户定义的变量 297

15.3.8 从标准输入设备读入 298

15.4 给shell脚本传递参数 299

15.5 注释和程序头 302

15.6 程序流程控制命令 303

15.6.1 if-then-elif-else-fi语句 303

15.6.2 for语句 310

15.6.3 while语句 311

15.6.4 until语句 313

15.6.5 break和continue命令 315

15.6.6 case语句 315

小结 318

习题 319

第16章 高级Bash编程 321

16.1 引言 321

16.2 数值数据处理 321

16.3 数组处理 327

16.4 here文件 331

16.5 中断(信号)处理 333

16.6 exec命令和文件输入/输出 336

16.6.1 不创建新的进程执行命令 336

16.6.2 通过exec命令的文件输入/输出 337

16.7.3 函数调用 343

16.7.2 函数定义 343

16.7.1 需要函数的原因 343

16.7 Bash中的函数 343

16.7.4 函数的例子 344

16.8 调试shell程序 345

小结 347

习题 347

第17章 TC shell编程介绍 348

17.1 引言 348

17.2 运行一个TC shell脚本 348

17.3 shell变量和相关命令 349

17.3.1 读、写shell变量 352

17.3.2 命令替换 353

17.3.3 输出环境 354

17.3.4 重置变量 355

17.3.5 创建用户自定义只读变量 356

17.3.6 从标准输入中读 357

17.4 向shell脚本传递参数 358

17.5 注释与程序头 360

17.6 流程控制命令 361

17.6.1 if-then-else-endif语句 361

17.6.2 foreach语句 367

17.6.3 while语句 369

17.6.4 break、continue和goto语句 370

17.6.5 switch语句 371

小结 374

习题 374

18.2 数值型数据的处理 376

第18章 高级TC shell编程 376

18.1 引言 376

18.3 数组操作 377

18.4 here document 382

18.5 中断(信号)处理 383

18.6 调试shell程序 386

小结 387

习题 388

第19章 文件系统备份 389

19.1 引言 389

19.2 用tar命令存档和恢复文件 389

19.2.1 档案文件 390

19.2.2 恢复档案文件 393

19.2.3 复制目录层 396

19.3 以tar格式发行软件 397

小结 398

习题 398

第20章 Linux软件开发工具 399

20.1 引言 399

20.2 计算机编程语言 399

20.3 编译过程 401

20.4 软件工程的生命周期 401

20.5 程序生成工具 402

20.5.1 生成C语言源代码 402

20.5.2 缩进C语言代码 402

20.5.3 C程序的编译 405

20.5.4 处理模块化的C程序 407

20.5.5 创建、修改和释放库/归档文件 415

20.5.6 版本控制 420

20.6 静态分析工具 442

剖析C源程序 442

20.7 动态分析工具 446

20.7.1 代码调试 446

20.7.2 运行效率分析 455

小结 456

习题 457

第21章 XFree86和Linux图形用户界面 459

21.1 引言 459

21.2.1 比较与优势 460

21.2 XFree86基础 460

21.2.2 交互的关键组件——事件和请求 461

21.2.3 窗口管理器在用户界面中的角色——FVWM 462

21.2.4 定制XFree86和FVWM 466

21.3 GNOME桌面管理器 471

21.3.1 GNOME桌面的登录、注销及外观显示 471

21.3.2 GNOME面板 472

21.3.3 自定义面板 473

21.3.4 使用GnoRPM安装新软件包 476

21.3.5 Sawfish窗口管理器 479

21.3.6 GNOME Control Center(GNOME控制中心) 482

21.3.7 使用GNOME文件管理器进行文件管理 483

21.4.1 登录和注销 484

21.4 KDE桌面管理器 484

21.4.2 KDE面板 485

21.4.3 新软件包的安装 488

21.4.4 K窗口管理器 490

21.4.5 KDE控制中心 492

21.4.6 使用KFM进行文件管理 493

21.5 Internet资源 495

小结 495

习题 496

附录A Linux的安装 498

附录B 命令字典 507

术语表 567