Linux程序设计--技术技巧与项目实践(余有明)(附光盘)
¥33.60定价
作者: 余有明
出版时间:2012年9月
出版社:化学工业出版社
- 化学工业出版社
- 9787122140586
- 70052
- 2012年9月
- 本科电气
- 未分类
- 本科电气
- 本科
内容简介
本书以Linux技术为基础,以实战技巧为导向,以项目实践为演习,深入浅出地阐述了Linux程序设计的理论与实践。
全书共分十章,在内容安排上循序渐进,从了解Linux的基础知识到基本掌握Linux的编程环境的搭建,从在Linux环境下掌握基本的Linux技能到重点学习shell编程和C编程的理念与技术,在此基础上再深入学习文件系统编程、进程调度与通信编程、线程编程与网络编程技术,最后给出了巩固学习过程的实践项目,便于读者系统掌握Linux技术和学习编程的原理与实践。附带光盘收录了各章案例程序的源代码及电子教案。
本书结构合理、实例丰富,具有很强的启发性和实用性,可作为高等院校计算机、电气信息和控制类专业的本科生和研究生学习Linux系统与编程的专业基础教材,也可以供广大希望从事Linux环境下工作和转入嵌入式领域的科研与工程技术人员自学或参考使用。
全书共分十章,在内容安排上循序渐进,从了解Linux的基础知识到基本掌握Linux的编程环境的搭建,从在Linux环境下掌握基本的Linux技能到重点学习shell编程和C编程的理念与技术,在此基础上再深入学习文件系统编程、进程调度与通信编程、线程编程与网络编程技术,最后给出了巩固学习过程的实践项目,便于读者系统掌握Linux技术和学习编程的原理与实践。附带光盘收录了各章案例程序的源代码及电子教案。
本书结构合理、实例丰富,具有很强的启发性和实用性,可作为高等院校计算机、电气信息和控制类专业的本科生和研究生学习Linux系统与编程的专业基础教材,也可以供广大希望从事Linux环境下工作和转入嵌入式领域的科研与工程技术人员自学或参考使用。
目录
第1章 LINUX概述1.1 Linux的渊源1.2 Linux的发行版本1.3 Linux的特性与生命力1.4 Linux用户应该掌握的50个常用命令1.5 Linux编程学习指导1.6 实战技巧:Linux平台下的软件自动安装与升级工具 APT与YUM1.6.1 APT的用法1.6.2 YUM的用法第2章 构建LINUX编程环境2.1 Linux编程环境概述2.1.1 编程环境的风格2.1.2 Linux下的编程环境与工具2.1.3 Linux下的编程分类2.1.4 Linux帮助应用指南2.2 基本名词术语与硬件需求2.2.1 系统操作术语2.2.2 系统特性术语2.2.3 系统硬件需求与安装准备2.3 Linux系统的多元化安装2.3.1 裸机上的安装与卸载过程2.3.2 多系统共享的安装过程2.3.3 在Windows下VMware中的Linux的安装过程2.3.4 用Cygwin软件创建Linux仿真环境2.3.5 即时系统Ubuntu Linux和WinPE2.4 Linux下软件的安装与卸载2.4.1 二进制分发软件包的安装与卸载2.4.2 软件包的安装与卸载2.5 Xshell的安装与使用2.6 代码阅读工具Source Insight2.7 实战技巧: VMware tools的安装与多平台下的文件夹共享2.7.1 VMware tools的安装2.7.2 多平台下的文件夹共享第3章 LINUX应用技术3.1 系统管理与维护技术3.1.1 系统注销关机或重启命令3.1.2 显示登录用户信息命令3.1.3 账号管理命令3.1.4 修改密码的passwd命令3.1.5 显示与时间设置命令3.1.6 磁盘空间管理命令3.2 文件与目录操作技术3.2.1 文件系统认识与权限设置3.2.2 列表与分屏显示命令3.2.3 切换创建与删除目录的命令3.2.4 文件复制删除与合并命令3.2.5 文件目录的移动与更名和路径显示命令3.2.6 重定向与管道命令3.2.7 改变文件访问权限与归属的命令3.2.8 文件定位搜索与查找命令3.3 前后台程序的运行与状态切换3.4 任务调度技术3.4.1 系统工作调度3.4.2 用户工作任务调度与删除3.5 文件的打包与压缩解压缩3.6 进程管理技术3.6.1 命令ps的用法3.6.2 命令top的用法3.6.3 杀死进程命令kill3.7 控制提示符与命令组合3.8 编辑器Vi的应用技术3.8.1 Vi的三种执行模式3.8.2 基本操作3.8.3 查找和替换3.9 实战技巧:非空目录删除与终端字体大小改变3.9.1 Linux系统中非空目录的删除3.9.2 改变XTerm的字体大小的方法第4章 SHELL基础与编程技术4.1 Shell概述4.2 shell程序设计基础4.3 Shell基本命令4.3.1 内部命令4.3.2 外部命令4.3.3 命令分组4.3.4 函数4.3.5 Shell的命令组合4.3.6 Shell特殊字符4.4 Shell变量4.4.1 用户自定义变量4.4.2 变量的类型声明4.4.3 数组变量4.4.4 变量的引用4.4.5 键盘输入变量4.4.6 位置变量4.4.7 预定义特殊变量4.4.8 环境变量与置换变量4.4.9 算术运算4.5 Shell程序流程4.5.1 测试语句test4.5.2 条件语句if4.5.3 开关语句case4.5.4 循环语句for4.5.5 循环语句while4.5.6 循环语句until4.5.7 循环控制命令break和continue4.5.8 流程控制select4.5.9 shift语句和repeat语句4.6 程序调试4.7 Shell编程综合范例4.7.1 系统自动备份程序设计4.7.2 终端颜色搭配的color脚本4.7.3 目录菜单编制程序4.7.4 问题交互图形化设计例程4.7.5 计算两日期间的天数例程4.7.6 系统信息测试与显示例程4.8 实战技巧:系统资源查看与多命令执行4.8.1 使用vmstat命令来查看系统资源情况4.8.2 使用分号同时执行多条命令第5章 C程序设计技术5.1 管中窥豹学Linux下的C编程5.2 GCC编译器应用解析5.2.1 编译器的工作过程5.2.2 GCC编译选项5.2.3 GCC编译过程与游戏编程5.3 GDB调试技术5.3.1 调试编译与选项5.3.2 程序调试设置5.3.3 在线调试过程5.3.4 在GDB中查看源程序5.3.5 在GDB中查看栈信息5.3.6 在GDB中查看运行数据5.3.7 在GDB中改变程序的执行路线5.3.8 在不同语言中使用GDB5.4 Make工程管理器5.4.1 Makefile文件5.4.2 make命令5.4.3 makefile变量5.4.4 Makefile规则5.5 多文件项目的Autotools应用5.5.1 Autotools基本工具5.5.2 Autotools制作Makefile基本流程例解5.5.3 用make完成程序安装和发布5.6 Linux下的C程序设计实践5.6.1 文件拷贝程序设计5.6.2 猜数字游戏设计5.6.3 进程调用程序设计5.6.4 管道通信程序设计5.6.5 "巧抓窃贼"程序设计5.7 实战技巧:Linux启动模式与定时任务设置5.7.1 Linux系统的命令行与X图形模式启动的设置与切换5.7.2 定时任务设置第6章 LINUX文件系统与编程6.1 文件系统概述6.1.1 文件系统的目录树6.1.2 文件系统的结构6.1.3 Ext2文件系统6.1.4 VFS6.2 设备文件6.2.1 设备文件概述6.2.2 设备驱动程序6.2.3 中断处理6.2.4 设备驱动程序的框架6.3 文件的系统调用6.3.1 文件的创建和读写6.3.2 文件的各个属性6.3.3 目录文件的操作6.4 文件系统的设计与实现6.5 实战技巧:消除XWindows下的死机现象第7章 进程调度与通信编程7.1 Linux下的进程概述7.1.1 进程的概念7.1.2 Linux进程的PCB结构7.1.3 Linux进程的组织方式7.1.4 Linux进程的异常检测7.2 进程的系统调用7.2.1 getpid的用法7.2.2 fork的用法与多进程解惑7.2.3 exit和_exit7.3 进程间通信7.3.1 管道通信7.3.2 管道技术7.3.3 无名管道编程7.3.4 命名管道编程7.3.5 信号通信7.4 信号7.4.1 信号常识7.4.2 常用信号定义7.4.3 信号的接收7.4.4 信号的发送7.4.5 共享内存7.4.6 消息队列7.5 守护进程7.5.1 守护进程基础7.5.2 守护进程的特点7.5.3 守护进程的启动方式7.5.4 守护进程的错误输出7.5.5 守护进程的编程要点7.5.6 守护进程案例7.6 实战技巧:巧妙使用Tab键第8章 线程编程技术8.1 线程thread的内涵8.2 线程调用8.2.1 线程的定义8.2.2 线程的分类8.2.3 线程的实现8.2.4 Linux线程实现机制分析8.3 多线程编程实践8.4 线程的数据处理8.4.1 线程数据8.4.2 互斥锁8.4.3 条件变量8.4.4 信号量8.5 多线程编程8.5.1 线程的创建和终止8.5.2 线程控制函数8.5.3 线程间的互斥8.5.4 线程间的同步8.5.5 修改线程的属性8.5.6 多线程编程解决生产者和消费者问题8.6 实战技巧:拷贝与粘贴的快捷程序第9章 网络编程9.1 Socket的概念9.2 Socket的建立与配置9.3 Socket的连接建立9.4 数据传输9.5 Socket编程实例9.5.1 服务器端的软件程序9.5.2 客户端的软件程序9.5.3 阻塞和非阻塞9.5.4 基于POP3客户端实例9.6 ping命令解析9.6.1 命令基本功能9.6.2 命令ping源码例程9.7 实战技巧:光驱与软驱的加载方法9.7.1 光驱的使用9.7.2 软驱的使用第10章 LINUX程序设计实践项目10.1 实践项目一 虚拟机环境下的Linux安装10.1.1 实践目的10.1.2 实践准备10.1.3 实践内容10.2 实践项目二 Linux的系统管理与基本命令10.2.1 实践目的10.2.2 实践内容10.2.3 实践步骤10.3 实践项目三 Vi编辑器练习10.3.1 实验目的10.3.2 实验内容10.3.3 实验步骤10.4 实践项目四 Shell程序设计10.4.1 实践目的10.4.2 实践内容10.4.3 实践步骤10.5 实践项目五 C程序设计与多文件编译10.5.1 实践目的10.5.2 实践要求10.5.3 实践内容10.6 实践项目六 内存动态分区管理10.6.1 实践目的10.6.2 实践内容10.6.3 实践程序及分析10.7 实践项目七 Linux文件操作编程10.7.1 实践目的10.7.2 实践内容10.7.3 实践源程序清单10.8 实践项目八 系统调用与设备管理10.8.1 实践目的10.8.2 实践内容10.8.3 实践源程序清单附录 LINUX系统的安全防护技巧参考文献