第1章 系统概述与安装 1
1.1 Linux的发展过程 1
1.2 充分利用网上资源 2
1.2.1 Ubuntu官方网站 2
1.2.2 GNU网站 3
1.2.3 Linux文档项目网站 3
1.2.4 网上求助 3
1.3 随时查询随机文档 3
1.3.1 查询命令的简单用法 3
1.3.2 查询系统参考手册 4
1.3.3 其他命令求助方法 6
1.4 安装过程 7
1.4.1 前期准备 7
1.4.2 安装过程 9
1.4.3 后期维护与更新 18
第2章 GNOME桌面 20
2.1 GNOME桌面概述 20
2.1.1 GNOME注册界面 20
2.1.2 GNOME桌面 21
2.2 GNOME桌面浏览 22
2.2.1 GNOME菜单面板 22
2.2.2 GNOME桌面区 25
2.2.3 GNOME窗口面板 27
2.3 应用程序菜单 28
2.3.1 Internet 28
2.3.2 办公 31
2.3.3 附件 33
2.3.4 图形 35
2.3.5 影音 35
2.3.6 游戏 38
2.3.7 Ubuntu软件中心 38
2.4 位置菜单 38
2.4.1 主文件夹 39
2.4.2 桌面、文档等 39
2.4.3 计算机 40
2.4.4 磁盘分区 40
2.4.5 移动存储设备 41
2.4.6 搜索文件 42
2.5 系统菜单 42
2.5.1 首选项 43
2.5.2 系统管理 44
2.6 定制GNOME桌面环境 48
2.6.1 定制面板 48
2.6.2 定制桌面背景 48
2.6.3 定制菜单面板 49
第3章 命令行基础知识 51
3.1 命令行结构 51
3.2 后台进程 54
3.3 标准输入、输出与错误输出 55
3.4 I/O重定向 56
3.5 管道 60
3.6 元字符与文件名生成 62
3.7 转义与引用 65
3.8 命令历史 68
3.8.1 fc命令 68
3.8.2 history命令 70
3.8.3 重复执行先前的命令 71
3.8.4 命令行的编辑与执行 73
3.8.5 命令行补充 74
3.9 命令别名 76
3.10 作业控制 79
3.11 会话记录与命令确认 81
3.11.1 保存会话记录 81
3.11.2 命令的查询与验证 83
第4章 文件系统基础知识 85
4.1 文件系统的层次结构 85
4.1.1 树形结构 85
4.1.2 路径名 86
4.2 文件系统的组织结构 87
4.3 文件的类型 91
4.3.1 普通文件 91
4.3.2 目录文件 93
4.3.3 特殊文件 95
4.3.4 链接文件 98
4.3.5 符号链接文件 99
4.3.6 管道文件 101
4.4 文件的安全保护机制 101
4.4.1 显示文件的访问权限 102
4.4.2 修改文件的访问权限 103
4.4.3 设置文件的访问权限 104
4.4.4 其他访问权限设置 106
第5章 文件与目录操作 108
5.1 创建文件 108
5.2 显示文件列表 109
5.2.1 使用ls命令列出文件 109
5.2.2 利用通配符显示文件 111
5.2.3 显示隐藏文件 112
5.2.4 递归地列出文件 113
5.3 显示文件内容 114
5.3.1 使用cat命令显示文件 114
5.3.2 使用more命令分页显示文件 115
5.3.3 使用less命令分页显示文件 116
5.3.4 显示文件前几行内容 117
5.3.5 显示文件最后几行内容 118
5.4 复制文件 118
5.5 移动文件 119
5.6 删除文件 121
5.7 显示当前工作目录 122
5.8 改换目录 122
5.9 创建目录 123
5.10 移动目录 124
5.11 复制目录 124
5.12 删除目录 125
5.13 比较文件之间的差别 126
5.14 从系统中检索文件 127
5.14.1 简单检索 128
5.14.2 使用逻辑运算符 129
5.14.3 调用其他命令处理检索结果 129
5.14.4 利用管道实现其他处理功能 130
5.15 检索文件内容 130
5.15.1 利用grep检索文件内容 130
5.15.2 过滤其他命令的输出数据 131
5.15.3 同时检索多个文件 132
5.15.4 检索不包含特定模式的文本行 132
5.15.5 使用正则表达式进行检索 132
5.15.6 检索元字符本身 135
5.15.7 在命令行中使用引号 135
5.16 排序 136
第6章 vim编辑器 139
6.1 启动vim编辑器 139
6.1.1 创建文件 139
6.1.2 状态行 140
6.2 vim编辑器的工作模式 140
6.2.1 输入模式 141
6.2.2 命令模式 141
6.3 保存文件与退出vim 141
6.4 vim编辑器的基本命令 142
6.4.1 移动光标位置 143
6.4.2 输入文本 144
6.4.3 修改与替换文本 144
6.4.4 撤销先前的修改 145
6.4.5 删除文本 145
6.4.6 复制、删除与粘贴文本 146
6.4.7 重复执行命令 147
6.5 使用ex命令 147
6.5.1 显示行号 147
6.5.2 多行复制 148
6.5.3 移动文本行 148
6.5.4 删除文本行 148
6.6 检索与替换 149
6.6.1 字符串检索 149
6.6.2 模式检索 150
6.6.3 字符串替换 151
6.7 编辑多个文件 151
6.7.1 编辑多个文件 151
6.7.2 合并文件与文本行 152
6.8 定制vim编辑器的运行环境 152
6.8.1 临时设定vim运行环境 152
6.8.2 永久定制vim运行环境 155
6.9 其他说明 155
6.9.1 删除或替换特殊字符 155
6.9.2 在编辑期间运行Linux命令 156
6.10 vim编辑器命令总结 157
第7章 Shell基础知识 161
7.1 Shell与Shell脚本 161
7.1.1 为什么需要Shell编程 161
7.1.2 何为Shell脚本 162
7.1.3 运行Shell脚本 163
7.1.4 退出与出口状态 163
7.1.5 调用指定的Shell解释程序 165
7.1.6 位置参数 167
7.2 变量与变量替换 169
7.2.1 变量分类 169
7.2.2 变量赋值 170
7.2.3 内部变量 170
7.2.4 变量的引用与替换 173
7.2.5 变量的间接引用 175
7.2.6 特殊的变量替换形式 176
7.2.7 变量声明与类型定义 179
7.3 命令与命令替换 180
7.3.1 Shell内部命令 180
7.3.2 部分命令介绍 184
7.3.3 命令替换 195
7.4 test语句 197
7.4.1 文件测试运算符 198
7.4.2 字符串测试运算符 200
7.4.3 整数测试运算符 201
7.4.4 逻辑运算符 202
7.5 命令行的解释执行过程 203
7.5.1 读取命令行 204
7.5.2 命令历史替换 205
7.5.3 别名替换 205
7.5.4 花括号扩展 205
7.5.5 波浪号替换 206
7.5.6 I/O重定向 207
7.5.7 变量替换 208
7.5.8 算术运算结果替换 208
7.5.9 命令替换 208
7.5.10 单词解析 209
7.5.11 文件名生成 210
7.5.12 引用字符处理 210
7.5.13 进程替换 211
7.5.14 环境处理 212
7.5.15 执行命令 212
7.5.16 跟踪执行过程 213
第8章 Shell高级编程 214
8.1 if条件语句 214
8.1.1 if语句的基本形式 214
8.1.2 嵌套的if语句 216
8.1.3 if语句综合应用实例 218
8.2 case分支语句 219
8.3 for循环语句 222
8.4 while循环语句 226
8.5 until循环语句 227
8.6 select循环语句 228
8.7 嵌套的循环 230
8.8 循环控制与辅助编程命令 231
8.8.1 break和continue命令 231
8.8.2 true命令 233
8.8.3 sleep命令 234
8.8.4 shift命令 234
8.8.5 getopt命令 235
8.8.6 getopts命令 236
8.9 循环语句的I/O重定向 239
8.9.1 while循环的I/O重定向 239
8.9.2 until循环的I/O重定向 240
8.9.3 for循环的I/O重定向 240
8.10 Here文档 241
8.11 Shell函数 246
8.12 逻辑并列结构 252
8.12.1 逻辑与命令并列结构 252
8.12.2 逻辑或命令并列结构 253
8.13 Shell数组 253
8.14 信号的捕捉与处理 257
8.15 其他Shell课题 261
8.15.1 子Shell 261
8.15.2 Shell脚本的调试 262
8.15.3 系统性能考虑 267
第9章 用户管理 269
9.1 增加与删除用户 269
9.1.1 passwd文件 269
9.1.2 shadow文件 271
9.1.3 用户管理实例 272
9.2 定制用户的工作环境 277
9.2.1 选择命令解释程序 277
9.2.2 设置用户初始化文件 279
9.2.3 定制Shell工作环境 281
9.3 增加与删除用户组 287
9.4 监控用户 288
9.4.1 利用who命令查询用户 288
9.4.2 利用finger命令查询用户 289
9.4.3 利用w命令查询用户活动 290
9.4.4 向注册用户发送消息 290
9.5 插件式认证模块 291
9.5.1 配置文件、模块类型与控制标志 291
9.5.2 修改PAM配置文件 295
9.6 超级用户与sudo命令 296
9.6.1 超级用户的访问控制 296
9.6.2 利用sudo运行特权命令 297
9.6.3 sudoers配置文件 299
9.6.4 admin用户组成员的访问权限 303
9.6.5 直接使用root注册 303
9.6.6 以其他用户身份访问系统 304
第10章 进程管理 306
10.1 ps命令概述 306
10.2 查询进程及其状态信息 309
10.2.1 查询当前活动的进程 309
10.2.2 查询系统中的所有进程 309
10.2.3 显示进程的重要状态信息 310
10.2.4 显示进程的详细状态信息 310
10.2.5 显示进程间的调用关系 311
10.2.6 pstree命令 312
10.3 监控进程及系统资源 313
10.4 终止进程的运行 318
10.5 调整分时进程的优先级 320
10.5.1 nice命令 321
10.5.2 renice命令 322
10.5.3 调整进程优先级的作用 323
第11章 proc文件系统 324
11.1 进程内存映像文件 324
11.2 系统配置信息 328
11.3 系统运行状态信息 332
11.4 系统可调参数 337
11.4.1 文件系统可调参数 337
11.4.2 系统内核可调参数 338
11.4.3 sysctl命令 342
第12章 磁盘空间管理 345
12.1 查询磁盘空间信息 345
12.1.1 常用磁盘空间管理工具 345
12.1.2 使用df命令查询空间使用情况 345
12.1.3 使用du命令查询已用存储空间 348
12.1.4 使用find命令找出超大文件 349
12.1.5 使用find命令找出闲置文件 350
12.1.6 使用find命令处置core文件 351
12.1.7 使用ls命令检测文件的大小 351
12.2 采用标准工具备份与恢复数据 352
12.2.1 利用cpio命令实现数据备份与恢复 353
12.2.2 利用tar命令实现数据备份与恢复 359
12.2.3 利用dd命令实现数据的原样复制 368
12.3 采用专用工具备份与恢复数据 370
12.3.1 利用dump命令备份数据 371
12.3.2 利用restore命令恢复数据 373
第13章 软件管理 377
13.1 软件管理概述 377
13.1.1 软件维护工具 377
13.1.2 软件管理基本概念 377
13.2 利用apt-get管理软件包 379
13.2.1 安装软件包 381
13.2.2 软件更新与系统升级 382
13.2.3 删除软件包 383
13.2.4 安装存储介质中的软件包 384
13.2.5 sources.list配置文件 384
13.3 利用aptitude管理软件包 386
13.3.1 安装软件包 388
13.3.2 更新与升级 389
13.3.3 查询软件包 389
13.3.4 检索软件包 390
13.3.5 删除软件包 392
13.4 synaptic软件管理工具 392
13.4.1 浏览软件包 394
13.4.2 安装软件包 394
13.4.3 删除软件包 395
13.4.4 软件升级 396
13.5 Ubuntu软件中心 397
13.6 软件包的更新 399
第14章 文件系统管理 401
14.1 划分磁盘分区 401
14.2 创建文件系统 403
14.2.1 mkfs与mke2fs命令介绍 403
14.2.2 创建Ext2/3/4文件系统 405
14.3 调整文件系统 406
14.4 安装与卸载文件系统 409
14.4.1 安装文件系统概述 409
14.4.2 mount命令 410
14.4.3 fstab文件 411
14.4.4 安装文件系统 412
14.4.5 卸载文件系统 415
14.5 检测与修复文件系统 417
14.5.1 何时需要检测文件系统 418
14.5.2 文件系统检测的内容 419
14.5.3 交互检测与修复文件系统 423
14.5.4 自动检测与修复文件系统 424
14.5.5 恢复严重受损的超级块 425
14.5.6 其他文件系统修复方法 426
14.5.7 fsck的处理方式 426
14.6 调试文件系统 430
14.6.1 概述 430
14.6.2 交互调试子命令 430
14.6.3 恢复误删的文件 436
14.6.4 恢复误删的文件(续) 438
第15章 系统启动与关机 442
15.1 磁盘分区与GRUB 442
15.1.1 磁盘分区 442
15.1.2 GRUB引导程序 443
15.1.3 GRUB配置文件 444
15.1.4 GRUB实用程序 452
15.1.5 安装或修复GRUB 455
15.2 初始引导过程概述 457
15.3 系统生成过程 459
15.3.1 作业配置文件 460
15.3.2 rc-sysinit.conf作业 465
15.3.3 init进程与/etc/init目录 466
15.3.4 init进程与/etc/rcN.d目录 468
15.3.5 启动应用程序 470
15.4 login进程 471
15.4.1 login进程与passwd文件 471
15.4.2 Shell进程与profile文件 471
15.5 系统关机过程 471
15.5.1 使用shutdown命令关闭系统 471
15.5.2 使用init命令关闭系统 472
15.5.3 使用其他命令关机 472
第16章 作业调度与系统日志 473
16.1 定时运行后台作业 473
16.1.1 cron守护进程的调度过程 473
16.1.2 at作业与atd守护进程 474
16.1.3 调度错过执行时间的任务 475
16.2 调度重复执行的任务 476
16.2.1 crontab文件及其工作原理 476
16.2.2 创建和编辑crontab文件 478
16.2.3 显示crontab文件 479
16.2.4 删除crontab文件 480
16.2.5 crontab命令的访问控制 480
16.2.6 数据库定时备份实例 481
16.3 调度一次性执行的作业 482
16.3.1 提交at作业 483
16.3.2 显示at作业及作业队列 484
16.3.3 删除at作业 484
16.3.4 at命令的访问控制 485
16.3.5 系统定时关机实例 485
16.4 系统日志 487
16.4.1 系统日志文件 487
16.4.2 应用程序日志文件 488
16.4.3 无法直接查阅的日志 489
16.4.4 系统日志守护进程 490
第17章 TCP/IP网络管理 493
17.1 网络接口设置 493
17.1.1 以太网络设置 493
17.1.2 ADSL网络连接 499
17.2 主机名字解析 502
17.3 网络路由设置 503
17.4 配置网络服务 504
17.5 网络管理与维护 506
17.5.1 使用ifconfig命令维护网络接口 506
17.5.2 使用netstat命令监控网络状态 507
17.5.3 使用ping命令测试远程主机的连通性 513
17.5.4 使用ping命令检测网络主机的性能 515
17.5.5 使用ftp命令检测网络主机的传输性能 515
17.5.6 使用traceroute命令跟踪路由信息 516
第18章 TCP/IP网络应用 518
18.1 OpenSSH 518
18.1.1 安装OpenSSH服务器 518
18.1.2 sshd_config配置文件 519
18.1.3 使用SSH注册到远程系统 522
18.1.4 执行远程系统命令 523
18.1.5 使用SCP替代FTP 523
18.1.6 使用SFTP替代PTP 524
18.1.7 SSH与SCP的无密码注册 525
18.1.8 OpenSSH的安全考虑 527
18.2 Telnet远程注册 528
18.3 FTP文件传输 530
18.3.1 设置vsftpd 531
18.3.2 vsftpd.conf配置文件 531
18.3.3 ftp命令 535
18.3.4 FTP应用 537
18.3.5 FTP自动注册 538
18.3.6 FTP安全考虑 539