《Linux编程指南与实例》PDF下载

  • 购买积分:14 如何计算积分?
  • 作  者:徐延明等编著
  • 出 版 社:北京:人民邮电出版社
  • 出版年份:2000
  • ISBN:7115087245
  • 页数:427 页
图书介绍:

1.1 什么是Linux 1

第一章 Linux的历史和功能简介 1

1.2 Linux的历史 2

1.3 Linux的特点 3

1.4 Linux与自由软件及GNU的关系 4

1.5 Linux的用途 6

1.5.1 个人UNIX工作站 6

1.5.2 X终端客户 6

1.5.3 X应用服务器 6

1.5.4 UNIX开发平台 6

1.5.7 终端服务器、传真服务器、Modem服务器 7

1.6 Linux的发行版本 7

1.5.6 Internet服务器 7

1.5.5 网络服务器 7

1.7 Linux的不足之处 8

第二章 Linux程序开发工具简介 10

2.1 C语言的编译器和调试器 10

2.1.1 GCC的基本用法 11

2.1.2 一些常用的选项 11

2.1.3 优化选项 12

2.1.4 用gdb调试程序 12

2.1.5 图形的调试工具xxgdb 16

2.1.7 grpof 17

2.1.6 cproto 17

2.1.8 其他工具 18

2.2 C++语言简介及其编译器与调试器 18

2.2.1 为什么使用C++ 18

2.2.2 调试C++程序 20

2.2.3 调试异常处理 20

2.2.4 GNU的C++类库 21

2.3 Make 25

2.3.1 Make简介 25

2.3.2 Makefile文件 27

2.3.3 make的内建规则 29

2.3.4 使用autoconf和automake产生makefile 30

2.4 Xwpe 34

2.5 Shell简介 36

2.6 Perl语言简介 36

2.6.1 安装Perl 37

2.6.2 运行Perl脚本 37

2.7 awk简介 38

2.7.1 awk的用途 38

2.7.2 awk的特点 38

2.7.3 awk的历史 38

2.8 小结 39

3.1 vi简介 40

3.1.1 vi基本观念 40

第三章 Linux下的文本编辑器 40

3.1.2 vi的基本命令 41

3.1.3 vi高级应用 42

3.2 Emacs简介 44

3.2.1 GNUEmacs的特点 45

3.2.2 GNUEmacs的基本用法 46

3.2.3 Emacs小结 51

3.3 其他编辑器 51

3.4 小结 52

4.1 Linux的核心 53

第四章 Linux核心与系统调用 53

4.2 系统调用的使用 54

4.3 系统调用与函数的区别 55

4.4 核心程序的结构 56

4.5 小结 57

第五章 Linux的文件系统 58

5.1 操作文件的常用命令 58

5.2 Linux文件系统概述 61

5.3 Ext2文件系统 63

5.4 VFS 68

5.5 /proc文件系统 74

5.6 设备文件 74

5.7.1 文件描述字 75

5.7 操作文件的系统调用 75

5.7.2 open系统调用 76

5.7.3 close系统调用 77

5.7.4 read与write系统调用 77

5.7.5 creat系统调用 77

5.7.6 lseek系统调用 79

5.7.7 dup系统调用 83

5.7.8 link系统调用 85

5.7.9 unlink系统调用 86

5.7.10 fcntl系统调用 86

5.7.11 stat与fstat系统调用 88

5.7.12 access系统调用 93

5.7.13 chmod系统调用 94

5.7.14 chown系统调用 95

5.7.15 chdir系统调用 96

5.7.16 mkdir与rmdir系统调用 96

5.7.17 mknod系统调用 97

5.7.18 mount与umount系统调用 97

5.7.19 ftw系统调用 99

5.8 小结 100

第六章 进程管理 101

6.1 进程的概念 101

6.2 观察进程执行 102

6.3 Linux的进程管理 104

6.3.2 进程调度 107

6.3.1 进程ID 107

6.3.4 虚拟内存处理 109

6.3.3 文件处理 109

6.3.5 创建一个进程 110

6.3.6 执行一个程序 111

6.4 创建进程——fork和clone 112

6.4.1 fork()系统调用 112

6.4.2 system()系统调用 119

6.4.3 clone()系统调用 120

6.5 exec系统调用 121

6.6 进程的优先级 126

6.7.2 获取/设置进程组信息 127

6.7 获取/设置进程信息 127

6.7.1 获取进程的PID号 127

6.8 ptrace()系统调用 129

6.9 Linux的启动过程 129

6.10 小结 130

第七章 进程间通信(IPC) 131

7.1 进程间通信机制简介 131

7.1.1 信号 131

7.1.2 管道 133

7.2 SystemVIPC机制 135

7.2.1 消息队列 136

7.2.2 信号灯(semaphores) 137

7.2.3 共享内存 138

7.3 IPC系统调用 139

7.4 信号处理 139

7.4.1 信号的基本概念 139

7.4.2 信号类型 140

7.4.3 处理信号的系统调用 142

7.5 Linux操纵管道的系统调用 147

7.5.1 pipe()系统调用 147

7.5.2 命名管道 153

7.6 UNIXSystemVIPC机制 158

7.6.1 IPC对象的内容 158

7.6.2 消息队列 159

7.6.3 共享内存 165

7.6.4 信号灯 168

7.7 小结 175

第八章 Linux的多线程编程 176

8.1 简介 176

8.1.1 使用多线程的好处 176

8.1.2 Linux的线程结构 176

8.1.3 Linux线程的缺点 179

8.2 Linux的线程库应用 181

8.2.1 创建线程 181

8.2.2 暂停线程 183

8.2.3 线程同步 185

8.2.4 线程的终止和终止处理程序 192

8.2.5 线程特定数据的处理函数 196

8.2.6 使用信号灯来同步线程 199

8.3 小结 201

第九章 网络编程 203

9.1 TCP/IP简介 203

9.2 Linux中TCP/IP网络的层结构 205

9.3 BSD套接字接口 206

9.4 INET套接字层结构 208

9.4.1 创建一个BSD套接字 208

9.4.2 绑定一个INETBSD套接字 209

9.4.3 连接一个INETBSD套接字 210

9.4.4 监听一个INETBSD套接字 210

9.4.5 接收一个连接请求 211

9.5 IP层 211

9.5.1 套接字缓冲区 211

9.5.2 接收IP包 212

9.5.3 发送IP包 213

9.5.4 数据分组 213

9.6 地址解析协议(ARP) 214

9.7 IP路由 215

9.7.2 传送消息数据库 216

9.7.1 路由缓存 216

9.8 网络编程的基本概念 217

9.8.1 网络地址 217

9.8.2 网络端口 218

9.8.3 套接字 219

9.8.4 客户/服务器模式(C/S) 219

9.9 阻塞与非阻塞 221

9.10 套接字网络编程原理 221

9.11 网络编程的系统调用 223

10.1 什么是Shell 239

10.1.1 DOS中的command.com文件 239

第十章 Linux的Shell 239

10.1.2 Linux中的内核沟通界面 240

10.2 Linux中几种不同的Shell 240

10.2.1 Bash Shell 240

10.2.2 C Shell 241

10.2.3 Korn Shell 241

10.2.4 ash Shell 241

10.2.5 zsh 241

10.3 Shell命令解释程序 242

10.3.1 输入输出重新定向 242

10.3.2 管道线(pipelines) 243

10.3.3 后台进程 244

10.3.4 元字符及特殊字符 245

10.3.5 C Shell的交互功能 247

10.4 Shell的使用 249

10.4.1 Shell的进入与退出 249

10.4.2 Shell的内部指令和外部指令 250

10.5 Shell环境的初始化 251

10.6 小结 253

第十一章 Shell程序设计 254

11.1 Shell程序 254

11.2 Shell程序的变量和基本语法 257

11.2.1 Shell变量 257

11.2.2 test命令 259

11.2.3 控制结构 263

11.2.4 Shell脚本程序中的函数 272

11.3 正则表达式 273

11.3.1 行首匹配符“^”和行尾匹配符“$” 273

11.3.2 单个字符匹配符“.” 274

11.3.3 字符重复匹配符“*” 275

11.3.4 字符类匹配符“?” 277

11.3.5 各种匹配符的组合使用 279

11.4 过滤器 280

11.4.1 三种常见的过滤器 281

11.4.2 过滤器中的重定向及管道 283

11.4.3 输出类过滤器 285

11.4.4 grep命令和fgrep命令 287

11.4.5 grep命令与正则表达式 289

11.5 何时使用Shell程序 290

11.6 小结 291

第十二章 Perl语言简介 292

12.1 Perl的历史 292

12.2 Perl的目标和适用性 292

12.3 基本概念和概览 293

12.4 小结 294

13.1.1 标量变量 295

13.1.2 数组变量 295

13.1 变量 295

第十三章 Perl编程 295

13.2 字符串 296

13.2.1 单引字符串 296

13.2.2 双引字符串 296

13.3 运算符 297

13.3.1 数字运算符 297

13.3.2 字符串运算符 298

13.3.3 运算符的优先级和相关性 299

13.3.4 数字和字符串间的转换 300

13.3.5 标量变量运算符 300

13.3.6 数组运算符 302

13.4.2 条件控制 305

13.4.1 语句块 305

13.4 控制结构 305

13.4.3 循环控制 308

13.4.4 复杂控制结构 310

13.5 关联数组 314

13.5.1 关联数组的变量 314

13.5.2 关联数组的实量表示 314

13.5.3 关联数组操作符 315

13.6 输入输出 316

13.6.1 从STDIN输入 316

13.6.3 向STDOUT输出 317

13.6.2 从<>操作符输入 317

13.7 正则表达式 318

13.7.1 正则表达式的概念 318

13.7.2 正则表达式的简单应用 318

13.7.3 模式 320

13.7.4 有关匹配操作符的详细介绍 324

13.7.5 替换 327

13.8 函数 328

13.8.1 定义用户函数 328

13.8.2 申请用户函数 329

13.8.3 返回值 329

13.8.4 参数 330

13.8.5 函数中的局部变量 332

13.9 格式 334

13.9.1 定义格式 334

13.9.2 申请格式 336

13.9.3 字段句柄 337

13.9.4 页顶格式 340

13.9.5 改变格式的缺省值 341

13.10 文件和目录 343

13.10.1 文件句柄 343

13.10.2 文件句柄操作 344

13.10.3 目录句柄 345

13.10.4 目录句柄操作 345

13.10.5 文件操作 346

13.10.6 目录操作——创建及删除目录 347

13.10.7 权限 348

13.11 进程管理 348

13.11.1 使用system()和exec() 348

13.11.2 使用单引号 350

13.11.3 把进程用作文件句柄 351

13.11.4 使用fork 351

13.11.5 发送和接收信号 353

13.12 小结 354

14.1.3 awk的应用 355

14.1.1 awk的由来 355

14.1.2 awk的版本介绍 355

14.1 基本awk概念 355

第十四章 awk基础 355

14.1.4 awk的特性 356

14.2 命令行和管道 356

14.3 模式和操作 358

14.3.1 模式和操作简介 358

14.3.2 简单正则表达式 359

14.3.3 复合正则表达式 360

14.4 脚本格式 362

14.5 基本运算 363

15.1.1 变量的类型 365

15.1 变量 365

第十五章 awk程序设计 365

15.1.2 预定义变量 366

15.1.3 字符串变量 368

15.2 数组 370

15.3 条件控制 371

15.3.1 if语句 371

15.3.2 if-else语句 372

15.3.3 if-else if语句 372

15.3.4 空语句和条件语句 373

15.4 循环控制 373

15.4.2 for循环 374

15.4.1 do-while循环 374

15.4.3 while循环 375

15.4.4 break和continue语句 376

15.5 输入输出 377

15.5.1 输入 377

15.5.2 输出 379

15.6 函数 381

15.6.1 内部函数 382

15.6.2 自定义函数 383

16.1 安全问题概述 386

16.1.1 网络安全 386

第十六章 安全问题剖析 386

16.1.2 网络安全的特征及其分类 388

16.1.3 安全机制和服务及加密机制 389

16.1.4 TCP/IP协议的安全问题及网络攻击方法 389

16.2 防火墙 390

16.2.1 防火墙的功能 390

16.2.2 防火墙的类型 391

16.2.3 防火墙的安全策略 393

第十七章 用户安全技术 395

17.1 口令安全 395

17.2 文件许可权 395

17.4 umask命令 396

17.5 设置用户ID和同组用户ID许可 396

17.3 目录许可 396

17.6 cp、mv、ln和cpio命令 397

17.7 su和newgrp命令 398

17.8 文件加密 398

17.9 其他安全问题 398

17.10 保持账号安全的要点 400

第十八章 程序员安全技术 402

18.1 系统子程序的安全性 402

18.1.1 I/O子程序 402

18.1.2 进程控制 402

18.1.3 文件属性 403

18.1.4 UID和GID的处理 404

18.2 标准C库子程序的安全性 405

18.2.1 标准I/O 405

18.2.2 /etc/passwd处理 405

18.2.3 /etc/group的处理 406

18.2.4 加密子程序 407

18.2.5 运行Shell 407

18.3 编写C程序的安全性 407

18.4 root程序设计的安全性 409

第十九章 系统管理员安全技术 411

19.1 文件系统安全 411

19.1.1 Linux文件系统概述 411

19.1.3 /etc/mknod命令 412

19.1.2 设备文件 412

19.1.4 安全考虑 413

19.1.5 find命令 413

19.1.6 secure程序 414

19.1.7 ncheck命令 414

19.1.8 安装和拆卸文件系统 414

19.1.9 系统目录和文件 415

19.2 超级用户权限安全 415

19.2.1 增加、删除、移走用户 415

19.2.2 启动系统 416

19.2.6 /etc/profile 417

19.2.5 shutdown命令 417

19.2.4 进入多用户 417

19.2.3 init进程 417

19.3 几个重要文件和执行环境的安全 418

19.3.1 /etc/passwd文件 418

19.3.2 /etc/group文件 419

19.3.3 执行的环境 419

19.4 安全管理及安全审计 421

19.4.1 安全管理 421

19.4.2 安全审计 421

19.5 用户及系统管理员安全意识 424

19.5.1 用户安全意识 424

19.5.2 系统管理员意识 425

19.6 小结 427