第1章 Linux知识快线 1
1.1 Linux概述 1
1.2 Linux的发行版本与学习乐园 2
1.2.1 Linux的发行版本 2
1.2.2 Linux的学习乐园 3
1.3 Linux的特点与优势 4
1.3.1 Linux的特点 4
1.3.2 Linux的发展优势 6
1.4如何学习Linux及其程序设计 7
1.4.1学习基本理念 7
1.4.2掌握50个常用命令 8
1.4.3勤学多练学编程 9
第2章 Linux多元化安装技术 12
2.1基本名词与术语 12
2.1.1系统操作术语 12
2.1.2系统特性术语 14
2.2硬件需求 16
2.3安装准备 16
2.4 Linux系统的多元化安装技术 17
2.4.1裸机上的安装与卸载过程图解 17
2.4.2多系统共享安装过程 44
2.4.3在Windows下VMware中的Linux安装过程 45
2.4.4在Windows下Virtual PC中的Linux安装过程 48
2.4.5用Cygwin软件创建Linux仿真环境 51
2.4.6制作无安装直接使用系统Ubuntu Linux 54
2.5 Linux的启动过程 57
2.5.1启动内核 57
2.5.2执行init程序 58
2.6 Linux的系统服务命令列表 60
2.7 Linux下软件的安装与卸载 62
2.7.1二进制分发软件包的安装与卸载 62
2.7.2源代码分发软件包的安装与卸载 64
第3章 Linux应用技术 66
3.1 Linux常用基本命令分类解析 66
3.1.1系统管理类命令 66
3.1.2文件与目录操作类命令 71
3.1.3使用光盘及软盘类命令 86
3.1.4在后台运行程序的命令 86
3.1.5任务调度类命令 87
3.1.6打包与压缩解压缩命令 87
3.1.7进程查看命令 89
3.1.8控制提示符与命令组合 94
3.1.9常用维护命令 96
3.1.10 Linux命令速成与晋阶 100
3.2系统操作与维护技术 102
3.2.1如何进入字符模式 102
3.2.2解决“/etc/inittab”设置错误无法启动问题 103
3.2.3帮助命令 103
3.2.4取消Ctrl+Alt+Del重启系统功能 103
3.2.5处理字符模式下中文信息乱码问题 104
3.2.6如何查看存储介质中的中文文件名 104
3.2.7如何通过切换目录方式退出光盘 104
3.2.8允许普通用户加载光盘或软盘的策略 104
3.3 Linux系统管理技术 105
3.3.1账号管理 105
3.3.2磁盘空间管理 107
3.3.3文件系统与权限设置 110
3.4 vi与vim的应用 113
3.4.1 vi和vim简介 113
3.4.2基本操作 114
3.4.3查找和替换 119
第4章 shell编程 122
4.1 shell概述 122
4.1.1 shell的定义 123
4.1.2 shell的类型与版本 123
4.1.3第一个shell程序 125
4.1.4 shell命令集成 127
4.1.5 shell特殊字符 128
4.2 bash应用基础 130
4.2.1 bash脚本的基本语法 130
4.2.2 bash的命令记录功能 130
4.2.3 bash脚本基础范例 132
4.2.4 bash配置 134
4.3 shell基本命令 137
4.3.1内部命令 138
4.3.2外部命令 138
4.3.3命令分组 139
4.3.4函数 139
4.4 shell变量 141
4.4.1 bash变量的特点 141
4.4.2用户自定义变量 142
4.4.3变量的类型声明 144
4.4.4数组变量 144
4.4.5变量的引用 145
4.4.6键盘赋值变量 146
4.4.7位置变量 147
4.4.8预定义特殊变量 148
4.4.9环境变量 149
4.4.10置换变量 150
4.4.11算术运算 150
4.5 shell程序控制结构 151
4.5.1条件测试语句 151
4.5.2条件语句if 156
4.5.3开关语句case 159
4.5.4循环语句for 162
4.5.5循环语句while 165
4.5.6循环语句until 167
4.5.7循环控制命令break和continue 168
4.5.8流程控制select 168
4.5.9 shift语句 170
4.5.10 repeat语句 171
4.6程序调试 171
4.7 shell编程综合范例 175
4.7.1远程kill僵进程例程 175
4.7.2多文件改名例程 175
4.7.3文件名大小写变换例程 176
4.7.4系统登录的login例程 177
4.7.5编制目录菜单例程 177
4.7.6用户系统登录查看例程 178
4.7.7问题交互例程 178
4.7.8计算两日期间的天数例程 182
4.7.9读数与程序显示例程 185
4.7.10系统信息测试与显示例程 186
第5章 C程序设计技术 188
5.1 Linux下的C编程概述 188
5.2 C源文件的编辑 189
5.3 gcc编译器 190
5.3.1对编译器的认识 190
5.3.2 gcc的编译选项与过程的范例解析 191
5.3.3 gcc编译器的编译过程 191
5.4 gdb调试器 197
5.4.1概述 197
5.4.2调试编译与选项 198
5.4.3程序调试设置 200
5.4.4在线调试过程 201
5.4.5在gdb中查看源程序 204
5.4.6在gdb中查看栈信息 206
5.4.7在gdb中查看运行数据 207
5.4.8在gdb中改变程序的执行路线 211
5.4.9在不同语言中使用gdb 213
5.5 Make工程管理器 214
5.5.1概述 214
5.5.2 Makefile文件 214
5.5.3 make命令 216
5.5.4 makefile变量 217
5.5.5 makefile规则 220
5.6 Autotools的应用 222
5.6.1 Autotools基本工具 222
5.6.2 Autotools基本流程例解 222
5.6.3用make完成程序安装和发布 226
5.7 Linux下的C程序设计案例 227
5.7.1文件拷贝程序设计 227
5.7.2猜数字游戏设计 228
5.7.3进程调用程序设计 229
5.7.4管道通信程序设计 230
5.7.5巧抓盗贼程序设计 230
5.7.6 Linux文件系统设计 231
第6章 实践项目指导 238
6.1项目1 Linux的多元化安装 238
6.1.1实践目的 238
6.1.2实践准备 238
6.1.3实践内容 238
6.2项目2 Linux的系统管理技术 249
6.2.1实践目的 249
6.2.2实践内容 249
6.2.3实践步骤 249
6.3项目3 Linux系统的常用命令 254
6.3.1实践目的 254
6.3.2实践内容 255
6.3.3预备知识 255
6.3.4基础实践 255
6.3.5综合实践 262
6.4项目4 vi编辑器练习 264
6.4.1实践目的 264
6.4.2实践内容 264
6.4.3实践步骤 264
6.5项目5 Shell程序设计 267
6.5.1实践目的 267
6.5.2实践内容 267
6.5.3预备知识 267
6.5.4实践步骤 270
6.6项目6 Linux下的C程序设计 284
6.6.1实践目的 284
6.6.2实践要求 284
6.6.3实践内容 284
附录 综合测试题及参考答案 289
综合测试题参考答案 292
参考文献 298