第一部分 Linux使用基础 2
第1章 Linux概述 2
1.1 初识Linux 2
1.1.1 什么是Linux 2
1.1.2 Linux的特性 3
1.1.3 Linux与其他操作系统的区别 4
1.1.4 GNU、GPL和LGPL 5
1.1.5 Linux的主要版本 6
1.2 Linux概览 8
1.2.1 Linux的内核 8
1.2.2 Linux的用户界面 8
1.2.3 Linux的文件结构 8
1.2.4 Linux的应用程序 9
1.3 Linux的安装 9
1.3.1 安装前的准备 9
1.3.2 引导安装程序 11
1.3.3 收集安装信息 12
1.3.4 正式安装 16
1.4 启动与关闭Linux 17
1.4.1 用户登录 17
1.4.2 首次登录的设置 18
1.4.3 选择默认用户界面 19
1.4.4 用户注销 21
1.4.5 关机 21
1.5 本章小结 22
习题 23
第2章 shell及常用命令 24
2.1 Linux终端使用基础 24
2.1.1 什么是Linux终端 24
2.1.2 shell的基本形式 24
2.2 文件与目录的基本概念 27
2.2.1 文件与文件类型 27
2.2.2 目录 27
2.2.3 工作目录、用户主目录与路径 28
2.3 目录和文件的基本操作 29
2.3.1 显示文件命令 29
2.3.2 复制、删除和移动命令 31
2.3.3 创建和删除目录命令 32
2.3.4 切换工作目录和显示目录命令 32
2.3.5 查找与定位命令 33
2.3.6 链接命令ln 35
2.3.7 创建文件、改变文件或目录时间的命令touch 36
2.3.8 文件比较与排序命令 36
2.4 备份与压缩命令 38
2.4.1 备份命令tar 38
2.4.2 压缩和解压命令gzip 38
2.4.3 解压命令unzip 39
2.5 其他常用命令 40
2.5.1 显示文字命令echo 40
2.5.2 显示日历命令cal 40
2.5.3 日期时间命令date 40
2.5.4 清除屏幕命令clear 42
2.5.5 软件包管理命令rpm 42
2.6 联机帮助命令 43
2.6.1 man 43
2.6.2 info 43
2.6.3 help 43
2.7 本章小结 44
习题 44
第3章 X Window系统的使用 45
3.1 Fedora下的X Window系统 45
3.1.1 X Window系统的组成与特点 45
3.1.2 GNOME简介 46
3.1.3 KDE简介 46
3.1.4 桌面应用程序 46
3.1.5 窗口管理器 46
3.2 GNOME桌面环境 48
3.2.1 GNOME桌面布局 48
3.2.2 GNOME的顶端面板 48
3.2.3 GNOME的浮动面板 50
3.2.4 GNOME的消息和通知区 50
3.2.5 GNOME的工作区选择器 51
3.2.6 GNOME的桌面设置 51
3.3 GNOME的应用程序和窗口管理 53
3.3.1 GNOME中的应用程序 53
3.3.2 运行桌面应用程序 54
3.3.3 收藏夹和快捷方式管理 55
3.3.4 GNOME的窗口管理 56
3.3.5 GNOME的文件管理器 57
3.3.6 GNOME的软件管理 61
3.4 本章小结 62
习题 62
第4章 Linux系统的常用软件 64
4.1 办公软件 64
4.1.1 办公套件LibreOffice 64
4.1.2 Writer组件 65
4.1.3 Calc组件 67
4.1.4 Impress组件 68
4.2 网络应用软件 69
4.2.1 浏览器Firefox 69
4.2.2 电子邮件管理软件Evolution 71
4.3 多媒体应用软件 73
4.3.1 音乐播放器Rhythmbox 73
4.3.2 电影播放器Totem 75
4.4 其他工具软件 75
4.4.1 GNU图像处理程序 75
4.4.2 文本编辑器 77
4.5 本章小结 77
习题 78
第5章 硬件与软件的安装 79
5.1 Linux硬件安装 79
5.1.1 Linux硬件管理基础 79
5.1.2 Linux统一设备模型 80
5.1.3 安装硬件驱动的一般步骤 81
5.1.4 硬件安装实例 82
5.2 Linux软件安装 86
5.2.1 Linux中应用软件的安装包 86
5.2.2 安装Tarball包应用软件 87
5.2.3 安装RPM包应用软件 88
5.2.4 安装Deb包应用软件 89
5.3 通过yum命令安装软件 90
5.3.1 yum源的配置和使用 90
5.3.2 yum的常用命令 93
5.3.3 yum软件安装实例 93
5.4 patch原理和命令 94
5.4.1 应用patch的一般过程 95
5.4.2 利用diff与patch更新软件 95
5.5 本章小结 97
习题 98
第二部分 Linux系统管理 100
第6章 网络的基本配置 100
6.1 网络接口的硬件信息 100
6.2 网络接口的配置 101
6.2.1 使用文本模式工具配置接口 101
6.2.2 使用图形界面工具配置接口 102
6.2.3 使用终端命令显示和配置接口 104
6.3 网络接口的启动与停止 105
6.4 常用网络命令 106
6.4.1 网络测试命令 106
6.4.2 远程登录命令 109
6.5 网络相关配置文件 110
6.5.1 主机名配置文件 110
6.5.2 网络接口配置文件 110
6.5.3 主机名列表文件 111
6.5.4 域名服务器配置文件 111
6.5.5 主机名解析配置文件 111
6.5.6 名字服务切换配置文件 112
6.5.7 协议定义文件 113
6.5.8 网络服务列表文件 113
6.6 本章小结 113
习题 113
第7章 常用网络服务的使用与配置 115
7.1 网络服务管理工具 115
7.1.1 图形界面的管理工具 115
7.1.2 文本界面的管理工具 116
7.1.3 命令行界面的管理工具 116
7.1.4 xinetd 117
7.2 Apache服务器 119
7.2.1 简介 119
7.2.2 安装 120
7.2.3 启动与关闭 121
7.2.4 配置 121
7.2.5 应用实例 122
7.3 vsFTPd服务器 125
7.3.1 简介 125
7.3.2 安装 125
7.3.3 启动与关闭 125
7.3.4 配置 125
7.3.5 FTP客户端 126
7.3.6 应用实例 127
7.4 Samba服务器 129
7.4.1 简介 129
7.4.2 安装 129
7.4.3 启动与关闭 129
7.4.4 配置 130
7.4.5 应用实例 133
7.5 DNS服务器 135
7.5.1 简介 135
7.5.2 安装Bind 136
7.5.3 启动与关闭 136
7.5.4 配置 137
7.5.5 使用配置文件配置DNS 139
7.6 本章小结 143
习题 143
第8章 系统管理与监视 145
8.1 用户管理 145
8.1.1 Linux的账号 145
8.1.2 用户管理方法 145
8.1.3 用户间切换 150
8.1.4 用户配置文件 150
8.1.5 账号管理和查看命令 153
8.2 文件访问权限管理 154
8.2.1 文件权限表示 154
8.2.2 文件权限管理 155
8.3 进程管理 157
8.3.1 进程的概念 157
8.3.2 启动进程 158
8.3.3 进程管理命令 161
8.4 系统监视 162
8.4.1 系统监控命令top 162
8.4.2 内存查看命令free 163
8.4.3 磁盘空间用量查看命令df 163
8.4.4 系统监视器 164
8.5 日志查看 164
8.5.1 日志文件 164
8.5.2 查看日志 165
8.6 本章小结 166
习题 166
第9章 Linux系统的安全管理 168
9.1 Linux系统的安全设置 168
9.1.1 系统的安全设置 168
9.1.2 账号的安全设置 169
9.1.3 网络的安全设置 170
9.2 SELinux 171
9.2.1 SELinux简介 171
9.2.2 SELinux的基本概念 173
9.2.3 SELinux的安全控制原理 174
9.2.4 SELinux的基本操作 175
9.2.5 SELinux的策略管理 179
9.2.6 SELinux的记录与诊断 183
9.2.7 SELinux访问控制示例 183
9.3 本章小结 184
习题 184
第10章 Linux系统的定制 186
10.1 Linux内核概述 186
10.1.1 Linux系统架构 186
10.1.2 Linux内核的组成 187
10.1.3 Linux内核配置文件 189
10.2 Linux内核的定制 190
10.2.1 获取Linux系统内核源代码 190
10.2.2 生成自定义的内核配置文件 191
10.2.3 根据配置文件编译内核 193
10.3 Linux发行版本的定制 194
10.3.1 Fedora的定制版本 194
10.3.2 创建自己的Fedora定制版 196
10.4 本章小结 197
习题 197
第三部分 Linux平台上的程序设计 200
第11章 shell程序设计 200
11.1 使用shell 200
11.2 bash程序设计 201
11.2.1 bash程序的一般格式 201
11.2.2 变量的声明和使用 202
11.2.3 条件判断 205
11.2.4 控制结构 207
11.2.5 函数 211
11.3 shell程序实例 213
11.3.1 Linux实例程序 213
11.3.2 文件备份脚本示例 213
11.4 本章小结 215
习题 215
第12章 GCC的使用与开发 216
12.1 GCC简介 216
12.2 GCC的使用 216
12.3 利用GCC开发C语言程序 219
12.3.1 简单的C语言程序 219
12.3.2 多个文件的C程序 220
12.3.3 使用makefile生成程序 221
12.4 调试 222
12.4.1 静态调试 222
12.4.2 动态调试 224
12.5 本章小结 226
习题 227
第13章 GTK+图形界面程序设计 228
13.1 X Window编程简介 228
13.2 GTK+程序设计简介 228
13.3 GTK+开发图形界面程序 229
13.3.1 基本的GTK+程序 229
13.3.2 编译GTK+源程序 232
13.3.3 应用容器的GTK+程序 233
13.4 本章小结 238
习题 239
第14章 Qt图形界面程序设计 240
14.1 Qt程序设计简介 240
14.2 开发Qt图形界面程序 240
14.2.1 简单的Qt图形程序 241
14.2.2 Qt程序的编译 242
14.2.3 Qt Creator程序开发 244
14.3 本章小结 250
习题 250
第15章 集成开发环境KDevelop的使用 251
15.1 KDevelop简介 251
15.2 KDevelop的使用 251
15.2.1 启动KDevelop 251
15.2.2 创建工程 252
15.2.3 编辑工程 254
15.2.4 编译生成工程 255
15.3 本章小结 257
习题 257
第16章 集成开发环境Eclipse的使用 258
16.1 Eclipse概述 258
16.1.1 Eclipse简介 258
16.1.2 Eclipse的优势 258
16.2 Eclipse的安装与使用 259
16.2.1 JDK 8安装配置 259
16.2.2 安装与使用Eclipse 260
16.2.3 Eclipse界面组成 261
16.2.4 创建第一个Java应用程序 261
16.3 Eclipse RCP应用开发 263
16.3.1 什么是RCP 263
16.3.2 新建RCP项目 263
16.3.3 项目的组织结构 265
16.3.4 RCP基本框架 267
16.3.5 发布RCP应用程序 270
16.4 本章小结 271
习题 271
附录 Linux终端命令 272