《Linux程序设计 技术技巧与项目实践》PDF下载

  • 购买积分:10 如何计算积分?
  • 作  者:俞有明编
  • 出 版 社:北京:化学工业出版社
  • 出版年份:2012
  • ISBN:9787122140586
  • 页数:232 页
图书介绍:本教材以Linux技术为基础、以实战技巧为导向、以项目实践为练习,深入浅出地阐述了Linux程序设计的理论与实践。在内容安排上循序渐进,从了解Linux的基础知识到基本掌握Linux的编程环境的搭建,从在Linux环境下掌握基本的Linux技能到重点学习shell编程和C编程的理念与技术,在此基础上再深入学习文件系统编程、进程调度与通信编程、线程编程与网络编程技术,最后设计了巩固学习过程的实践项目。

第1章LINUX概述 1

1.1 Linux的渊源 1

1.2 Linux的发行版本 2

1.3 Linux的特性与生命力 2

1.4 Linux用户应该掌握的50个常用命令 2

1.5 Linux编程学习指导 2

1.6实战技巧:Linux平台下的软件自动安装与升级工具APT与YUM 3

1.6.1 APT的用法 3

1.6.2 YUM的用法 4

第2章 构建LINUX编程环境 7

2.1 Linux编程环境概述 7

2.1.1编程环境的风格 7

2.1.2Linux下的编程环境与工具 7

2.1.3 Linux下的编程分类 8

2.1.4 Linux帮助应用指南 8

2.2基本名词术语与硬件需求 9

2.2.1系统操作术语 9

2.2.2系统特性术语 10

2.2.3系统硬件需求与安装准备 11

2.3 Linux系统的多元化安装 11

2.3.1裸机上的安装与卸载过程 11

2.3.2多系统共享的安装过程 18

2.3.3在Windows下VMware中的Linux的安装过程 19

2.3.4用Cygwin软件创建Linux仿真环境 20

2.3.5即时系统Ubuntu Linux和WinPE 21

2.4 Linux下软件的安装与卸载 22

2.4.1二进制分发软件包的安装与卸载 23

2.4.2软件包的安装与卸载 23

2.5 Xshell的安装与使用 24

2.6代码阅读工具Source Insight 24

2.7实战技巧: VMware tools的安装与多平台下文件夹共享 25

2.7.1 VMware tools的安装 25

2.7.2多平台下的文件夹共享 26

第3章LINUX应用技术 27

3.1系统管理与维护技术 27

3.1.1系统注销关机或重启命令 27

3.1.2显示登录用户信息命令 28

3.1.3账号管理命令 28

3.1.4修改密码的passwd命令 30

3.1.5显示与时间设置命令 30

3.1.6磁盘空间管理命令 30

3.2文件与目录操作技术 31

3.2.1文件系统认识与权限设置 31

3.2.2列表与分屏显示命令 32

3.2.3切换创建与删除目录的命令 33

3.2.4文件复制删除与合并命令 33

3.2.5文件目录的移动与更名和路径显示命令 34

3.2.6重定向与管道命令 35

3.2.7改变文件访问权限与归属的命令 35

3.2.8文件定位搜索与查找命令 36

3.3前后台程序的运行与状态切换 38

3.4任务调度技术 38

3.4.1系统工作调度 38

3.4.2用户工作任务调度与删除 38

3.5文件的打包与压缩解压缩 39

3.6进程管理技术 39

3.6.1命令ps的用法 39

3.6.2命令top的用法 40

3.6.3杀死进程命令kill 41

3.7控制提示符与命令组合 42

3.8编辑器Vi的应用技术 42

3.8.1 Vi的三种执行模式 42

3.8.2基本操作 43

3.8.3查找和替换 44

3.9实战技巧:非空目录删除与终端字体大小改变 45

3.9.1 Linux系统中非空目录的删除 45

3.9.2改变XTerm的字体大小的方法 46

第4章SHELL基础与编程技术 47

4.1 Shell概述 47

4.2 shell程序设计基础 48

4.3 Shell基本命令 50

4.3.1内部命令 51

4.3.2外部命令 51

4.3.3命令分组 51

4.3.4函数 51

4.3.5 Shell的命令组合 53

4.3.6 Shell特殊字符 54

4.4 Shell变量 55

4.4.1用户自定义变量 55

4.4.2变量的类型声明 56

4.4.3数组变量 56

4.4.4变量的引用 57

4.4.5键盘输入变量 58

4.4.6位置变量 58

4.4.7预定义特殊变量 59

4.4.8环境变量与置换变量 59

4.4.9算术运算 60

4.5 Shell程序流程 60

4.5.1测试语句test 60

4.5.2条件语句if 62

4.5.3开关语句case 63

4.5.4循环语句for 64

4.5.5循环语句while 66

4.5.6循环语句until 67

4.5.7循环控制命令break和continue 67

4.5.8流程控制select 67

4.5.9 shift语句和repeat语句 68

4.6程序调试 69

4.7 Shell编程综合范例 71

4.7.1系统自动备份程序设计 71

4.7.2终端颜色搭配的color脚本 71

4.7.3目录菜单编制程序 72

4.7.4问题交互图形化设计例程 72

4.7.5计算两日期间的天数例程 75

4.7.6系统信息测试与显示例程 77

4.8实战技巧:系统资源查看与多命令执行 79

4.8.1使用vmstat命令来查看系统资源情况 79

4.8.2使用分号同时执行多条命令 79

第5章C程序设计技术 80

5.1管中窥豹学Linux下的C编程 80

5.2 GCC编译器应用解析 81

5.2.1编译器的工作过程 81

5.2.2 GCC编译选项 81

5.2.3 GCC编译过程与游戏编程 82

5.3 G D B调试技术 85

5.3.1调试编译与选项 86

5.3.2程序调试设置 86

5.3.3在线调试过程 87

5.3.4在GDB中查看源程序 89

5.3.5在GDB中查看栈信息 90

5.3.6在GDB中查看运行数据 91

5.3.7在GDB中改变程序的执行路线 93

5.3.8在不同语言中使用GDB 93

5.4 Make工程管理器 94

5.4.1 Makefile文件 94

5.4.2 make命令 95

5.4.3 makefiile变量 96

5.4.4 Makefile规则 98

5.5多文件项目的Autotools应用 99

5.5.1 Autotools基本工具 99

5.5.2 Autotools制作Makefile基本流程例解 99

5.5.3用make完成程序安装和发布 102

5.6 Linux下的C程序设计实践 103

5.6.1文件拷贝程序设计 103

5.6.2猜数字游戏设计 104

5.6.3进程调用程序设计 105

5.6.4管道通信程序设计 106

5.6.5“巧抓窃贼”程序设计 106

5.7实战技巧:Linux启动模式与定时任务设置 107

5.7.1 Linux系统的命令行与X图形模式启动的设置与切换 107

5.7.2定时任务设置 108

第6章LINUX文件系统与编程 109

6.1文件系统概述 109

6.1.1文件系统的目录树 109

6.1.2文件系统的结构 110

6.1.3 Ext2文件系统 111

6.1.4 VFS 115

6.2设备文件 116

6.2.1设备文件概述 116

6.2.2设备驱动程序 116

6.2.3中断处理 116

6.2.4设备驱动程序的框架 117

6.3文件的系统调用 117

6.3.1文件的创建和读写 117

6.3.2文件的各个属性 119

6.3.3目录文件的操作 120

6.4文件系统的设计与实现 121

6.5实战技巧:消除XWindows下的死机现象 133

第7章进程调度与通信编程 134

7.1 Linux下的进程概述 134

7.1.1进程的概念 134

7.1.2 Linux进程的PCB结构 135

7.1.3 Linux进程的组织方式 136

7.1.4 Linux进程的异常检测 137

7.2进程的系统调用 137

7.2.1 getpid的用法 137

7.2.2 fork的用法与多进程解惑 138

7.2.3 exit和exit 139

7.3进程间通信 141

7.3.1管道通信 141

7.3.2管道技术 142

7.3.3无名管道编程 142

7.3.4命名管道编程 145

7.3.5信号通信 146

7.4信号 148

7.4.1信号常识 148

7.4.2常用信号定义 148

7.4.3信号的接收 148

7.4.4信号的发送 150

7.4.5共享内存 151

7.4.6消息队列 152

7.5守护进程 155

7.5.1守护进程基础 155

7.5.2守护进程的特点 156

7.5.3守护进程的启动方式 156

7.5.4守护进程的错误输出 156

7.5.5守护进程的编程要点 157

7.5.6守护进程案例 158

7.6实战技巧:巧妙使用Tab键 160

第8章线程编程技术 161

8.1线程thread的内涵 161

8.2线程调用 161

8.2.1线程的定义 161

8.2.2线程的分类 162

8.2.3线程的实现 162

8.2.4 Linux线程实现机制分析 163

8.3多线程编程实践 167

8.4线程的数据处理 169

8.4.1线程数据 169

8.4.2互斥锁 170

8.4.3条件变量 173

8.4.4信号量 175

8.5多线程编程 177

8.5.1线程的创建和终止 177

8.5.2线程控制函数 177

8.5.3线程间的互斥 178

8.5.4线程间的同步 178

8.5.5修改线程的属性 178

8.5.6多线程编程解决生产者和消费者问题 180

8.6实战技巧:拷贝与粘贴的快捷程序 182

第9章网络编程 183

9.1 Socket的概念 183

9.2 Socket的建立与配置 183

9.3 Socket的连接建立 185

9.4数据传输 186

9.5 Socket编程实例 187

9.5.1服务器端的软件程序 187

9.5.2客户端的软件程序 188

9.5.3阻塞和非阻塞 190

9.5.4基于POP3客户端实例 191

9.6 ping命令解析 192

9.6.1命令基本功能 192

9.6.2命令Ping源码例程 195

9.7实战技巧:光驱与软驱的加载方法 197

9.7.1光驱的使用 197

9.7.2软驱的使用 197

第10章LINUX程序设计实践项目 199

10.1实践项目一 虚拟机环境下的Linux安装 199

10.1.1实践目的 199

10.1.2实践准备 199

10.1.3实践内容 200

10.2实践项目二Linux的系统管理与基本命令 204

10.2.1实践目的 204

10.2.2实践内容 205

10.2.3实践步骤 205

10.3实践项目三Vi编辑器练习 211

10.3.1实验目的 211

10.3.2实验内容 211

10.3.3实验步骤 211

10.4实践项目四Shell程序设计 213

10.4.1实践目的 213

10.4.2实践内容 213

10.4.3实践步骤 214

10.5实践项目五C程序设计与多文件编译 216

10.5.1实践目的 216

10.5.2实践要求 216

10.5.3实践内容 216

10.6实践项目六 内存动态分区管理 219

10.6.1实践目的 219

10.6.2实践内容 219

10.6.3实践程序及分析 219

10.7实践项目七Linux文件操作编程 224

10.7.1实践目的 224

10.7.2实践内容 224

10.7.3实践源程序清单 224

10.8实践项目八 系统调用与设备管理 227

10.8.1实践目的 227

10.8.2实践内容 227

10.8.3实践源程序清单 227

附录LINUX系统的安全防护技巧 229

参考文献 232