书籍详情

Linux操作系统应用编程

Linux操作系统应用编程

作者:刘玓,陈佳,肖堃,丁熠 著

出版社:人民邮电出版社

出版时间:2021-04-01

ISBN:9787115559753

定价:¥59.80

购买这本书可以去
内容简介
  本书从原理性和实用性出发,从初学者的角度全面而详细介绍了Linux操作系统的基本概念和常用命令的使用。阐述的内容都是针对初学者完成日常工作所必需的各个方面,包括Linux的基本概念、常用命令、文件系统、屏幕编辑器、进程管理、shell程序设计、数据管理工具、集成编译工具、系统调用接口与应用程序开发、进程间通信和线程控制等,最后给出了一组综合设计实验。本书各章都有大量的实例讲述,各章末尾也有练习题,可帮助读者由浅入深、循序渐进地学习Linux操作系统,理论联系实际,快速上手实践,逐步达到熟练掌握Linux操作系统的使用技巧以及提高应用开发能力的目的。
作者简介
  本书编写组成员现为电子科技大学信息与软件工程学院操作系统课程组教师,长期从事与操作系统密切相关的教学、科研、应用开发和社会服务等方面的工作,主要研究领域包括操作系统、大型机系统、数据处理、云计算、嵌入式系统等。编写组成员曾先后参加完成了国家“六五”“七五”和“八五”科技攻关项目,对UNIX操作系统的内核有深入的了解,属于国内最早一批从事该领域研究的人员。此后又参加完成多项涉及金融、航空、通信、铁路、地质和生产制造等领域的应用开发工作,在UNIX/Linux操作系统应用方面积累了丰富的经验。编写组成员长期讲授“操作系统基础”“UNIX/Linux操作系统内核结构”“UNIX/Linux操作系统基础”“基于UNIX/Linux操作系统的编程技术”和“嵌入式系统”等课程,具有丰富的操作系统类课程的教学经验。2004年编写组成员参与的“计算机操作系统系列课程改革与建设”获电子科技大学优秀教学成果奖;2005年“计算机操作系统”课程被评为四川省精品课程;2006年“计算机操作系统”课程被评为***精品课程。多人次获得电子科技大学优秀主讲教师、专业核心课程骨干教师等称号。编写组成员参与完成了***教改项目“大型主机应用型创新人才培养模式的研究与实践”,参与组建了国内高校第一个大型主机系,率先系统地开设了“大型机操作系统”“z/Linux操作系统”“AIX操作系统”“大型机系统”和“大型机应用基础”等课程,并承担完成了多门“教育部-IBM精品课程”建设任务。
目录
第1章 Linux操作系统基础 1
1.1 引言 1
1.1.1 什么是Linux 1
1.1.2 Linux的发展历程 1
1.1.3 Linux操作系统的组成 2
1.1.4 Linux操作系统的版本 4
1.2 Linux操作系统的运行模式与功能特征 5
1.2.1 Linux操作系统的运行模式 5
1.2.2 Linux操作系统的功能特征 5
1.3 用户与登录 6
1.3.1 Linux用户管理 6
1.3.2 登录系统 7
1.4 Linux命令基础 7
1.4.1 简单命令 7
1.4.2 通用命令格式 8
1.4.3 命令行更正和程序终止 8
1.4.4 联机手册 8
1.5 文件与进程 8
1.6 练习 9
第2章 Linux文件系统 11
2.1 文件系统的结构 11
2.1.1 组织结构 11
2.1.2 起始目录与当前工作目录 11
2.1.3 路径名 12
2.1.4 标准目录与文件 12
2.2 文件的定义与分类 13
2.2.1 文件的定义 13
2.2.2 文件的分类 13
2.3 目录操作命令 14
2.3.1 创建目录 14
2.3.2 删除目录 15
2.3.3 修改当前目录 15
2.3.4 查看当前目录 15
2.3.5 列出指定目录 15
2.4 文件操作命令 17
2.4.1 显示文件内容 17
2.4.2 复制文件 17
2.4.3 移动文件 18
2.4.4 删除文件 18
2.4.5 打印文件 18
2.4.6 格式化输出文件 18
2.4.7 链接文件 18
2.4.8 基本实用程序 19
2.5 文件的权限管理 20
2.5.1 文件的权限种类 20
2.5.2 文件权限的检测与修改 21
2.5.3 文件所有权的修改 21
2.6 文件名置换 21
2.7 练习 22
第3章 vi编辑器 23
3.1 vi编辑器概述 23
3.1.1 vi编辑器的基本工作流程 23
3.1.2 vi编辑器的工作模式 23
3.2 vi编辑器的屏编工作模式 24
3.2.1 命令模式 24
3.2.2 文本输入模式 24
3.3 屏编vi的使用方法 24
3.3.1 vi的启动与退出 24
3.3.2 vi的常用命令 25
3.4 行编edit的使用方法 26
3.4.1 进入行编 26
3.4.2 退出行编 27
3.4.3 行编的常用命令 27
3.5 vi命令的选项 28
3.6 练习 28
第4章 Shell的交互功能和进程管理 30
4.1 Shell的功能与分类 30
4.1.1 Shell的功能简介 30
4.1.2 Shell的分类 30
4.1.3 Shell的启动和执行过程 31
4.1.4 Shell可识别的命令类型 32
4.2 Shell的内部命令 34
4.3 标准输入/输出重定向 36
4.3.1 标准输入/输出 36
4.3.2 标准输入重定向 37
4.3.3 标准输出重定向 38
4.3.4 标准错误输出重定向 39
4.3.5 管道 40
4.4 Shell的变量 40
4.4.1 Shell的环境变量 40
4.4.2 Shell的系统变量 43
4.4.3 Shell的用户自定义变量 45
4.4.4 清除变量 45
4.5 Shell的引用符 45
4.5.1 双引号的使用 46
4.5.2 单引号的使用 46
4.5.3 反撇号的使用 47
4.5.4 花括号的使用 47
4.6 进程的状态和监控 47
4.6.1 进程的状态及其转换 48
4.6.2 获取进程状态信息命令ps 49
4.6.3 暂停进程运行命令sleep 50
4.6.4 作业控制命令fg和jobs 50
4.6.5 终止进程运行命令kill 52
4.7 练习 54
第5章 Shell程序设计 55
5.1 Shell编程语言简介 55
5.1.1 编写Shell脚本的基本过程 55
5.1.2 执行Shell脚本 56
5.2 Shell语句的分类 57
5.2.1 说明性语句 58
5.2.2 功能性语句 58
5.2.3 结构性语句 61
5.3 Shell的结构性语句 61
5.3.1 测试语句test 61
5.3.2 条件语句if…then…fi 62
5.3.3 条件语句if…then…else…fi 63
5.3.4 多路分支语句case…esac 64
5.3.5 循环语句for…do…done 65
5.3.6 循环语句while…do…done 66
5.3.7 循环语句until…do…done 67
5.3.8 循环控制语句continue和break 68
5.4 Shell函数 69
5.5 命令组的应用规则与限制 71
5.5.1 Shell命令组的标准输出重定向 71
5.5.2 Shell命令组的标准输入重定向 72
5.5.3 while命令组的循环条件 74
5.6 练习 74
第6章 数据查找和筛选工具 76
6.1 正则表达式 76
6.1.1 正则表达式的定义 76
6.1.2 正则表达式中的元字符 77
6.1.3 正则表达式应用示例 77
6.2 流编辑器sed简介 78
6.2.1 什么是流编辑器 78
6.2.2 sed命令的基本格式 79
6.2.3 sed命令中的行编命令基本格式 79
6.2.4 sed命令的出错信息和退出状态 80
6.2.5 sed命令应用示例 81
6.3 数据处理器awk简介 82
6.3.1 数据记录和数据域 82
6.3.2 awk命令的基本格式 83
6.3.3 格式化输出 84
6.3.4 awk的命令文件 85
6.4 练习 85
第7章 多模块链接与集成编译工具GNU make 87
7.1 多模块程序设计 87
7.1.1 多模块程序的常见自动构建系统 91
7.1.2 基于GNU make的构建系统 93
7.2 make程序的基本功能和运行流程 95
7.2.1 GNU make是如何工作的 95
7.2.2 指定Makefile 95
7.2.3 Makefile概述 95
7.2.4 指定目标 96
7.2.5 控制make执行的函数 96
7.2.6 make支持的选项及退出码 97
7.3 Makefile规则 98
7.3.1 规则的格式 99
7.3.2 在规则中使用通配符 100
7.3.3 文件搜寻 100
7.3.4 伪目标 101
7.3.5 自动生成依赖性 102
7.4 在Makefile中执行命令 104
7.4.1 显示命令 104
7.4.2 命令执行顺序 104
7.4.3 命令出错 105
7.4.4 嵌套执行make 105
7.5 变量定义和使用 106
7.5.1 变量的基础 107
7.5.2 变量中的变量 107
7.5.3 使用条件判断 109
7.6 练习 110
第8章 文件管理与输入/输出调用 112
8.1 虚拟文件系统 112
8.1.1 基本概念 112
8.1.2 文件系统在存储设备上的表现形式 113
8.1.3 虚拟文件系统涉及的内核对象 114
8.1.4 内核对象间的联系 118
8.1.5 虚拟文件系统的典型系统调用 119
8.2 文件I/O 123
8.2.1 打开文件 124
8.2.2 创建文件 125
8.2.3 关闭文件 125
8.2.4 文件读写位置 125
8.2.5 读文件 126
8.2.6 写文件 127
8.3 文件和目录的属性与权限 127
8.3.1 获取当前工作目录路径 128
8.3.2 读取目录文件 128
8.3.3 获取与解析文件属性 130
8.3.4 文件和目录访问权限 133
8.3.5 创建与删除目录 133
8.4 练习 134
第9章 进程控制 136
9.1 运行环境和进程的标识 136
9.1.1 进程基本概念 136
9.1.2 进程描述符 136
9.2 进程的创建和退出 140
9.2.1 进程的创建 140
9.2.2 进程的退出 145
9.3 进程的等待与睡眠 147
9.3.1 wait函数 147
9.3.2 waitpid函数 148
9.4 进程的执行 150
9.4.1 exec函数簇 150
9.4.2 进程的执行与文件共享 153
9.5 进程的属性修改 156
9.5.1 进程USERID的修改 156
9.5.2 进程GROUPID的修改 158
9.6 进程的调度 158
9.6.1 基本概念 158
9.6.2 进程调度的时机与方式 160
9.6.3 常用的进程调度算法 161
9.6.4 进程调度策略 165
9.6.5 主要函数 167
9.7 练习 175
第10章 进程间通信 177
10.1 管道 177
10.1.1 基本概念 177
10.1.2 使用管道 178
10.1.3 创建和关闭管道 182
10.1.4 从管道中读取数据和向管道中写入数据 183
10.2 信号灯 187
10.2.1 信号灯概述 187
10.2.2 信号灯与内核 187
10.2.3 操作信号灯 188
10.2.4 信号灯限制 190
10.2.5 竞争问题 191
10.3 消息队列 191
10.3.1 什么是消息队列 191
10.3.2 消息队列类型 192
10.3.3 消息队列相关函数 194
10.3.4 如何利用消息队列进行客户端和服务器的通信 196
10.4 共享存储 199
10.4.1 什么是共享存储 199
10.4.2 获得共享存储函数 200
10.4.3 删除共享存储段 203
10.4.4 如何将进程挂接到共享存储上 203
10.4.5 如何查看系统的共享存储资源 204
10.4.6 信号量 205
10.5 练习 209
第11章 线程及线程控制 211
11.1 什么是线程 211
11.2 线程的创建和终止 212
11.2.1 线程的创建 212
11.2.2 线程的终止 213
11.3 线程的同步与互斥 214
11.3.1 基本概念 214
11.3.2 死锁 214
11.3.3 互斥量 216
11.4 线程的属性与限制 218
11.4.1 线程的属性 218
11.4.2 线程的限制 219
11.5 Linux操作系统下的多线程编程 220
11.5.1 概念介绍 220
11.5.2 多线程的实现 220
11.5.3 线程之间的数据处理 222
11.6 练习 229
第12章 综合实验 230
12.1 设备驱动程序与设备文件 230
12.2 Linux操作系统设备类型 231
12.3 Linux操作系统设备驱动的特性 233
12.4 Linux操作系统设备驱动程序的组成部分 233
12.5 Linux内核模块与设备驱动程序开发实验 234
12.5.1 实验目的 234
12.5.2 实验原理 234
12.5.3 实验步骤 236
12.6 Linux操作系统字符设备驱动程序开发实验 237
12.6.1 实验目的 237
12.6.2 实验原理 237
12.6.3 实验步骤 242
12.7 Linux操作系统块设备驱动程序开发实验 243
12.7.1 实验目的 243
12.7.2 实验原理 243
12.7.3 实验步骤 250
参考文献 251
猜您喜欢

读书导航