1.1 简介 1
2.6.10确定文件大小 4 1
1.2 UNIX和LINUX操作系统简史 1
目录 1
第1章 LINUX和UNIX基础 1
第Ⅰ部分 有效地使用LINUX和UNIX 1
1.3 登录与退出过程 3
1.4 LINUX/UNIX shell 5
1.4.1 shell的搜索路径 5
1.4.2各种shell的位置 6
1.4.3选择符合需要的shell 7
1.4.4改变shell的各种方式 7
1.4.5 shell启动文件与环境变量 8
1.5一些重要的系统设置 10
1.6对初学者有用的通用命令 11
1.6.2显示文本文件 12
1.6.4显示目录 12
1.6.3创建目录 12
1.6.1 显示当前时间和日期 12
1.6.5显示当前目录或主目录的名称 13
1.6.6 改变目录 13
1.6.7删除目录 14
1.6.8打印文件 14
1.6.9获得帮助 15
1.6.10更改密码 16
1.6.11 查看命令历史记录 17
1.6.12显示日历 17
1.6.13显示系统运行时间 18
1.7 shell元字符 18
1.8 Web资源 19
1.9小结 20
1.10 问题 20
第2章文件和文件处理 22
2.1 简介 22
2.2 LINUX/UNIX中的文件 23
2.3 文件系统结构 23
2.3.1 文件系统的组织 23
2.3.2绝对路径名和相对路径名 24
2.3.3主目录和当前工作目录 25
2.3.4搜索路径 25
2.4 LINUX中的一些标准目录和文件 25
2.5 目录操作以及文件系统结构浏览 29
2.5.1创建和删除目录 29
2.5.2移动和复制目录 30
2.5.3 浏览文件系统结构并列出目录 30
2.6 文件处理 32
2.6.1 创建文件 32
2.6.2显示某个文件的文件类型和数据类型 32
2.6.4每次查看一页文件 34
2.6.3查看完整的文件 34
2.6.5 查看文件的头部或尾部 36
2.6.6显示NIS数据库 37
2.6.7 复制文件 38
2.6.8文件的移动和重命名 39
2.6.9移除/删除文件 40
2.6.11追加文件 42
2.6.12合并文件 43
2.6.13 比较文件 43
2.6.14压缩文件 45
2.6.15搜索文件和命令 48
2.6.16搜索文件 51
2.7 小结 53
2.8 问题 54
3.2标准文件、文件描述符和标准文件的重定向 57
3.1 简介 57
第3章输入输出重定向 57
3.3输入、输出和错误重定向 58
3.3.1输入重定向 58
3.3.2 输出重定向 59
3.3.3错误重定向 59
3.3.4在一个命令中进行标准输入、标准输出和标准错误的重定向 60
3.3.5给文件追加数据 62
3.4 LINUX/UNIX过滤器和管道 63
3.5 重定向与管道的组合 64
3.6 小结 65
3.7 问题 66
第4章打印机控制 68
4.1 简介 68
4.2 LINUX/UNIX文件打印机制 68
4.4 打印文件 69
4.3打印机控制命令 69
4.5查找打印请求的状态 70
4.6显示系统中的打印机名称 71
4.7取消打印作业 72
4.8打印机控制 73
4.9 小节 74
4.10 问题 74
5.2基于访问权限的文件保护 76
5.2.1用户类型 76
5.1 简介 76
第5章文件安全 76
5.2.2文件操作/访问权限的类型 77
5.2.3默认文件访问权限 78
5.2.4确定文件访问权限 79
5.2.5更改文件访问权限 80
5.3特别访问位 84
5.3.1 SUID位 84
5.3.2 SGID位 85
5.3.3粘滞位 86
5.4文件权限和类型 87
5.5 小结 87
5.6 问题 88
第6章 LINUX/UNIX进程 90
6.1 简介 90
6.2进程、作业以及守护进程 91
6.3进程和作业控制 91
6.3.1 显示进程属性 92
6.3.2前台、后台和悬挂进程 95
6.3.3显示作业 96
6.3.4挂起和继续执行shell进程 97
6.3.5按序运行命令和同时运行命令 97
6.3.6命令和进程的非正常终止 98
6.4 LINUX/UNIX中的进程层次 100
6.5 在LINUX/UNIX中显示进程属性 101
6.6 小结 102
6.7 问题 102
第7章文件系统的备份与恢复 104
7.1 简介 104
7.2用tar归档和恢复文件 104
7.2.1 归档文件 105
7.2.2恢复归档文件 107
7.2.3复制目录层次 108
7.3 用tar格式发布软件 109
7.4 小结 110
7.5 问题 110
第Ⅱ部分 LINUX/UNIX平台上的软件开发 111
第8章程序开发过程 111
8.1 简介 111
8.2计算机编程语言概述 111
8.3.1 编程语言 113
8.3 编程语言和编程范式 113
8.3.2编程范式 114
8.4编译过程 114
8.5解释过程 115
8.6 C、C++和Java程序的编译 115
8.7软件工程的生命周期 116
8.8 Web资源 116
8.9 小结 117
8.10 问题 118
第9章代码生成工具 119
9.1 简介 119
9.2生成程序源文件 119
9.3源代码的缩排 119
9.4 编译C/C++程序 122
9.4.1编译多个源文件 125
9.4.2链接库 126
9.4.3优化可执行代码 128
9.4.4在命令行中定义宏 128
9.4.5关闭编译、汇编或链接 130
9.5 编译C++程序 130
9.6编译Java程序 131
9.7灾难性编译程序命令和典型的编译时错误 132
9.8编译和解释其他编程语言的程序 133
9.9 Web资源 133
9.10小结 133
9.11 问题 134
第10章 多模块软件的编译和链接 135
10.1 简介 135
10.2 make实用程序 135
10.2.1 Makefile和MakeRules 136
10.2.2多模块软件、依赖树和make 138
10.2.3后缀(默认)规则 142
10.2.4 make实用程序对宏的支持 144
10.2.5 内建宏 145
10.2.6虚目标 147
10.2.7特殊目标 149
10.2.8 一般性语法错误及其纠正措施 150
10.2.9命令行的使用和调试 151
10.3Web资源 151
10.4小结 152
10.5 问题 152
第11章库的开发、调试和使用 154
11.1 简介 154
11.2库的使用 154
11.3 ar实用程序 156
11.3.1创建和追加归档 158
11.3.4从归档中提取目标模块 159
11.3.3从归档中删除目标模块 159
11.3.2 显示目录 159
11.3.5排序归档 161
11.3.6库的安装 161
11.4 nm实用程序 162
11.5 Web资源 166
11.6小结 166
11.7问题 167
第1 2章源代码调试 169
12.1 简介 169
12.2源代码调试 170
12.2.1使用printf或cout 170
12.2.2使用调试工具 170
12.3调试过程 170
12.4 GNU调试器gdb 171
12.5调试进程 182
12.7用gdb调试Java程序 184
12.6用核心文件运行崩溃程序 184
12.8在Emacs下使用gdb 185
12.9软件测试 185
12.10 Web资源 186
12.11小结 187
12.12问题 187
13.1简介 189
13.2软件度量及作用 189
第13章软件剖析和度量 189
13.3 剖析C/C++程序 190
13.3.1使用gprof的步骤 191
13.3.2分析gprof的输出结果 193
13.4优化软件 197
13.5 软件度量:大小和运行时间 197
13.5.1 源代码和可执行程序的大小 197
13.5.2程序的运行时间 199
13.7小结 200
13.6 Web资源 200
13.8问题 201
第14章RCS和CVS的版本控制 202
14.1 简介 202
14.2版本控制系统(RCS) 203
14.2.1使用RCS 203
14.2.2创建RCS历史文件 203
14.2.3检出RCS文件 204
14.2.4新建文件版本 205
14.2.5检出特定版本的副本 206
14.2.6放弃更改 207
14.2.7不覆盖锁定文件(小心出错) 208
14.2.8删除一个版本 209
14.2.9在组内工作 209
14.2.10显示RCS文件的历史 210
14.2.12显示版本之间的区别 212
14.2.11 解锁 212
14.2.13合并版本 213
14.2.14限制对RCS的访问权限 214
14.2.15 RCS特殊字符序列 216
14.2.16各类RCS实用程序 217
14.2.17在emacs中使用RCS 217
14.2.18超出RCS 217
14.3 并发版本系统(CVS) 217
14.3.1 CVS命令语法 218
14.3.2显示CVS帮助 218
14.3.3创建源码存储库 220
14.3.4将源码引入到源码存储库 221
14.3.5检出源文件 223
14.3.6更改源文件并提交更改 224
14.3.7在存储库中添加新文件和新目录 226
14.3.8 删除源码存储库中的文件和目录 227
14.3.9冻结和提取版本 228
14.3.10显示区别 229
14.3.11显示日志历史 229
14.3.12 CVS特殊字符序列 229
14.3.13完成后的清理工作 231
14.3.14远程存储库和通过客户端访问它们 231
14.3.1 5在emacs中使用CVS 232
14.3.16 CVS的重要方面 232
14.3.17获得和安装CVS 232
14.4 Web资源 233
14.5 小结 234
14.6 问题 234
第Ⅲ部分附 录 236
附录A使用vi和pico编辑文本文件 236
附录B电子邮件 241
术语表 245