第1章 初识Ubuntu 1
1.1 Linux历史及其版本 1
1.1.1 Linux起源和发展 1
1.1.2 Linux和GNU的关系 3
1.1.3 目前流行的Linux发行版 4
1.1.4 Linux的特点和优势 9
1.1.5 Linux应用领域 10
1.2 Ubuntu起源和版本 10
1.2.1 Ubuntu是什么 10
1.2.2 Ubuntu的起源 10
1.2.3 Ubuntu的版本 12
1.2.4 Ubuntu发展路线图 13
1.3 小结 18
练习题 18
第2章 开始安装Ubuntu 19
2.1 安装准备和引导设置 19
2.1.1 申请免费的系统光盘 19
2.1.2 下载Ubuntu安装镜像 21
2.2 硬件需求与兼容性 23
2.2.1 Ubuntu 7.10官方硬件需求 23
2.2.2 搜集自己硬件环境信息 24
2.2.3 设置计算机光盘启动 26
2.2.4 准备安装分区 26
2.3 磁盘分区调整和分区 26
2.3.1 Ubuntu和Windows分区概念差异 26
2.3.2 磁盘分区规划 27
2.3.3 为Ubuntu准备分区 27
2.4 开始安装 28
2.4.1 LiveCD模式安装 28
2.4.2 文字模式安装 32
2.4.3 硬盘安装Ubuntu 42
2.4.4 虚拟机中体验Ubuntu 43
2.4.5 安装虚拟机 44
2.4.6 为笔记本安装Ubuntu 46
2.5 首次亲密接触 47
2.5.1 登录界面 47
2.5.2 体验Ubuntu桌面 48
2.5.3 注销、重启和关机 49
2.6 安装后的配置 49
2.6.1 善用受限驱动解决驱动问题 49
2.6.2 配置ADSL拨号网络 50
2.6.3 设置Ubuntu安装源 51
2.6.4 闪电配置Ubuntu系统环境 52
2.7 小结 53
练习题 53
第3章 使用GNOME桌面环境 54
3.1 GNOME的基本介绍 54
3.2 使用GNOME桌面环境 55
3.2.1 GNOME基本操作 55
3.2.2 GNOME桌面使用详解 56
3.2.3 用好GNOME面板 57
3.2.4 用好“应用程序”菜单 57
3.2.5 用好“位置”菜单 58
3.2.6 用好“系统”菜单 59
3.2.7 GNOME桌面环境用好命令行 59
3.3 鹦鹉螺文件管理器 60
3.4 定制个性化GNOME桌面环境 61
3.5 GNOME常用程序和Windows常用程序对照 64
3.6 小结 66
练习题 66
第4章 KDE桌面环境 67
4.1 认识KDE桌面环境 67
4.2 安装配置KDE桌面 69
4.2.1 把KDE桌面环境添加到Ubuntu 69
4.3 用好KDE桌面环境 71
4.3.1 用好KDE面板 71
4.3.2 定制KDE面板 73
4.3.3 用好K菜单 74
4.3.4 用好系统菜单 74
4.3.5 用好快速桌面 75
4.4 Konqueror文件管理器 75
4.5 配置个性化KDE桌面 78
4.6 KDE常用程序对照表 82
4.7 小结 84
练习题 84
第5章 Ubuntu图形服务器 85
5.1 X-Window 2D图形服务器 85
5.1.1 X-Window图形服务器 85
5.1.2 X-Window架构和组成 86
5.1.3 X-Window、GNOME和KDE之间的关系 86
5.2 XGL 3D图形服务器 87
5.2.1 XGL和Compiz间的关系 88
5.2.2 用好XGL 3D图形服务器 88
5.3 小结 91
练习题 91
第6章 Ubuntu桌面应用 92
6.1 Ubuntu办公应用OpenOffice.org 92
6.1.1 与OpenOffice.org的亲密接触 92
6.1.2 OpenOffice.org 使用入门 92
6.1.3 了解OpenOffice.org各功能组件 95
6.1.4 设置OpenOffice.org办公环境 99
6.2 全面掌握OpenOffice.org Writer 100
6.2.1 高频操作——选定、删除文档操作 100
6.2.2 日常操作——移动、复制文档操作 101
6.2.3 无需踏破铁蹄——查找和替换操作 102
6.2.4 后悔有方——撤销、恢复操作 103
6.2.5 打印效果早知道——预览和打印文档 103
6.3 全面掌握OpenOffice.org Calc 105
6.3.1 选定单元格及其工作表区域操作 105
6.3.2 输入数据到单元格 106
6.3.3 数据的高效处理 108
6.3.4 单元格数据操作全掌握 109
6.3.5 全面设置单元格属性 111
6.4 完美沟通幻灯片演示——OpenOffice.org Impress 113
6.4.1 事半功倍创建幻灯片 113
6.4.2 添加幻灯片的动画效果 117
6.4.3 放映制作好的幻灯片 118
6.5 享受Ubuntu多媒体功能 119
6.5.1 超级全能媒体播放器——MPlayer 119
6.5.2 媒体播放器——Totem 119
6.5.3 音乐播放专家——Rhythmbox 121
6.5.4 无处不在的播放器——RealPlayer 121
6.6 Ubuntu丰富的网络应用 123
6.6.1 浏览器的黑马——Firefox 123
6.6.2 邮件专家——全能邮件Evolution 126
6.6.3 聊天利器——Pidgin 129
6.6.4 网络下载工具双雄——KGet&Filezilla 131
6.6.5 管理Windows Server——Ubuntu终端服务 133
6.7 Ubuntu图像功能拾粹 134
6.7.1 全能图片总管Picasa 135
6.7.2 专业级图形图像处理程序GIMP 136
6.8 熟练使用Ubuntu常用工具 139
6.8.1 Ubuntu中的金山词霸——星际译王 139
6.8.2 使用Wine安装Windows程序 142
6.8.3 开心趣味程序和游戏 144
6.8.4 让Google桌面搜索在Ubuntu中安家 147
6.9 Ubuntu常用开发环境的搭建 148
6.9.1 安装使用Java开发环境 148
6.9.2 安装使用C/C++ IDE开发工具 150
6.10 小结 152
练习题 153
第7章 让Ubuntu命令开始工作 154
7.1 基本命令 154
7.1.1 列出文件清单命令:ls 155
7.1.2 改变当前路径命令:cd 156
7.1.3 查看当前路径命令:pwd 157
7.1.4 改变文件创建时间及创建空文件命令:touch 157
7.1.5 创建目录命令:mkdir 158
7.1.6 删除空目录命令:rmdir 159
7.1.7 除文件(目录)命令:rm 159
7.1.8 复制命令:cp 160
7.1.9 移动文件(目录)命令:mv 160
7.1.10 显示文件内容命令:cat 161
7.1.11 从头开始查看文件内容命令:head 161
7.1.12 tail命令 162
7.1.13 分屏显示文件命令:more(less) 162
7.2 文件处理命令 162
7.2.1 文件比较命令:diff 162
7.2.2 排序命令:sort 163
7.2.3 统计命令: wc 163
7.3 设置权限命令 164
7.3.1 设定权限命令 chmod 164
7.3.2 更改属主(属组)命令:chown 168
7.3.3 更改文件属组命令:chgrp 169
7.4 文件查找命令 169
7.4.1 按路径进行查找的命令:which 169
7.4.2 按资料库查找的命令:whereis 170
7.4.3 查找所有匹配的文件的命令:locate 170
7.4.4 功能强大的查找命令:find 170
7.5 压缩解压命令 173
7.5.1 压缩命令:gzip 173
7.5.2 查看压缩文件内容命令:zcat 174
7.5.3 解压.zip文件命令:unzip 174
7.5.4 压缩命令:bzip2 175
7.5.5 查看压缩文件内容命令:bzcat 175
7.5.6 打包并压缩命令:tar 175
7.6 关机重启命令 176
7.6.1 关闭计算机命令:shutdown 177
7.6.2 系统关机命令:halt 177
7.6.3 切换启动级别命令:init 177
7.6.4 关机命令:poweroff 178
7.6.5 重启系统命令:reboot 178
7.7 小结 178
练习题 178
第8章 文本编辑器vim/vi 179
8.1 vi工作模式 179
8.1.1 命令模式 180
8.1.2 插入模式 180
8.1.3 编辑模式 180
8.2 进入vi 180
8.2.1 使用vi打开文件 180
8.2.2 直接进入指定位置处 181
8.3 vi基本应用 181
8.3.1 插入命令 181
8.3.2 光标移动命令 182
8.3.3 使用vi进行编辑 183
8.3.4 保存退出命令 185
8.4 vi进阶应用 186
8.4.1 vi配置文件 186
8.4.2 多窗口编辑 186
8.4.3 区域复制 187
8.4.4 定义快捷键 187
8.4.5 在vi中与Shell交互 188
8.4.6 文本格式转换 188
8.4.7 vi的宏记录 189
8.4.8 几个小技巧 190
8.5 其他编辑工具 191
8.5.1 ed 191
8.5.2 pico 191
8.5.3 emacs 191
8.6 小结 192
练习题 192
第9章 Shell使用基础 193
9.1 Shell基础 193
9.1.1 什么是Shell 193
9.1.2 Shell的种类 194
9.1.3 Shell的功能 194
9.1.4 Shell命令的执行 197
9.1.5 Shell的其他优点 197
9.2 变量 197
9.2.1 变量的含义 197
9.2.2 变量的种类及Shell的类型 198
9.2.3 变量的定义及显示 199
9.2.4 位置变量 202
9.2.5 特殊形式的变量 203
9.3 命令的执行顺序 204
9.4 命令替换 204
9.5 I/O重定向 204
9.6 管道 206
9.7 特殊字符 206
9.8 小结 207
练习题 207
第10章 用户与群组管理 209
10.1 用户与组简介 209
10.1.1 用户与组的识别 209
10.1.2 Ubuntu中的用户种类 209
10.2 用户管理 210
10.2.1 用户的添加与删除 210
10.2.2 用户的宿主目录 211
10.2.3 用户登录文件的配置 211
10.2.4 用户相关文件与目录 213
10.3 密码管理 213
10.3.1 密码的安全性 214
10.3.2 密码文件 214
10.3.3 影子密码文件 215
10.4 添加批量账号 216
10.5 组管理 217
10.5.1 组的添加与删除 217
10.5.2 组相关文件 217
10.5.3 有效组与默认组及相互转换 218
10.6 用户信息的修改 218
10.6.1 使用usermod修改用户信息 218
10.6.2 使用groupmod修改组信息 219
10.6.3 查看用户信息 219
10.7 变换用户身份 219
10.7.1 su命令 219
10.7.2 sudo命令 221
10.8 用户登录控制 222
10.8.1 PAM认证模块原理 223
10.8.2 PAM的配置文件 223
10.9 小结 224
练习题 225
第11章 硬盘分区管理 226
11.1 分区基本知识 226
11.1.1 认识硬盘 226
11.1.2 为什么要分区 226
11.1.3 Ubuntu的分区 226
11.2 使用fdisk命令进行硬盘分区 227
11.2.1 使用df命令查看硬盘分区信息 227
11.2.2 如何在Ubuntu里添加新硬盘 227
11.2.3 添加分区的实例 228
11.3 开机自动挂载文件/etc/fstab和/etc/mtab 231
11.3.1 /etc/fstab文件 231
11.3.2 /etc/mtab文件 232
11.4 硬盘管理工具 232
11.4.1 使用du命令查看目录信息 232
11.4.2 使用fsck命令进行硬盘检测 233
11.4.3 使用sync命令强制硬盘写入 233
11.4.4 使用dumpe2fs命令查看硬盘信息 233
11.5 小结 234
练习题 234
第12章 文件系统管理 235
12.1 Ubuntu文件系统简介 235
12.1.1 Ubuntu所支持的文件系统类型 236
12.1.2 挂载与卸载文件系统 236
12.1.3 Ubuntu的目录结构 237
12.2 链接文件 237
12.2.1 链接文件的种类及原理 238
12.2.2 使用ln命令建立链接文件 238
12.3 文件高级权限 239
12.3.1 setuid和setgid位 239
12.3.2 黏滞位 242
12.3.3 使用umask命令改变默认权限 243
12.3.4 lsattr和chattr命令设置高级权限 244
12.4 磁盘限额 244
12.4.1 什么是磁盘限额 245
12.4.2 Linux中磁盘限额的基本概念 245
12.4.3 配置磁盘限额 245
12.5 LVM文件系统 247
12.5.1 LVM文件系统简介 247
12.5.2 LVM文件系统中的概念(PV、VG、LV、PE) 248
12.5.3 实例制作LVM 249
12.6 小结 253
练习题 253
第13章 全面管理Ubuntu 软件包 255
13.1 透彻了解Ubuntu软件包 255
13.2 会用底层软件包管理工具——dpkg 256
13.3 善用高级软件包管理工具——APT(Advanced Package Tool) 256
13.3.1 迅速查找DEB软件包 256
13.3.2 用好APT安装软件包 257
13.4 文本界面软件包管理工具 257
13.5 使用新利得软件包管理器管理软件包 259
13.6 小结 263
第14章 Ubuntu引导流程 264
14.1 Ubuntu引导流程解析 264
14.1.1 POST自检并载入内核 264
14.1.2 加载内核 265
14.1.3 执行/etc/inittab 265
14.1.4 系统初始化并启动相应服务 267
14.2 GRUB引导器 267
14.3 GRUB配置文件简介 268
14.3.1 GRUB配置文件详解 268
14.3.2 GRUB安全设置 269
14.3.3 GRUB命令行 269
14.3.4 安装Windows导致GRUB被覆盖怎么办 270
14.3.5 单用户模式排错 271
14.4 小结 272
练习题 272
第15章 进程的控制与管理 273
15.1 进程的显示与删除 273
15.1.1 进程简介 273
15.1.2 进程种类 273
15.1.3 显示进程 275
15.1.4 动态显示进程 277
15.1.5 删除进程 278
15.2 进程的优先级 278
15.3 前台与后台 279
15.3.1 什么是前台与后台 279
15.3.2 任务的前后台背景切换 279
15.4 系统资源的查看 280
15.4.1 使用free命令查看内存 280
15.4.2 启动信息查看dmesg 280
15.4.3 /proc目录简介 281
15.5 设置任务调度 281
15.5.1 at命令 281
15.5.2 cron命令 283
15.6 小结 285
练习题 285
第16章 基本网络配置 286
16.1 网络基础 286
16.1.1 基本的网络术语 286
16.1.2 TCP/IP简介 286
16.1.3 IP地址简介 287
16.1.4 网关和路由简介 289
16.2 网络配置相关文件 290
16.2.1 IP地址配置文件 290
16.2.2 DNS配置文件 290
16.2.3 hosts文件 291
16.3 网络相关命令 291
16.3.1 ifconfig命令 291
16.3.2 ifup和ifdown 292
16.3.3 ping命令 292
16.3.4 netstat命令 292
16.4 小结 292
练习题 293
第17章 基本虚拟化配置 294
17.1 在Ubuntu上安装配置Xen 294
17.1.1 软件包的安装 294
17.1.2 配置虚拟机及其桌面环境 294
17.1.3 使用映像文件做虚拟硬盘 295
17.1.4 安装debtstrap 295
17.1.5 配置虚拟机 296
17.1.6 在虚拟机中使用GNOME桌面环境 296
17.2 在Ubuntu上安装配置KVM 297
17.2.1 安装“KVM”和“QEMU”软件包 297
17.2.2 安装Ubuntu虚拟机 298
17.2.3 高级网络配置 299
17.3 其他虚拟化软件和Ubuntu 302
17.3.1 在QEMU中安装WindowsXP 302
17.3.2 在Ubuntu中安装VirtualBox 304
17.4 小结 305
练习题 305
第18章 搭建自动化的Ubuntu网络环境 306
18.1 DHCP实现自动分配IP 306
18.1.1 DHCP的常用概念 306
18.1.2 安装DHCP服务器 307
18.1.3 配置DHCP服务器 307
18.1.4 启动和关闭DHCP服务 309
18.1.5 租约文件 309
18.1.6 配置DHCP客户 309
18.2 NAT共享上网服务 310
18.2.1 NAT的基本概念 310
18.2.2 Netfilter/iptables系统 310
18.2.3 与NAT相关的iptables命令语法 313
18.3 小结 314
练习题 314
第19章 Ubuntu文件服务 315
19.1 Ubuntu文件共享应用概述 315
19.2 FTP服务器 315
19.2.1 FTP与FTP服务器 315
19.2.2 Ubuntu中配置FTP服务 315
19.3 Samba服务器 320
19.3.1 SMB协议和Samba简介 320
19.3.2 Ubuntu中配置Samba服务 320
19.3.3 Samba常见故障排错 325
19.4 小结 328
练习题 328
第20章 轻松远程管理Ubuntu 329
20.1 远程管理控制——SSH 329
20.1.1 OpenSSH简介 329
20.1.2 SSH远程连接 329
20.1.3 SFTP的使用 330
20.1.4 Windows下的SSH客户端 331
20.2 Webmin管理工具 332
20.2.1 Webmin管理工具概述 332
20.2.2 Webmin的安装 332
20.2.3 Webmin的常用维护操作 335
20.3 小结 348
练习题 348
第21章 Ubuntu系统安全指南 349
21.1 防火墙配置 349
21.2 安全检查 352
21.2.1 检查suid和sgid程序 352
21.2.2 检查全局/组内用户可写的目录 352
21.2.3 检查监听端口状况 353
21.2.4 限制用户的访问资源 354
21.2.5 创建ARP表 354
21.2.6 桌面安全 356
21.2.7 防火墙 356
21.3 查毒软件 357
21.4 使用Tor代理 357
21.5 浏览器安全 358
21.6 小结 358
练习题 358
第22章 Shell编程 359
22.1 Shell脚本简介 359
22.2 Shell脚本语言的基本语法 359
22.2.1 建立第一个Shell脚本 359
22.2.2 Shell脚本的执行 360
22.2.3 交互式脚本 360
22.2.4 变量的数值运算 361
22.2.5 脚本逻辑判断与表达式 361
22.2.6 条件判断if语句 363
22.2.7 case命令 365
22.2.8 循环 366
22.2.9 continue语句和break语句 367
22.2.10 exit命令 368
22.2.11 函数 368
22.3 脚本调试 368
22.4 正则表达式 369
22.4.1 以^匹配行首字符 369
22.4.2 以$匹配行尾字符 370
22.4.3 以.匹配单个字符 370
22.4.4 以*匹配0个或者多个字符序列 371
22.4.5 以[]匹配单个字符或者一个范围 371
22.4.6 使用\{\}模式匹配字符出现的次数 371
22.4.7 扩展的正则表达式元字符 372
22.5 如何保护Shell程序 372
22.5.1 改变Shell程序执行环境 372
22.5.2 加密Shell程序 373
22.6 小结 374
练习题 374
第23章 Ubuntu LAMP 环境的搭建 376
23.1 以LAMP方式安装Ubuntu Server 376
23.1.1 Apache服务器介绍 376
23.1.2 MySQL数据库介绍 377
23.1.3 PHP介绍 378
23.1.4 安装Ubuntu Server 378
23.2 Apache的配置和使用 380
23.2.1 Apache配置文件说明 380
23.2.2 定制Apache 383
23.3 MySQL的配置和使用 385
23.3.1 MySQL常用命令 385
23.3.2 轻松管理MySQL的利器——phpMyAdmin 386
23.4 PHP的配置和使用 391
23.4.1 设置PHP配置文件 391
23.5 小结 392
练习题 392
第24章 安全配置 Ubuntu服务器 393
24.1 隐藏Apache版本信息 393
24.1.1 使用Mod-Security保护Apache服务器 393
24.1.2 使用Suhosin保护PHP 394
24.1.3 禁用PHP的危险函数 395
24.1.4 隐藏PHP版本信息 395
24.1.5 禁用Telnet 395
24.1.6 加固SSH 396
24.1.7 修改SSH的默认端口 396
24.1.8 禁止编译 396
24.1.9 ProFTP 396
24.1.10 访问控制 397
24.1.11 创建SU用户组 397
24.1.12 Root用户通知 397
24.1.13 加固历史记录 397
24.1.14 使用欢迎消息 398
24.1.15 禁用所有特殊用户 398
24.1.16 修改危险文件的权限 398
24.1.17 限制Root用户使用的TTY设备 399
24.1.18 使用安全的密码 399
24.1.19 检查Rootkit 399
24.1.20 安装补丁 399
24.1.21 关闭无用的服务 400
24.1.22 检查监听端口 400
24.1.23 加固内核(sysctl.conf) 400
24.1.24 加固临时目录 402
24.2 高安全需求的配置方法 403
24.2.1 安装配置Apache 2 403
24.2.2 配置Apache 406
24.2.3 Chroot环境 408
24.2.4 启动脚本 409
24.3 安全配置PHP 410
24.3.1 功能需求 410
24.3.2 安装PHP 410
24.3.3 Chroot环境 412
24.3.4 配置PHP 413
24.3.5 防止跨站脚本攻击和SQL注入攻击 414
24.4 安全配置MySQL 414
24.4.1 功能需求 415
24.4.2 安装MySQL 415
24.4.3 测试MySQL 416
24.4.4 Chroot环境 416
24.4.5 配置服务器 418
24.5 PHP与MySQL的通信 419
24.5.1 启动脚本 419
24.6 小结 420
练习题 420
第25章 Ubuntu Server 架站实务 421
25.1 快速打造自己的网站 421
25.1.1 Mombo简介 421
25.1.2 安装. 421
25.2 迅速搭建网站论坛BBS 426
25.2.1 Discuz简介 426
25.2.2 安装 426
25.2.3 设置 433
25.3 Blog和WiKi闪电上线 434
25.3.1 Blog简介 434
25.3.2 Blog安装 434
25.3.3 Wiki简介 439
25.3.4 Wiki安装 439
25.3.5 设置 442
25.4 网站的安全与管理 443
25.4.1 网站安全措施 443
25.4.2 网站的日常管理 446
25.5 小结 446
练习题 446
附录A GNU通用公共授权(第二版) 447
附录B GNU通用公共授权(第三版) 452
附录C Ubuntu与Windows常用程序对照表 461