第一章 什么是Linux
1.1 Linux的历史
1.1.1 Linux的诞生
1.1.2 Linux的吉祥物
1.1.3 Linux的发行版
1.1.4 自由软件基金会和GNU版权
1.2 Linux特点
1.2.1 多用户系统
1.2.2 登录
1.2.3 文件系统的层次结构
1.2.4 一般Linux系统的文件树结构
思考和练习
第二章 Linux系统的安装
2.1 Fedora Core 6.0的安装过程
2.1.1 安装前的准备工作
2.1.2 开始安装FC6
2.1.3 硬盘分区
2.1.4 接下来的安装
2.1.5 安装后的配置
2.2 Ubuntu 8.04的安装
2.2.1 安装前的准备
2.2.2 开始安装
2.2.3 安装后的设置
思考和练习
第三章 Linux的命令行操作
3.1 初识Linux
3.1.1 登录Linux
3.1.2 J1.个有趣的命令
3.1.3 在文件系统中邀游
3.1.4 显示目录内容
3.2 常用Linux。命令
3.2.1 Linux系统中目录的层次结构
3.2.2 文件系统
3.2.3 处理文件
3.2.4 目录和文件的属性
3.2.5 其他命令
思考和练习
第四章 Vi的使用
4.1 编辑方式
4.1.1 光标定位_
4.1.2 搜索字符串
4.1.3 替换、删除
4.1.4 剪切和粘贴
4.1.5 撤消和重复
4.2 插入方式
4.3 命令方式
4.3.1 退出命令
4.3.2 文件
4.3.3 行号使用
4.3.4 字符串搜索
4.4 规则表达式
4.4.1 正文替换
4.4.2 删除正文
4.5 编辑程序的选项和运行系统命令
思考和练习
第五章 Shell环境和程序设计
5.:1 Bash
5.1.1 bash shell的基本特点
5.1.2 bash高级属性
5.2 管道中的过滤器
5.2.1 基本过滤命令
5.2.2 awk编程
5.3 Shell程序设计
5.3.1 建立和运行shell程序
5.3.2 shell程序变量
5.3.3 语句和表达式
5.3.4 子函数及其他
思考和练习
第六章 C语言编程环境简介
6.1 第一个C程序
6.2 GNU C编译和连接
6.2.1 gcc命令行选项
6.2.2 函数库和头文件
6.2.3 ’GNU C扩展
6.3 GNU make项目管理
6.3.1 编写make文件
6.3.2 伪目标
6.3.3 变量
6.3.4 隐含规则和规则模式
6.3.5 make命令行参量
思考和练习
第七章 文件系统操作
7.1 文件操作
7.1.1 文件的打开和关闭
7.1.2 文件的输入输出
7.1.3 设置打开文件的位置
7.1.4 文件描述符和文件指针
7.1.5 文件控制
7.1.6 一个例子
7.2 目录操作
7.2.1 工作目录
7.2.2 操作目录结构
7.2.3 目录、文件的属性
7.2.4 文件的其他操作
7.2.5 一个例子
7.3 设备文件
7.3.1 设备文件控制函数
7.3.2 串行口的编程
7.3.3 声卡的编程
思考和练习
第八章 进程管理
8.1 进程执行环境
8.1.1 程序的参数
8.1.2 环境变量
8.2 进程
8.2.1 获得进程号
8.2.2 创建进程
8.2.3 运行程序
8.2.4 进程的终止
8.2.5 进程的完成状态
8.2.6 进程创建的完整例子——执行外部命令
思考和练习
第九章 信号
9.1 信号的基本概念
9.1.1 信号的种类
9.1.2 信号的发生
9.1.3 信号的传递与响应
9.2 一些标准的信号
9.2.1 程序出错信号
9.2.2 程序终止信号
9.2.3 闹钟信号
9.2.4 异步I//0信号
9.2.5 作业控制信号
9.2.6 操作错误信号
9.2.7 外围信号
9.2.8 信号消息
9.3 特定信号的反应
9.3.1 信号的控制的基本方法
9.3.2 信号的控制的高级方法
9.3.3 sigIlal()函数和sigaction()函数的关系
9.3.4 sigaction函数举例
9.3.5 sigaction函数的标志
9.3.6 初始化信号回调
9.4 定义信号句柄
9.4.1 能够返回的信号句柄
9.4.2 结束进程的信号句柄
9.4.3 信号函数中的非局域转移
9.4.4 信号函数执行时到达的信号
9.4.5 时间相近信号的合并
9.4.6 信号句柄和非重人函数
9.4.7 数据的原子操作和信号
9.4.8 非原子操作带来的问题
9.4.9 原子类型
9.4.1 0原子类型应用范式
9.5 被信号中断的原始操作
9.6 信号的产生
9.6.1 进程自己产生
9.6.2 其他进程产生信号
9.6.3 使用kill的权限
9.6.4 利用kill函数进行进程通讯
9.7 信号的阻塞
9.7.1 阻塞信号的作用
9.7.2 信号集
9.7.3 进程的信号掩码
9.7.4 举例:禁止关键代码时信号到达
9.7.5 在信号句柄中阻塞信号
9.7.6 查找阻塞的信号
9.7.7 信号阻塞的代替方法
9.8 等待信号
9.8.1 用pause()函数
9.8 。2 pause()函数产生的问题
9.8.3 用sigsuspend()函数
思考和练习
第十章 进程间通讯
10.1 管道和命名管道
10.1.1 管道
10.1.2 命名管道
10.2 系统V IPC机制
10.2.1 一般概念
10.2.2 消息队列
10.2.3 信号量
10.2.4 共享内存
思考和练习
第十一章 Socket通讯_
11.1 Socket的基本概念
11.1.1 什么是Socket
11.1.2 网络协议
11.1.3 数据结构
11.2 IP地址和域名
11.2.1 IP地址
11.2.2 域名系统
11.3 Socket相关系统调用
11.3.1 socket()
11.3.2 bind()
11.3.3 connect()
11.3.4 accept()和listen()
11.3.5 send()和Fecv()
11.3.6 sendto()和recvfrom()
11.3.7 close()和shutdown()
11.3.8 getpeemame()函数
11.3.9 gethostname()函数
11.3.1 0原始格式通讯的一个例子
思考和练习
第十二章 非连接通讯一UDP
12.1 UDP服务器
12.1.1 建立UDP监听套接口
12.1.2 UDP应用协议举例
12.2 接收UDP
12.2.1 UDP客户机
12.2.2 UDP客户举例
思考和练习
第十三章 面向连接的通讯一TCP
13.1 服务器程序
13.1.1 守护进程
13.1.2 使用FCP连接的服务器
13.1.3 一些额外的处理
13.1.4 使用rcP的服务器程序样例
13.2 客户程序
思考和练习
第十四章 使用stk进行图形界面设计
14.1 gtk的基本概念和机制
14.1.1 Linux下的图形系统
……