21世纪高等教育计算机规划教材

GNU/Linux编程

分享 推荐 0 收藏 6 阅读 2.1K
郑谦益 (编著) 978-7-115-28260-6

关于本书的内容有任何问题,请联系 李召

1. 内容全面,注重基础,重点突出,易于理解
由浅入深,全面介绍Linux的基本概念、安装、基本命令的使用、shell程序设计、开发环境和C/C++软件设计;
在整个编排过程中,利用表格,对相关知识点进行归纳,以图的形式对相关概念和原理进行描述,便于学生理解;
同时,列举了大量面向应用的实例,帮助学生上机操作和验证。
2.强调Linux系统体系结构和应用开发模式
由于Linux具有实践性强和知识点分散的特点,本课程从Linux系统体系结构的角度,介绍各组件之间的关系以及应用开发模式。
3. 围绕Linux内核接口功能,通过应用介绍编程实例
基于Linux环境下的C/C++软件设计,涉及到各层次的编程接口,本课程主要介绍 Linux内核相关的API,结合具有代表性应用实例,介绍编程方法。
¥32.00 ¥27.20 (8.5 折)
教学资源仅供教师教学使用,转载或另作他用版权方有权追究法律责任。

内容摘要

  Linux作为一种自由和源码开放的类UNIX操作系统,虽然诞生至今只有20年的时间,但已经在各个领域中得到了广泛的应用,对软件行业产生了深远的影响。本书通过大量实例讲述Linux环境下进行软件开发所必须掌握的基础知识。全书内容由四个部分组成,第一部分介绍Linux相关背景知识和GNU命令工具的使用方法;第二部分为Shell程序设计,讲述Shell脚本语言的语法结构;第三部分介绍Linux开发环境,讲述基于C语言开发的GNU工具的使用方法;第四部分为Linux环境下的C语言编程,系统讲述与Linux内核有关的应用编程接口函数的使用方法。
  本书可以作为高校计算机相关专业的高年级学生、研究生学习Linux编程的教材或教学参考书。

目录

目 录

第 一部分 Linux基础

第 1章 UNIX系统概述 2
1.1 UNIX的发展历史 2
1.1.1 UNIX的产生与发展 2
1.1.2 UNIX的相关标准 3
1.2 GNU的诞生与发展 4
1.2.1 自由软件计划GNU 4
1.2.2 许可证协议 5
1.2.3 自由软件和开源软件 5
1.3 Linux内核 5
1.3.1 Minix操作系统 5
1.3.2 Linux的产生与发展 6
1.3.3 Linux内核版本 6
1.3.4 Linux内核的分类 6
1.4 Linux系统 6
1.4.1 Linux系统的概念 6
1.4.2 GNU/Linux 7
1.4.3 Linux发行版 7
1.5 Linux系统的商业运营模式 8

第 2章 Shell命令 9
2.1 Shell命令概述 9
2.1.1 目录的组织结构 9
2.1.2 文件的路径 10
2.1.3 Linux命令的语法结构 10
2.1.4 Shell命令的分类 11
2.1.5 联机帮助 11
2.2 目录和文件操作 11
2.2.1 目录操作 11
2.2.2 文件操作 12
2.2.3 显示文本文件内容 15
2.2.4 硬链接和软链接 16
2.3 用户和用户组管理 16
2.3.1 用户的分类 16
2.3.2 用户组管理 16
2.3.3 用户管理 17
2.3.4 用户属性的修改 18
2.3.5 用户管理相关配置文件 18
2.4 文件的权限管理 19
2.4.1 文件属性 19
2.4.2 权限的修改 21
2.4.3 权限验证 22
2.4.4 权限掩码umask 23
2.4.5 文件和目录权限的计算 23
2.5 进程管理 24
2.5.1 进程的管理信息 24
2.5.2 与进程相关的命令 25
2.6 Linux的备份与恢复 28
2.6.1 面向文件的备份与恢复 28
2.6.2 面向文件系统的备份 30
2.6.3 面向设备的备份与恢复 31
2.7 Linux应用软件包管理 32
2.7.1 应用软件包的分类 32
2.7.2 RPM软件包的管理 32
2.8 输入输出重定向和管道 33
2.8.1 标准输入输出文件的定义 33
2.8.2 输入输出重定向 34
2.8.3 管道 34
2.9 元字符与正则表达式 35
2.9.1 元字符 35
2.9.2 正则表达式 36

第3章 Linux系统的定制 38
3.1 磁盘管理 38
3.1.1 硬盘的物理结构 38
3.1.2 磁盘分区 39
3.1.3 分区格式化 41
3.1.4 ext2文件系统 43
3.1.5 文件系统的挂载与卸载 44
3.2 引导加载程序 grub 45
3.2.1 引导加载的概念 45
3.2.2 引导加载程序grub 46
3.2.3 grub交互命令 47
3.2.4 grub的启动过程 48
3.3 Linux内核定制 49
3.3.1 Linux内核 49
3.3.2 定制Linux内核 50
3.4 Linux应用环境的初始化 50
3.4.1 引导配置文件inittab 50
3.4.2 用户登录 53

第 二部分 Shell程序设计

第4章 Shell程序设计 56
4.1 Shell概述 56
4.2 Shell脚本的定义与执行 57
4.3 Shell变量 58
4.3.1 Shell变量的分类 58
4.3.2 命令替换 61
4.4 输入和输出 62
4.5 Shell中的引号 63
4.5 条件表达式 65
4.5.1 条件表达式 65
4.5.2 命令分隔符 68
4.6 判断语句 68
4.6.1 条件语句 68
4.6.2 分支语句 71
4.7 循环语句 73
4.7.1 for循环语句 73
4.7.2 while语句 75
4.7.3 until语句 76
4.8 函数 77

第三部分 CNU C语言开发环境

第5章 GNU C开发环境 82
5.1 GNU C编译器 82
5.1.1 目标代码的生成 82
5.1.2 GCC概述 83
5.1.3 GNU C编译链接工具 83
5.2 项目管理工具—GNU make 85
5.2.1 项目管理概述 85
5.2.2 基于make工具的项目管理 86
5.2.3 Makefile中的变量 88
5.2.4 Makefile文件中的潜规则 90
5.3 创建和使用函数库 92
5.3.1 静态库 93
5.3.2 共享库 95
5.3.3 动态链接库 96
5.4 GNU C函数库—glibc 98

第四部分 Linux环境下的C语言编程

第6章 Linux文件与目录 102
6.1 Linux文件系统概述 102
6.1.1 文件系统的概念 102
6.1.2 虚拟文件系统 102
6.1.3 文件系统的结构 103
6.1.4 应用编程接口 104
6.2 文件的基本输入输出 105
6.2.1 文件操作 105
6.2.2 标准输入输出文件的定义 108
6.2.3 编程实例 108
6.3 文件属性操作 111
6.3.1 获得文件属性 111
6.3.2 修改文件存取权限 114
6.3.3 改变文件的属主和属组 115
6.4 目录操作 116
6.4.1 目录操作 117
6.4.2 浏览目录中的文件 119
6.5 标准I/O库 120
6.5.1 标准I/O库概述 120
6.5.2 文件操作 121
6.5.3 格式化输入与输出 124
6.5.4 刷新缓冲区 127
6.6 I/O重定向 129
6.6.1 文件描述符 129
6.6.2 I/O重定向 129
6.6.3 实现重定向的方法 129

第7章 Linux信号 133
7.1 信号概述 133
7.1.1 信号的概念 133
7.1.2 应用编程接口 133
7.2 Linux系统中的信号 134
7.2.1 Linux系统中的信号 134
7.2.2 信号的分类 136
7.2.3 Linux信号的产生 136
7.2.4 信号的处理方式 136
7.2.5 信号的处理流程 136
7.3 信号的定义 136
7.3.1 设置信号的行为 137
7.3.2 信号处理函数 139
7.3.3 定义多个信号 139
7.3.4 信号的阻塞 142
7.4 发送信号 143
7.5 计时器 146
7.5.1 睡眠延迟 146
7.5.2 间隔计时器 150

第8章 Linux进程 154
8.1 Linux进程概述 154
8.1.1 Linux进程 154
8.1.2 应用编程接口 155
8.2 进程的地址空间 155
8.2.1 进程的地址空间 155
8.2.2 环境变量相关操作 159
8.2.3 命令行参数的引用 160
8.2.4 动态内存管理 161
8.3 进程的创建与终止 162
8.3.1 创建进程 162
8.3.2 程序的启动与结束 164
8.4 加载可执行映像 167
8.4.1 ELF格式 167
8.4.2 可执行文件的加载 168
8.5 进程同步控制 173
8.5.1 等待子进程结束 173
8.5.2 等待指定子进程 176
8.6 Linux进程环境 179
8.6.1 用户和用户组 179
8.6.2 进程和进程组 180
8.6.3 会话 184
8.6.4 守护进程 185

第9章 Linux进程通信 187
9.1 进程通信概述 187
9.1.1 进程通信方式 187
9.1.2 应用编程接口 187
9.2 管道 188
9.2.1 无名管道 188
9.2.2 命名管道 192
9.3 IPC概述 193
9.4 信号量 193
9.4.1 创建信号量 194
9.4.2 获得与释放信号量 195
9.4.3 信号量的控制操作 197
9.5 消息队列 198
9.5.1 创建消息队列 199
9.5.2 发送消息 200
9.5.3 接收消息 201
9.5.4 设置消息队列属性 203
9.6 共享内存 206
9.6.1 创建共享内存 206
9.6.2 共享内存映射的建立与释放 207
9.6.3 设置共享内存属性 208

第 10章 I/O操作模式 212
10.1 I/O操作模式概述 212
10.1.1 I/O操作模式 212
10.1.2 应用编程接口 213
10.2 同步阻塞I/O模式 214
10.2.1 基本概念 214
10.2.2 存在的问题 214
10.2.3 解决方法 215
10.3 同步非阻塞I/O模式 215
10.3.1 基本概念 215
10.3.2 实现方法 216
10.4 多路复用I/O模式 218
10.4.1 基本概念 218
10.4.2 实现方法 219
10.5 信号驱动的I/O模式 221
10.5.1 基本概念 221
10.5.2 实现方法 221
10.6 异步I/O模式 223
10.6.1 基本概念 223
10.6.2 实现方法 223
10.7 内存的I/O映射 227
10.7.1 基本概念 227
10.7.2 实现方法 227
10.8 文件锁 229
10.8.1 文件锁的类型 229
10.8.2 基于flock函数实现文件锁 230
10.8.3 利用fcntl函数实现文件加锁 231
10.9 终端I/O 233
10.9.1 终端的行为模式 234
10.9.2 终端模式的设置 234
10.9.3 终端I/O的编程接口 236

参考文献 240

读者评论

赶紧抢沙发哦!

我要评论

同系列书

  • Java Web程序设计教程

    陈沛强 谷灵康 金京犬

    本书作为Java Web程序设计的大学教程,对Java EE编程技术进行了系统全面的介绍。全书共分14章。首先...

    ¥48.00
  • C++程序设计——思想与方法 慕课版(第3版)

    翁惠玉 俞勇

    本书以C++语言为环境,重点讲授程序设计的思想和方法,包括过程化的程序设计和面向对象的程序设计,且本书非常强调...

    ¥49.80
  • 网页设计与制作(附微课视频 第2版)

    雷伟军

    本书依据教育部高等学校计算机基础课程教学指导委员会提出的《关于进一步加强高校计算机基础教学的意见》中有关“网页...

    ¥45.00
  • 数据结构与算法分析(C++语言版)

    张琨 张宏 朱保平

    本书共分10章,主要包括第1章绪论,第2章线性表,第3章栈和队列,第4章串,第5章数组和广义表,第6章 树和二...

    ¥45.00
  • 多媒体技术及应用

    李小英 谷长龙 段伟 蔡益红

    本书全面系统地介绍了多媒体技术的基础知识与应用软件的使用。全书共5章。第1章多媒体技术概论讲述了多媒体技术的基...

    ¥39.00

相关图书

人邮微信
本地服务
教师服务
教师服务
读者服务
读者服务
返回顶部
返回顶部