前言页 1
前言 1
第一部分 Linux编程初学者入门 7
第一章 Linux的编程步聚 9
1.1 写一个Linux程序 9
1.1.1 Linux程序的设计周期 10
1.1.2 设计用户界面 11
1.1.3 检查用户界面对象 12
1.1.4 编写Linux代码 13
1.2 给Linux程序命名 14
1.3 运行Linux程序 15
1.3.1 用chmod形成一个可执行文件 15
1.3.2 chmod711的确切涵义 16
1.4 Linux shell脚本语言与其他语言的区别 17
1.4.1 Linux实用程序 17
1.4.2 Linux 每次读一行、转换一行和执行一行 17
1.4.3 Linux可以在后台运行 18
1.4.4 在Linux中使用子程序 19
第二章 设计第一个用户界面 23
2.1 计划一下需要用户做些什么 25
2.2 计划一下想让计算机做些什么 26
2.3 定制屏幕菜单 27
2.3.1 理解菜单的作用 27
2.3.2 保持用户界面的一致性 27
2.3.3 请仔细推敲菜单选项的用词 28
2.3.4 裁剪菜单树 29
2.3.6 避免菜单中的死结 30
2.3.5 保持程序的灵活性 30
2.3.7 程序在线帮助 31
第三章 编写第一个Linux程序 33
3.1 写Linux程序之前的准备工作 33
3.1.1 拟定程序计划纲要 34
3.1.2 程序计划要有逻辑性 35
3.1.3 保持良好的程序计划编制习惯 36
3.1.4 将大程序化整为零 36
3.1.5 查找重复代码 36
3.2 将程序计划翻译成Linux代码 38
3.2.1 逐行翻译程序计划 39
3.2.2 把程序计划与Linux代码对应起来 39
3.3 选择Linux Shell 40
3.3.1 bash shell 41
3.3.2 C shell 41
3.3.3 Kom shell 41
3.3.4 Perl shell 42
3.5 建议选用bash shell 43
3.4 选择Linux shell 43
3.6 选用文本编辑器 44
3.6.1 建议选用vi 44
3.6.2 启动vi 44
3.6.3 避免使用vi常发生的错误 47
3.6.4 退出vi并保存所做的修改 47
3.7 写第一个Linux程序 47
3.7.1 写一个显示菜单的程序 48
3.7.2 保存程序 49
3.7.3 运行程序 49
3.7.4 修改程序 50
第二部分 Linux编程基础 51
第四章 变量 53
4.1 理解什么是数据 53
4.1.1 字符串(string) 54
4.1.2 数(number) 54
4.2 理解什么是变量和值 54
4.2.1 变量分类 55
4.2.2 声明变量 55
4.2.5 给变量命名 56
4.2.3 放置变量 56
4.2.4 合并多个变量 56
4.2.6 将数赋给变量 58
4.2.7 将字符串赋给变量 58
4.2.8 将一个变量赋给其他变量 59
4.3 使用数据类型 59
4.4 变量的作用范围 60
第五章 与用户交流信息 63
5.1 键盘输入 63
5.1.1 读一个字符串 64
5.1.3 混合输入字符串和数 65
5.1.2 读一个数 65
5.2 显示用户输入的数据 66
5.2.1 显示字符串 67
5.2.2 显示一个数 68
5.2.3 显示字符串和数 68
5.3 把数据存入文件 69
5.3.1 将数据存入一个新文件 69
5.3.3 显示存入文件中的数据 71
5.3.2 向文件中添加数据 71
第六章 Linux运算符 73
6.1 算术运算符 73
6.1.1 加运算符(+) 74
6.1.2 减运算符(-) 74
6.1.3 乘运算符(*) 75
6.1.4 除运算符(/) 75
6.1.5 取余运算符(%) 75
6.2 逻辑运算符 76
6.2.2 与运算符( ) 77
6.2.3 或运算符(||) 77
6.2.1 非运算符(!) 77
6.3 比较运算符 78
6.3.1 等于运算符(-eq) 78
6.3.2 不等于运算符(-ne) 79
6.3.3 大于运算符(-gt) 80
6.3.4 大于或等于运算符(-ge) 80
6.3.6 小于或等于运算符(-le) 81
6.3.5 小于运算符(-lt) 81
第三部分 Linux条件控制语句 83
第七章 if、if else和if elif语句 85
7.1 条件 85
7.1.1 用变量表示的条件 86
7.1.2 用表达式表示的条件 86
7.2 if语句 87
7.3 if else语句 88
7.4 if elif语句 90
7.4.1 用if elif语句进行多重选择 91
7.4.2 保证Linux至少执行一组指令 92
第八章 case语句 95
8.1 case语句 96
8.2 case语句中的默认情况 97
8.3 case语句在用户界面中的应用 98
第九章 多层嵌套控制结构 101
9.1 if嵌套结构 101
9.2 case套结构 102
9.3 用缩进格式书写嵌套结构 102
第四部分 Linux循环控制语句 105
第十章 while循环 107
10.1 确定是否使用while循环 108
10.2 while循环在Linux代码中的使用 108
10.2.1 while循环在菜单中的应用 109
10.2.2 while在计时循环中的应用 111
10.2.3 while循环在信息制作中的应用 111
10.3 避免死循环 112
第十一章 for in循环 115
11.2 怎样使用for in循环 116
11.1 什么时侯使用for in循环 116
11.3 使用单词表 118
第十二章 循环嵌套与快速退出 121
12.1 使用嵌套循环 121
12.2 用缩进格式书写嵌套循环 122
12.3 避免死循环 124
12.4 在循环中使用break和continue 126
12.4.1 使用break快速退出 126
12.4.2 使用continue到达循环的开始 127
第五部分 子程序 129
第十三章 函数 131
13.1 创建一个函数 132
13.2 调用一个函数 133
13.3 给函数传递参数 134
13.3.1 验证传递给函数的参数的个数 135
13.4 与子程序共享函数 136
13.5 从函数返回信息 137
第十四章 子程序 141
14.2 用程序框图来拟订程序计划 142
14.1 为什么使用子程序 142
14.2.1 采用分治计划法 143
14.2.2 向程序框图中添加任务 143
14.2.3 细化流程图 145
14.2.4 链接流程图中的子程序 146
14.3 用流程图创建Linux子程序 148
14.3.1 如何创建子程序 148
14.3.2 给子程序选取一个适当的名字 150
14.4 与他人共享子程序 151
14.3.3 如何使用子程序 151
第十五章 参数传递 153
15.1 为什么使用参数 153
15.2 传递参数 155
15.3 接收参数 156
15.4 传递多个参数 157
15.5 参数传递中常出现的问题 158
15.5.1 问题之一:参数的个数不正确 158
15.6 参数是否存在 159
15.5.2 问题之二:参数类型不正确 159
第六部分 数据库程序设计与打印 163
第十六章 数据库程序设计 165
16.1 什么是数据 165
16.2 什么是文件 166
16.2.1 在文件中保存信息 166
16.2.2 在文件中添加信息 166
16.2.3 显示文件中的信息 167
16.3 文件与数据库 167
16.5.1 行与列 168
16.4 数据库与数据库管理系统 168
16.5 创建数据库 168
16.5.2 向数据库中存入信息 169
16.6 用iv查找数据库中的信息 169
16.6.1 启动vi 169
16.6.2 vi中的搜索方法 170
16.7 用实用程序gawk来查找数据库中的信息 170
16.7.1 建立搜索表达式 170
16.7.3 留心空格 171
16.7.2 匹配字符 171
16.7.5 选择要匹配的列 172
16.7.4 仅匹配记录的起始部分 172
16.7.6 模式不匹配 173
16.7.7 将信息析取至另外的文件 173
16.7.8 从文件中删除信息 173
16.7.9 在屏幕上显示信息 174
第十七章 数据库打印 177
17.1 lp服务 177
17.3 打印文件 178
17.2 打印文本 178
17.4 打印数据库 179
17.4.1 避免重复搜索 180
17.4.2 打印数据前的注释 181
17.4.3 打印数据后的注释 181
第七部分 调式程序 183
第十八章 在Linux程序中使用注释 185
18.1 如何使用注释 185
18.2 有关注释的内容 186
18.3 如何使注释易于阅读 187
18.4 如何使指令失效 188
第十九章 消灭程序中的“臭虫” 191
19.1 什么是“臭虫” 191
19.1.1 “臭虫”是怎么出现的 192
19.1.2 永不言败 192
19.2 跟踪程序的执行过程 193
19.2.1 校对代码 193
19.2.2 在程序运行时检查代码 195
19.3 设置陷阱捕捉“臭虫” 196
19.3.1 设置标记 196
19.3.2 显示隐藏值 198
19.3.3 使用文件帮助查找问题 199
19.3.4 关停部分程序 199
19.3.5 手工运行部分程序 201
第八部分 E-mail程序设计 203
第二十章 Linux下的E-mxil 205
20.1.1 通往lnternet的路径 206
20.1.2 虚拟lnternet网 206
20.1 理解什么是E-mail 206
20.2 创建新用户 207
20.2.1 根用户 207
20.2.2 用户ID和密码 208
20.2.3 添加新用户 208
20.2.4 验证新的用户ID 210
20.2.6 退出 211
20.3 使用实用程序mail 211
20.2.5 用户E-mail地址 211
20.3.1 创建E-mail 212
20.3.2 发送E-mail 212
20.3.3 阅读E-mail 214
20.3.4 给朋友发E-mail 214
20.4 E-mail进阶 215
20.4.1 插入标题 216
20.4.2 插入多个地址 217
20.4.3 插入抄件地址 217
20.4.4 插入密抄件地址 218
20.4.5 在E-mail中插入所有特征 219
第二十一章 E-mail程序设计 221
21.1 从程序中发送E-mail 221
21.2 给E-mail程序传递一个参数 223
21.2.1 传递E-mail正文 223
21.2.2 传递目的的地址 225
21.2.3 传递抄件地址 225
21.2.4 传递密抄件地址 226
21.2.5 传递标题 227
21.3.1 改变E-mail标题与正文 228
21.3 给E-mail程序传递多个参数 228
21.3.2 改变标题、E-mail正文及目的地址 229
21.4 覆盖E-mail的默认值 231
21.4.1 插入默认值 231
21.4.2 覆盖默认值 232
21.4.3 使用开关确认参数 233
21.4.4 地址循环 235
第九部分 十准则集萃 239
第二十二章 十个最有用的Linux实用程序 241
22.2 格式化打印:troff 242
22.1 获取详细资料 242
22.3 拼写错误检查:spell 243
22.4 对文件中的信息(行)排序:sort 244
22.5 比较两个文件之间行的差异:diff 245
22.6 比较两个文件:cmp 245
22.7 对大型文件的修改:sed 246
22.8 拆分大型文件:split 247
22.9 查找文件中的信息:grep 248
22.10 发送电子文件:ftp 248
22.11 裁剪数据库中的域:cut 249
第二十三章 获取Linux编程信息的十大来源 251
23.1 回到本地高校的课堂中 251
23.2 参加学术会议 252
23.3 访问Yahoo! 252
23.4 在因特网上查找新闻组 252
23.5 查阅在线文档 253
23.8 参加或创立一个Linux编程俱乐部 254
23.9 到本地大学的计算机实验室寻求技术帮助 254
23.7 订阅计算机杂志 254
23.6 阅读其他价绍Linux的书刊 254
23.10 给发表过Linux编程方面文章的作者发E-mail 255
第二十四章 有关Linux编程的其他十类相关专题 257
24.1 创建后台作业程序 257
24.2 在紧急情况下终止程序运行 258
24.3 分享shell变量 259
24.4 别让他人修改源代码 260
24.5 在Windows和Linux间拷贝文件 260
24.6 查找丢失的文件 261
24.7 如何存储程序 262
24.8 修改文件中的字符 263
24.9 维护程序代码 264
24.10 暂停程序 264
第十部分 附录 265
附录A 词汇 267
附录B 文本编辑器vi 277
附录C shell转换 291
附录D 练习题 295
附录E 下载范例源代码 315