《Linux编程基础/21世纪高等教育计算机规划教材》是Linux编程方面的入门教材,主要针对Linux基础读者。《Linux编程基础/21世纪高等教育计算机规划教材》介绍了Linux编程方面的基础知识,主要包括三部分:Linux基本概念及Linux基本操作;Linux编程环境;Linux编程。其中,Linux基本概念及Linux基本操作主要介绍了Linux操作系统基本概念和特点、Linux常用命令和VI编辑器的基本使用;Linux编程环境主要介绍了Linux的Shell编程、GCC/GDB的使用及Make工具的使用;Linux编程主要介绍了Linux文件和目录操作、进程管理、进程问通信、信号及信号处理、多线程编程、网络编程及数据库编程等内容。最后,还提供了与Linux编程相关的实验指导手册。《Linux编程基础/21世纪高等教育计算机规划教材》通过丰富实例,详细展示了Linux基本知识的使用方法,以帮助读者进一步深入学习Linux技术。
《Linux编程基础/21世纪高等教育计算机规划教材》可作为高等学校本、专科工科类专业的教材,也可作为编程爱好者的入门参考书。
1.作者经验丰富,实践性较强。作者从事多年的Linux编程的教学,了解目前学生在学习Linux编程方面的难点。
2.理论与实际结合,应用性较强。从事过多个科研及企业项目,对如何将理论与实际相联系有着较为深刻的认识。
3.案例与理论结合。有丰富详细的实例介绍基本概念。
4.配有习题,便于学习。有基本的习题供学生动手实践。
5.提供了32学时课堂的实验指导手册。
李养群,主要研究物联网、嵌入式系统等领域。曾发表过期刊《基于BPEL4WS的新型电信业务创建方法》等。
第一章 Linux基础
1.1 什么是Linux?
1.1.1 Linux操作系统特点
1.1.2 Linux操作系统组成部分
1.2 Linux版本及Fedora操作系统
1.2.1 Linux内核版本
1.2.2 Linux发行版
1.2.3 Fedora操作系统
1.2.4 Fedora发行方式
1.2.4 Fedora系统安装基本要求
1.3 Fedora20的安装
1.3.1 虚拟机下的fedora20的安装准备
1.3.2 Fedora20安装
1.4 Linux常用命令
1.4.1 Linux命令执行方法
1.4.2 Linux常用各种命令
1.6 VI编辑器的使用
1.4.3 vi编辑器的使用
1.5 POSIX标准和LSB标准
第2章 Linux编程环境
2.1 gcc编译器的使用
2.1.1 gcc编译器简介
2.1.2 gcc常用选项:预处理控制
2.1.3 gcc常用选项:编译及警告信息控制选项
2.1.4 gcc常用选项:C语言标准控制选项和程序调试及优化选项
2.1.5 gcc常用选项:搜索路径控制和gcc链接选项
2.1.6 利用gcc创建库文件
2.2 GDB调试器的使用
2.2.1 gdb调试器的使用
2.2.2 gdb调试器使用实例
2.3 make工具
2.3.1 第一个makefile文件
2.3.2 makefile编写规则
2.3.3 make的基本工作原理及过程
2.3.4 makefile文件
第3章 Shell编程
3.1 Shell基础
3.1.1 Shell交互方式
3.1.2 Shell基本功能
3.2 Bash编程
3.3 Shell中的特殊字符
3.3.1 转义符“/”
3.3.2 单引号
3.3.3 双引号
3.3.4 命令替换符号
3.4 Shell变量
3.4.1 Shell用户变量定义
3.4.2 Shell环境变量
3.4.3 Shell内部变量
3.4.4 Shell参数扩展(ParameterExpansion)
3.4.5 Shell变量的算术扩展
3.4.6 条件表达式
3.4.7 Shell字符串操作
3.5 Shell控制语句
3.5.1 条件语句
3.5.2 循环语句
3.6 Shell其它命令
3.6.1 管道命令|
3.6.2 重定向命令
3.6.3 echo命令
3.6.4 shift命令
3.7 Shell函数
3.8 Shell数组
3.9 Shell中Dialog工具
3.10 Bash调试
第四章 文件I/O操作
4.1 概述
4.2 文件I/O操作
4.2.1 文件的创建
4.2.2 文件的打开及关闭
4.2.3 文件的读取/写入
4.2.4 文件的定位
4.2.5 文件删除
4.2.6 文件描述符属性控制fcntl
4.2.7 文件操作实例
4.3 目录
4.3.1 目录概述
4.3.2 Linux文件系统ext2基本结构
4.3.3 与目录有关的系统调用
4.4 文件与目录的属性
4.4.1 获得文件或目录属性
4.4.2 文件或目录的模式
4.4.3 符号链接
4.4.4 文件属性的更改
4.5 标准文件I/O
4.6 处理系统调用中的错误
第5章 Linux进程管理
5.1 进程基本概念
5.2 进程创建和命令执行
5.3 进程退出
5.3.1 守护进程
5.3.2 僵尸进程
5.3.3 进程退出状态
5.4 进程开发实例
第六章 信号及信号处理
6.1 信号的基本概念
6.1.1 信号的使用和产生
6.1.2 信号的状态
6.2 信号的分类
6.2.1 可靠与不可靠信号
6.2.2 实时信号与非实时信号
6.3 信号的处理
6.3.1 signal信号处理机制
6.3.2 sigaction信号处理机制
6.4 信号发送函数
6.5 可重入函数
6.6 父子进程的信号处理
6.7 信号处理机制的应用
6.8 系统定时信号
6.8.1 睡眠函数
6.8.2 计时器
总结
第7章 进程间通信
7.1 进程间通信基本概念
7.1.1 进程通信的作用
7.1.2 进程通信的实现和方法
7.2 管道通信
7.2.1 无名管道
7.2.2 管道与重定向
7.2.3 popen的介绍
7.2.4 命名管道
7.3 SystemV信号量
7.3.1 信号量的用法
7.3.2 信号量实例
7.4 POSIX有名信号量
7.4.1 POSIX有名信号量的使用
7.4.2 有名信号量实例
7.5 共享内存
7.5.1 共享内存步骤
7.5.2 SystemV共享内存API
7.5.3 共享内存实例
7.5.4 mmap共享内存机制
7.6 消息队列
7.6.1 消息队列的实现原理
7.6.2 消息队列系统调用
7.6.3 消息队列实例
第8章 多线程编程
8.1 多线程概念
8.2 线程状态与线程编程
8.2.1 线程的创建和参数传递
8.2.2 线程终止pthread_exit
8.2.3 线程挂起pthread_join
8.2.5 线程其它相关系统调用
8.3 线程的同步与互斥
8.3.1 互斥量(mutex)
8.3.2 互斥量的使用
8.3.3 信号量
8.3.4 信号量的使用方法
8.3.5 条件变量
8.3.6 条件变量的使用
第九章 Linux网络编程
9.1 计算机网络概述
9.1.1 计算机网络的组成及特点
9.1.2 计算机网络协议
9.1.3 网络协议分层
9.1.4 TCP/IP协议
9.1.5 Client/Server模型
9.1.6 Linux网络编程概述
9.1.7 网络协议栈
9.2 Socket编程
9.2.1 什么是Socket?
9.2.2 socket编程基本系统调用
9.2.3 socketstream服务
9.2.4 Socket数据报服务
9.2.5 Socket原始套接字服务
9.3 Linux网络编程高级I/O
9.3.1 socket阻塞/非阻塞方式
9.3.2 非阻塞socekt用法
9.3.3 socket与多路复用
9.4 Linux网络并发编程
9.4.1 Linux网络编程与多进程
第10章 Linux下的数据库编程
10.1 MySQL数据库简介
10.1.1 Linux数据库编程应用
10.1.2 MySQLAPI的两种形式
10.1.3 MySQLCAPI的使用
10.2 Linux数据库编程基本方法
10.3 MySQL数据库数据结构及API
10.3.1 数据结构
10.3.2 MySQL操作API
10.4 MySQL数据库编程实例
总结
习题
附录 Linux编程基础实验
实验一 Linux基本命令使用(验证性实验)
实验二 Linux Shell编程(设计性实验)
实验三 Makefile实验(验证性和设计性)
实验四 GCCGDB实验
实验五 LinuX文件系统编程
实验六 Linux多进程与进程间通信
参考文献