第1章 欢迎进入Linux世界 1
1.1 GNU-Linux联姻 1
1.1.1 GNU-Linux的历史 2
1.1.2 自由代码 3
1.1.3 享受乐趣 4
1.2 Linux 2.6内核 4
1.3 Linux的起源:UNIX 4
1.4 Linux的优点 4
1.4.1 Linux在硬件公司和开发者中流行的原因 6
1.4.2 Linux的可移植性 6
1.4.3 标准 7
1.4.4 C编程语言 7
1.4.5 Ubuntu Linux 7
1.5 Linux概述 8
1.5.1 Linux具有内核编程接口 8
1.5.2 Linux支持多用户 9
1.5.3 Linux支持多任务 9
1.5.4 Linux支持安全的层次文件系统 9
1.5.5 shell:命令解释器和编程语言 10
1.5.6 大量有用的实用工具 11
1.5.7 进程间的通信 11
1.5.8 系统管理 11
1.6 Linux的其他特性 12
1.6.1 图形用户界面 12
1.6.2 (互联)网络实用工具 13
1.6.3 软件开发 13
1.7 本书约定 13
1.8 本章小结 15
1.9 练习 15
第一部分 安装Ubuntu Linux第2章 安装概览 18
2.1 Live/Install Dcsktop CD安装盘或DVD安装盘 18
2.2 更多信息 19
2.3 安装规划 19
2.3.1 需要考虑的事项 19
2.3.2 安装需求 20
2.3.3 处理器架构 21
2.3.4 用户界面:安装程序和安装好的系统 21
2.3.5 Ubuntu发行 22
2.3.6 Ubuntu版本 22
2.3.7 全新安装还是升级已有的Ubuntu系统 23
2.3.8 设置硬盘 23
2.3.9 RAID 27
2.3.10 LVM:逻辑卷管理程序 28
2.4 安装过程 29
2.5 下载并刻录CD/DVD安装盘 29
2.5.1 下载CD安装盘ISO映像文件的简单方法 29
2.5.2 下载CD安装盘ISO映像文件的其他方法 30
2.5.3 验证ISO映像文件 32
2.5.4 刻录CD/DVD安装盘 33
2.6 收集系统信息 33
2.7 本章小结 34
2.8 练习 34
2.9 高级练习 34
第3章 逐步安装 35
3.1 基本的安装(使用Live/Install Desktop CD/DVD安装盘) 35
3.1.1 引导系统 36
3.1.2 CD/DVD安装盘错误检查 36
3.1.3 免安装模式 36
3.2 图形界面分区程序 42
3.2.1 gparted:GNOME分区编辑器 42
3.2.2 ubiquity:设置分区 44
3.3 升级到新发行 46
3.4 安装KDE 47
3.5 搭建双重引导系统 47
3.5.1 在Windows系统上建立剩余空间 47
3.5.2 安装Ubuntu Linux作为第二个操作系统 48
3.6 高级安装 48
3.6.1 Live/Install Desktop CD:初始安装屏幕 48
3.6.2 Alternate CD初始安装屏幕 51
3.6.3 Server CD初始安装屏幕 52
3.6.4 DVD安装盘 52
3.6.5 Ubuntu文本界面安装程序 52
3.7 X窗口系统 57
3.7.1 displayconfig-gtk:配置显示 57
3.7.2 xorg.conf文件 59
3.7.3 gdm:显示图形化登录界面 63
3.8 本章小结 64
3.9 练习 64
3.10 高级练习 64
第二部分 Ubuntu Linux入门第4章 Ubuntu Linux简介 66
4.1 控制用广权限:root特权/sudo 67
4.2 Ubuntu Linux桌面之旅 68
4.2.1 登录系统 68
4.2.2 介绍 69
4.2.3 从桌面上启动程序 70
4.2.4 切换工作区 72
4.2.5 设置个人首选项 72
4.2.6 鼠标首选项 73
4.2.7 操作窗口 74
4.2.8 使用Nautilus操作文件 74
4.2.9 更新提示程序 78
4.2.10 修改外观(主题) 79
4.2.11 会话管理 81
4.2.12 获取帮助 81
4.2.13 随意进行实验 81
4.2.14 注销 82
4.3 充分利用桌面 82
4.3.1 GNOME桌面术语 82
4.3.2 打开文件 83
4.3.3 面板 83
4.3.4 主菜单 86
4.3.5 窗口 87
4.3.6 对象上下文菜单 89
4.4 软件包的更新、安装和删除 93
4.4.1 “软件源”窗口 93
4.4.2 添加与删除应用程序 94
4.4.3 新立得:查找、安装与删除软件 95
4.5 获取资料 97
4.5.1 Ubuntu帮助中心 97
4.5.2 man:显示系统手册 97
4.5.3 info:显示实用工具的相关信息 99
4.5.4 选项--help 101
4.5.5 HOWTO:探究工作原理 102
4.5.6 从系统获取帮助信息 102
4.6 关于登录的更多信息 103
4.6.1 登录屏幕 104
4.6.2 如果不能登录,要做什么 104
4.6.3 远程登录:终端仿真、ssh和拨号连接 105
4.6.4 从终端(仿真器)登录 105
4.6.5 修改口令 106
4.6.6 使用虚拟控制台 107
4.7 命令行操作 107
4.7.1 错误纠正 108
4.7.2 重复/编辑命令行 109
4.8 控制窗口:高级操作 110
4.8.1 改变输入焦点 110
4.8.2 改变显示器分辨率 111
4.8.3 窗口管理器 111
4.9 本章小结 112
4.10 练习 112
4.11 高级练习 113
第5章 Linux实用工具 114
5.1 特殊字符 114
5.2 基本实用工具 115
5.2.1 ls:列出文件名 116
5.2.2 cat:显示文本文件内容 116
5.2.3 rm:删除文件 116
5.2.4 less或more:分屏显示文本文件 117
5.2.5 hostname:显示系统名 117
5.3 文件操作 117
5.3.1 cp:复制文件 117
5.3.2 my:更改文件名 118
5.3.3 lpr:打印文件 119
5.3.4 grep:查找字符串 119
5.3.5 head:显示文件头部 120
5.3.6 tail:显示文件尾部 121
5.3.7 sort:按顺序显示文件内容 121
5.3.8 uniq:删除文件中重复行 122
5.3.9 diff:比较两个文件 122
5.3.10 file:测试文件内容 123
5.4 丨(管道):实现进程间的通信 123
5.5 4个有用的实用工具 124
5.5.1 echo:显示文本 124
5.5.2 date:显示日期和时间 124
5.5.3 script:记录shell会话 124
5.5.4 unix2dos:将Linux文件转换为Macintosh格式或Windows格式 125
5.6 压缩和归档文件 126
5.6.1 bzip2:压缩文件 126
5.6.2 bunzip2和bzcat:解压文件 127
5.6.3 gzip:压缩文件 127
5.6.4 tar:打包和解包归档文件 128
5.7 定位命令 130
5.7.1 which和whereis:定位实用工具 130
5.7.2 apropos:搜索关键字 131
5.7.3 slocate:搜索文件 131
5.8 获取用户信息和系统信息 132
5.8.1 who:列出系统上的用户 132
5.8.2 finger:列出系统上的用户 132
5.8.3 w:列出系统上的用户 134
5.9 与其他用户通信 135
5.9.1 write:发送消息 135
5.9.2 mesg:拒绝或接受消息 136
5.10 电子邮件 136
5.11 教程:使用vim创建和编辑文件 136
5.11.1 启动vim 137
5.11.2 命令模式和输入模式 138
5.11.3 输入文本 139
5.11.4 获取帮助 139
5.11.5 结束编辑会话 141
5.11.6 参数compatible 142
5.12 本章小结 142
5.13 练习 144
5.14 高级练习 144
第6章 Linux文件系统 146
6.1 层次文件系统 146
6.2 目录文件和普通文件 147
6.2.1 文件名 148
6.2.2 工作目录 150
6.2.3 主目录 150
6.3 路径名 151
6.3.1 绝对路径名 151
6.3.2 相对路径名 152
6.4 目录命令 153
6.4.1 mkdir:创建目录 153
6.4.2 重要的标准目录和文件 155
6.5 目录操作 157
6.5.1 rmdir:删除目录 157
6.5.2 使用路径名 158
6.5.3 mv/cp:移动/复制文件 158
6.5.4 mv:移动目录 159
6.6 访问权限 159
6.6.1 ls -l:显示访问权限 159
6.6.2 chmod:改变访问权限 160
6.6.3 setuid和setgid权限 161
6.6.4 目录访问权限 162
6.7 ACL:访问控制列表 163
6.7.1 开启ACL 164
6.7.2 处理访问规则 164
6.7.3 设置目录的默认规则 166
6.8 链接 167
6.8.1 硬链接 168
6.8.2 符号链接 170
6.8.3 rm:删除链接 172
6.9 本章小结 172
6.10 练习 173
6.11 高级练习 175
第7章 shell 176
7.1 命令行 176
7.1.1 语法 176
7.1.2 处理命令行 179
7.1.3 执行命令行 180
7.1.4 编辑命令行 181
7.2 标准输入输出 181
7.2.1 作为文件的屏幕 181
7.2.2 作为标准输入的键盘和作为标准输出的屏幕 182
7.2.3 重定向 183
7.2.4 管道 187
7.3 在后台运行程序 190
7.4 文件名生成/路径名展开 191
7.4.1 特殊字符? 191
7.4.2 特殊字符 192
7.4.3 特殊字符[] 193
7.5 内置命令 195
7.6 本章小结 195
7.7 练习 196
7.8 高级练习 197
第三部分 深入研究Ubuntu Linux第8章 Linux GUI:X和GNOME 200
8.1 X窗口系统 200
8.1.1 使用X 202
8.1.2 窗口管理器 206
8.2 Nautilus文件管理器窗口 207
8.2.1 视图栏 208
8.2.2 侧边栏 209
8.2.3 控制栏 210
8.2.4 菜单栏 210
8.3 GNOME实用工具 213
8.3.1 桌面工具栏小程序 213
8.3.2 字体首选项 214
8.3.3 “拾取字体”窗口 214
8.3.4 “拾取颜色”窗口 215
8.3.5 “运行应用程序”窗口 216
8.3.6 搜索文件 216
8.3.7 GNOME终端仿真器/shell 217
8.4 本章小结 218
8.5 练习 218
8.6 高级练习 218
第9章 bash 220
9.1 背景知识 221
9.2 shell基础 221
9.2.1 初始化文件 221
9.2.2 符号命令 224
9.2.3 重定向标准错误输出 224
9.2.4 编写一个简单的shell脚本 226
9.2.5 命令分隔和命令分组 229
9.2.6 作业控制 232
9.2.7 操作目录栈 234
9.3 参数和变量 236
9.3.1 用户创建的变量 237
9.3.2 变量属性 240
9.3.3 关键字变量 241
9.4 特殊字符 247
9.5 进程 248
9.5.1 进程结构 248
9.5.2 进程标识 249
9.5.3 执行命令 250
9.6 命令历史机制 250
9.6.1 控制历史机制的变量 251
9.6.2 重新执行和编辑命令 252
9.6.3 Readline库 258
9.7 别名 263
9.7.1 别名中的单引号和双引号 264
9.7.2 别名示例 264
9.8 函数 266
9.9 控制bash的特性和选项 268
9.9.1 命令行选项 268
9.9.2 shell特性 268
9.10 处理命令行 270
9.10.1 历史展开 271
9.10.2 别名替换 271
9.10.3 解析和扫描命令行 271
9.10.4 命令行展开 271
9.11 本章小结 278
9.12 练习 279
9.13 高级练习 281
第10章 网络和因特网 282
10.1 网络类型和工作方式 284
10.1.1 广播网络 284
10.1.2 点对点网络 284
10.1.3 交换网络 285
10.1.4 LAN:局域网 285
10.1.5 WAN:广域网 286
10.1.6 通过网关和路由器进行网络互连 287
10.1.7 网络协议 289
10.1.8 主机地址 290
10.1.9 CIDR:无类域间路由 294
10.1.10 主机名 295
10.2 网络通信 296
10.2.1 finger:显示远程用户的信息 296
10.2.2 向远程用户发送邮件 297
10.2.3 邮件列表服务器 297
10.3 网络实用工具 298
10.3.1 可信主机 298
10.3.2 OpenSSH工具 298
10.3.3 telnet:登录远程系统 298
10.3.4 ftp:通过网络传输文件 300
10.3.5 ping:测试网络连接 301
10.3.6 traceroute:因特网路由跟踪 301
10.3.7 host和dig:查询因特网命名服务器 302
10.3.8 jwhois:查询因特网站点信息 303
10.4 分布式计算 304
10.4.1 客户端/服务器模型 304
10.4.2 DNS:域名服务 305
10.4.3 端口 307
10.4.4 NIS:网络信息服务 307
10.4.5 NFS:网络文件系统 307
10.4.6 因特网服务 307
10.4.7 代理服务器 310
10.4.8 RPC网络服务 310
10.5 Usenet 311
10.6 WWW:万维网 313
10.6.1 URL:统一资源定位符 313
10.6.2 浏览器 314
10.6.3 搜索引擎 314
10.7 本章小结 314
10.8 练习 315
10.9 高级练习 316
第11章 bash程序设计 317
11.1 控制结构 318
11.1.1 if...then 318
11.1.2 if...then...else 321
11.1.3 if...then...elif 322
11.1.4 for...in 327
11.1.5 for 328
11.1.6 while 330
11.1.7 until 333
11.1.8 break与continue 334
11.1.9 case 335
11.1.10 select 341
11.1.11 Here文档 342
11.2 文件描述符 344
11.3 参数和变量 347
11.3.1 数组变量 347
11.3.2 变量局部性 348
11.3.3 特殊参数 350
11.3.4 位置参数 352
11.3.5 展开空变量和未设置变量 355
11.4 内置命令 357
11.4.1 type:显示命令相关信息 357
11.4.2 read:接受用户输入 357
11.4.3 exec:执行命令 360
11.4.4 trap:捕获信号 362
11.4.5 kill:终止进程 365
11.4.6 getopts:解析选项 365
11.4.7 部分内置命令 367
11.5 表达式 368
11.5.1 算术求值 368
11.5.2 逻辑表达式(条件表达式) 369
11.5.3 字符串模式匹配 370
11.5.4 操作符 371
11.6 shell程序 374
11.6.1 递归的shell脚本 375
11.6.2 quiz shell脚本 377
11.7 本章小结 383
11.8 练习 384
11.9 高级练习 385
第四部分 附录 388
附录A 正则表达式 388
附录B 帮助 395