第1章 系统概述与安装 1
1.1 Linux的兴起与发展 2
1.2充分利用网上资源 3
1.2.1 Ubuntu官方网站 3
1.2.2 GNU网站 4
1.2.3 Linux文档项目网站 4
1.2.4网上求助 5
1.3随时查询随机文档 6
1.3.1使用“--help”,选项查询命令的简单说明 6
1.3.2使用man命令联机查询系统参考手册 6
1.3.3使用info命令查询命令的相关信息 8
1.4安装Ubuntu Linux系统 9
1.4.1安装前的准备 10
1.4.2安装Ubuntu Linux系统 11
1.4.3安装后的软件维护与更新 16
第2章GNOME桌面环境 18
2.1 GNOME桌面环境概述 19
2.1.1 GNOME注册界面 19
2.1.2 GNOME桌面环境 20
2.2 GNOME桌面环境浏览 21
2.2.1 GNOME菜单面板 21
2.2.2 GNOME桌面区 24
2.2.3 GNOME窗口面板 26
2.3应用程序菜单 27
2.3.1办公 28
2.3.2附件 29
2.3.3互联网 31
2.3.4图形 33
2.3.5影音 34
2.3.6游戏 36
2.3.7添加/删除软件 36
2.4位置菜单 36
2.4.1主文件夹 38
2.4.2桌面、文档等 39
2.4.3计算机 39
2.4.4 CD/DVD刻录机 39
2.4.5磁盘分区 40
2.4.6网络 40
2.4.7连接到服务器 41
2.4.8搜索文件 41
2.4.9最近的文档 42
2.5系统菜单 42
2.5.1首选项 42
2.5.2系统管理 45
2.5.3锁住屏幕 51
2.5.4注销 51
2.5.5关机 51
2.6使用移动存储设备 51
2.6.1浏览移动存储介质 52
2.6.2写入移动存储介质 53
2.7定制GNOME桌面环境 54
2.7.1定制面板 54
2.7.2定制桌面背景 54
2.7.3定制菜单面板 55
第3章 命令行基础知识 56
3.1命令行结构 57
3.2后台进程 60
3.3标准输入/标准输出与标准错误输出 61
3.4输入/输出重定向 61
3.5管道 65
3.6元字符与文件名生成 67
3.7转义与引用 69
3.8命令历史 72
3.8.1 fc命令 72
3.8.2 history命令 74
3.8.3重复执行先前的命令 75
3.8.4编辑并执行校正后的命令 76
3.8.5命令行补充 77
3.9命令别名 79
3.10作业控制 81
3.11会话记录与命令确认 83
3.11.1保存会话记录 83
3.11.2确保使用的命令是正确的 84
第4章 文件系统基础知识 86
4.1文件系统的层次结构 87
4.1.1树形层次结构 87
4.1.2路径名 88
4.2文件系统的组织结构 88
4.3文件的类型 92
4.3.1普通文件 92
4.3.2目录文件 94
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章 文件和目录操作 107
5.1创建文件 108
5.2显示文件列表 108
5.2.1使用Is命令显示文件列表 108
5.2.2利用通配符显示文件 110
5.2.3显示隐藏文件 111
5.2.4递归地列出文件 112
5.3显示文件内容 113
5.3.1使用cat命令显示文件 113
5.3.2使用more命令分页显示文件 113
5.3.3使用less命令分页显示文件 114
5.3.4使用head命令显示文件前几行内容 115
5.3.5使用tail命令显示文件最后几行内容 116
5.4复制文件 116
5.5移动文件 117
5.6删除文件 118
5.7显示当前工作目录 119
5.8改换目录 119
5.9创建目录 121
5.10移动目录 121
5.11复制目录 121
5.12删除目录 122
5.13比较文件之间的差别 123
5.13.1使用diff命令比较两个文件 123
5.13.2使用diff3命令比较3个文件 123
5.14从系统中检索文件 124
5.14.1简单检索 126
5.14.2使用逻辑运算符 126
5.14.3利用find命令本身实现其他处理功能 126
5.14.4利用管道实现其他处理功能 127
5.15 检索文件内容 127
5.15.1利用grep检索文件内容 127
5.15.2过滤其他命令的输出数据 128
5.15.3使用grep检索多个文件 128
5.15.4检索不包含特定字符串的文本行 129
5.15.5在grep中使用正则表达式 129
5.15.6检索元字符本身 131
5.15.7在命令行中使用引号 131
5.16排序 132
第6章 编辑文件 133
6.1启动vim编辑器 134
6.1.1创建文件 134
6.1.2状态行 135
6.2 vim编辑器的两种工作模式 135
6.2.1输入模式 135
6.2.2命令模式 135
6.3保存编辑的文件并退出vim 136
6.4 vim编辑器的基本命令 137
6.4.1移动光标位置 137
6.4.2输入文本 138
6.4.3修改与替换文本 138
6.4.4撤销先前的修改 139
6.4.5删除文本 139
6.4.6复制、删除与粘贴文本 140
6.4.7按指定的数量重复执行命令 141
6.5使用ex命令 141
6.5.1显示行号 141
6.5.2多行复制 142
6.5.3移动文本行 142
6.5.4删除文本行 142
6.6检索与替换 142
6.6.1检索字符串 142
6.6.2模式检索 143
6.6.3替换字符串 144
6.7编辑多个文件 145
6.7.1编辑多个文件 145
6.7.2合并文件与合并文本行 145
6.8定制vim编辑器的运行环境 145
6.8.1临时设定vim的运行环境 145
6.8.2永久性地定制vim的运行环境 148
6.9其他特殊说明 148
6.9.1删除或替换特殊字符 148
6.9.2在编辑期间运行Linux命令 149
6.10 vim编辑器命令总结 149
第7章Shell基础知识 153
7.1 Shell与Shell编程 154
7.1.1为什么需要Shell编程 154
7.1.2什么是Shell脚本 155
7.1.3运行Shell脚本 155
7.1.4退出与出口状态 156
7.1.5调用适当的Shell解释程序 158
7.1.6位置参数 159
7.2变量与变量替换 161
7.2.1变量分类 162
7.2.2变量的赋值 162
7.2.3内部变量 163
7.2.4变量的引用与替换 165
7.2.5变量的间接引用 167
7.2.6特殊的变量替换 167
7.2.7变量声明与类型定义 170
7.3命令与命令替换 171
7.3.1 Shell内部命令 171
7.3.2部分命令介绍 174
7.3.3命令替换 183
7.4 test语句 185
7.4.1文件测试运算符 186
7.4.2字符串测试运算符 187
7.4.3整数值测试运算符 188
7.4.4逻辑运算符 189
7.5命令行的解释执行过程 190
7.5.1读取命令行 191
7.5.2命令历史替换 191
7.5.3别名替换 192
7.5.4花括号扩展 192
7.5.5波浪号替换 192
7.5.6 I/O重定向 193
7.5.7变量替换 194
7.5.8算术运算结果替换 195
7.5.9命令替换 195
7.5.10单词解析 195
7.5.11文件名生成 196
7.5.12引用字符处理 197
7.5.13进程替换 197
7.5.14环境处理 198
7.5.15 执行命令 198
7.5.16跟踪执行过程 199
第8章Shell高级编程 200
8.1 if条件语句 201
8.1.1 if语句的表现形式 201
8.1.2嵌套的if-then条件测试 202
8.1.3 if-then结构参考 204
8.2 case分支语句 205
8.3 for循环语句 207
8.4 while循环语句 210
8.5 until循环语句 212
8.6 select循环语句 213
8.7嵌套的循环 214
8.8循环控制与辅助编程命令 215
8.8.1 break和continue命令 215
8.8.2 true命令 217
8.8.3 sleep命令 217
8.8.4 shift命令 217
8.8.5 getopt命令 218
8.8.6 getopts命令 219
8.9循环语句的I/O重定向 221
8.9.1 while循环的I/O重定向 221
8.9.2 until循环的I/O重定向 222
8.9.3 for循环的I/O重定向 222
8.10 Here文档 223
8.11 Shell函数 227
8.12逻辑与和逻辑或并列结构 232
8.12.1逻辑与命令并列结构 232
8.12.2逻辑或命令并列结构 233
8.13 Shell数组 233
8.14信号的捕捉与处理 238
8.15 其他Shell课题 241
8.15.1子Shell 241
8.15.2 Shell脚本的调试 242
8.15.3系统性能考虑 246
第9章 进程管理 248
9.1 ps命令概述 249
9.2查询进程及其状态信息 251
9.2.1查询当前活动的进程 251
9.2.2查询系统中的所有进程 251
9.2.3显示进程的重要状态信息 252
9.2.4显示进程的详细状态信息 253
9.2.5显示进程间的调用关系 253
9.2.6 pstree命令 254
9.3监控进程及系统资源 255
9.4终止进程的运行 259
9.5调整分时进程的优先级 261
9.5.1 nice命令 261
9.5.2 renice命令 263
9.5.3调整进程优先级的作用 263
第10章proc文件系统 265
10.1进程内存映像文件 266
10.2系统配置信息 270
10.3系统运行状态信息 273
10.4系统可调参数 276
10.4.1文件系统可调参数 277
10.4.2系统内核可调参数 277
10.4.3 sysctl命令 281
10.5其他重要的子目录 282
第11章 磁盘空间管理 285
11.1查询磁盘空间信息 286
11.1.1常用的磁盘空间管理工具 286
11.1.2使用df命令检查磁盘空间的使用情况 286
11.1.3使用du命令检查目录占用的存储空间 289
11.1.4使用find命令找出超过一定容量限制的文件 290
11.1.5使用fiind命令找出并删除长期闲置不用的文件 290
11.1.6使用fiind命令找出并删除core文件 292
11.1.7使用Is命令检测文件的大小 292
11.2采用标准工具备份与恢复数据 292
11.2.1利用cpio实现备份和恢复 294
11.2.2利用tar实现备份和恢复 298
11.2.3利用dd实现文件系统的原样复制 304
11.3采用专用工具备份与恢复数据 305
11.3.1利用dump命令实现数据的备份 306
11.3.2利用restore命令实现数据的恢复 308
11.4文件系统限额管理 310
11.4.1限额概述 310
11.4.2设置限额 312
11.4.3限额的维护 315
第12章 软件管理 318
12.1软件管理概述 319
12.1.1软件维护工具 319
12.1.2软件管理基本概念 319
12.2利用apt-get管理软件包 321
12.2.1安装软件包 323
12.2.2系统的更新与升级 324
12.2.3删除软件包 325
12.2.4安装本地存储介质中的软件包 325
12.2.5 sources.list配置文件 325
12.3利用aptitude管理软件包 327
12.3.1安装软件包 329
12.3.2系统的升级 330
12.3.3查询软件包 330
12.3.4检索软件包 330
12.3.5删除软件包 332
12.3.6图形界面 333
12.4 synaptic图形界面软件管理工具 333
12.4.1浏览软件包 335
12.4.2安装软件包 335
12.4.3删除软件包 336
12.4.4软件升级 337
12.5 GNOME软件增删工具 338
12.6软件包的自动更新 339
第13章 用户管理 341
13.1增加与删除用户 342
13.1.1 /etc/passwd文件 342
13.1.2 /etc/shadow文件 343
13.1.3用户管理实例 344
13.2定制用户的工作环境 349
13.2.1选择命令解释程序 349
13.2.2设置用户初始化文件 351
13.2.3定制Shell工作环境 353
13.3增加与删除用户组 359
13.4监控用户 360
13.4.1利用who命令查询系统中的用户 361
13.4.2利用finger命令查询系统中的用户 362
13.4.3利用w命令查询系统中的用户活动 362
13.4.4向注册用户发送消息 362
13.5插件式认证模块 363
13.5.1配置文件、模块类型与控制标志 363
13.5.2修改PAM配置文件 366
13.6超级用户与sudo命令 366
13.6.1超级用户的访问控制 367
13.6.2利用sudo运行特权命令 368
13.6.3 sudoers配置文件 369
13.6.4 admin用户组成员的访问权限 373
13.6.5直接使用root注册 373
13.6.6以不同的用户身份访问系统 373
第14章 系统启动与关机 375
14.1磁盘分区与GRUB 376
14.1.1磁盘分区 376
14.1.2 GRUB 378
14.1.3 GRUB配置文件 379
14.1.4安装或修复GRUB 381
14.2初始引导过程 383
14.2.1 GRUB引导过程概述 384
14.2.2补充说明 386
14.3系统生成过程 386
14.3.1基本概念 388
14.3.2 init进程与/etc/event.d目录 391
14.3.3启动用户定义的应用程序 394
14.4login进程 395
14.4.1 login进程与passwd文件 395
14.4.2 Shell进程与profiile文件 395
14.5系统关机过程 396
14.5.1使用shutdown命令关闭系统 396
14.5.2使用init命令关闭系统 397
14.5.3使用其他命令关机 397
第15章 作业调度与系统日志 398
15.1定时运行后台作业 399
15.1.1 cron守护进程的调度过程 399
15.1.2 at作业与atd守护进程 400
15.1.3调度错失执行时间的任务 401
15.2调度重复执行的任务 402
15.2.1 crontab文件的工作原理 402
15.2.2创建和编辑crontab文件 404
15.2.3显示crontab文件 405
15.2.4删除crontab文件 405
15.2.5 crontab命令的访问控制 405
15.2.6应用实例——数据库定时备份 406
15.3调度一次性执行的作业 407
15.3.1提交at作业 408
15.3.2显示at作业及作业队列 409
15.3.3删除at作业 409
15.3.4 at命令的访问控制 409
15.3.5应用实例——系统定时关机 410
15.4系统日志 411
15.4.1系统日志文件 412
15.4.2应用程序日志文件 413
15.4.3无法直接查阅的日志 413
15.4.4系统日志守护进程 414
第16章 文件系统内部组织 417
16.1文件系统的组织结构 418
16.1.1引导块 419
16.1.2数据块组 419
16.2超级块 422
16.3信息节点 424
16.3.1文件的类型与访问权限 426
16.3.2数据块地址数组 426
16.3.3符号链接文件 427
16.3.4特权标志位 427
16.4信息节点与目录及文件的关系 428
16.4.1目录文件 428
16.4.2目录、文件和信息节点三者之间的关系 429
第17章 文件系统管理 431
17.1划分磁盘分区 432
17.2创建文件系统 434
17.2.1 mkfs或mke2fs命令介绍 434
17.2.2创建Ext2/Ext3文件系统 436
17.3调整文件系统 437
17.4安装与卸载文件系统 439
17.4.1安装文件系统概述 439
17.4.2 mount命令 440
17.4.3 /etc/fstab文件 441
17.4.4安装文件系统 442
17.4.5卸载文件系统 444
17.5检测与修复文件系统 446
17.5.1何时需要检测文件系统 447
17.5.2文件系统检测的内容 448
17.5.3交互地检测与修复文件系统 452
17.5.4自动检测与修复文件系统 453
17.5.5恢复严重受损的超级块 454
17.5.6解决fsck命令无法修复的文件系统问题 454
17.5.7 fsck的阶段处理方式 455
17.6调试文件系统 458
17.6.1概述 458
17.6.2交互式调试子命令 459
17.6.3应用举例1——恢复误删的文件 464
17.6.4应用举例2——恢复误删的文件 465
17.7其他文件系统维护工具 467
17.7.1 dumpe2fs命令 467
17.7.2 e2image命令 468
第18章TCP/IP网络管理 470
18.1 TCP/IP简介 471
18.1.1 TCP/IP的层次结构 471
18.1.2 TCP/IP如何处理数据通信 473
18.2网络接口设置 475
18.2.1以太网络设置 475
18.2.2 ADSL网络连接 480
18.3主机名字解析 483
18.4网络路由设置 484
18.5配置网络服务 485
18.6网络管理与维护 487
18.6.1使用ifconfig命令维护网络接口 487
18.6.2使用netstat命令监控网络状态 489
18.6.3使用ping命令测试远程主机的连通性 494
18.6.4使用ping命令检测网络主机的性能 495
18.6.5使用ftp命令检测网络主机的传输性能 496
18.6.6使用traceroute命令跟踪路由信息 496
18.6.7利用tcpdump捕捉、分析网络分组数据 497
第19章TCP/IP网络应用 501
19.1 OpenSSH 502
19.1.1安装OpenSSH服务器 502
19.1.2 /etc/ssh/sshd_ config配置文件 502
19.1.3使用SSH注册到远程系统 505
19.1.4使用ssh执行远程系统中的命令 506
19.1.5使用SCP替代FTP 506
19.1.6使用SFTP替代FTP 507
19.1.7 SSH与SCP的无密码注册 508
19.1.8 OpenSSH的安全考虑 510
19.2 Telnet远程注册 510
19.2.1设置Telnet服务器 511
19.2.2 Telnet服务器的安全考虑 512
19.3 FTP文件传输 513
19.3.1设置vsftpd 513
19.3.2 vsftpd.conf配置文件 513
19.3.3 FTP安全考虑 517
19.3.4 FTP应用 518
19.3.5 FTP自动注册 519
第20章DNS域名服务器 521
20.1 DNS基本概念 522
20.1.1域与区 522
20.1.2 DNS域名服务器 523
20.1.3 DNS域名与地址解析 524
20.2 DNS配置文件 526
20.2.1 resolv.conf文件 527
20.2.2 named.conf配置文件 528
20.2.3区配置文件 532
20.2.4 DNS资源记录 533
20.3 DNS服务器配置过程 537
20.3.1设置resolv.conf配置文件 537
20.3.2设置named.conf配置文件 537
20.3.3设置正向区配置文件 538
20.3.4设置反向区配置文件 539
20.3.5 DNS视图 540
20.3.6检测配置文件 543
20.4测试DNS服务器 544
20.4.1验证DNS服务器 544
20.4.2 dig命令 545
第21章N FS网络文件系统 548
21.1 NFS简述 549
21.2配置NFS服务器 550
21.2.1安装 NFS服务器软件包 550
21.2.2 /etc/exports文件 551
21.2.3采用图形界面配置NFS共享资源 553
21.2.4验证NFS共享资源的配置 555
21.3配置NFS客户系统 557
21.3.1安装远程文件系统 557
21.3.2设置/etc/fstab文件 558
21.4 NFS自动安装 559
21.4.1主映射文件 559
21.4.2直接映射文件 560
21.4.3间接映射文件 560
21.5 NFS故障修复 561
21.5.1基本工具 561
21.5.2其他注意事项 564
第22章Samba资源共享 565
22.1安装Samba服务器 566
22.2 smb.conf配置文件 567
22.2.1 smb.conf配置文件概述 568
22.2.2 Global节 569
22.2.3 homes节 572
22.2.4 printers节 574
22.3快速设置Samba服务器 575
22.3.1设定Samba服务器的工作组或域 575
22.3.2设置Samba用户认证信息 576
22.3.3共享用户主目录 577
22.3.4共享其他目录 577
22.3.5共享打印机 578
22.3.6验证Samba配置文件 579
22.4 Samba运行环境测试 580
22.4.1在Linux系统中测试Samba服务器 580
22.4.2从Windows系统中连接Samba服务器 583
22.5访问共享资源 584
22.5.1从Windows系统中访问Samba服务器 584
22.5.2从Linux系统中访问Windows服务器 585
第23章Apache服务器 588
23.1 Apache服务器概述 589
23.2启动Apache服务器 589
23.2.1 Apache软件包的目录结构 589
23.2.2 apache2守护进程 590
23.2.3设置Apache启动脚本 591
23.2.4 Apache模块 592
23.3配置Apache服务器 592
23.3.1 Apache配置文件 593
23.3.2 .htaccess文件 594
23.3.3配置指令 594
23.4用户目录 599
23.4.1利用UserDir设定目录路径 600
23.4.2限定用户目录的使用 600
23.4.3开放用户CGI目录 600
23.5虚拟主机 601
23.5.1配置基于主机名的虚拟主机 602
23.5.2配置基于IP地址的虚拟主机 603
23.5.3利用不同的IP地址提供相同的网站服务 604
23.5.4利用不同的端口提供不同的网站服务 604
23.6利用CGI提供动态内容服务 605
23.6.1启用CGI程序 605
23.6.2编写CGI程序 606
23.6.3 CGI的安全考虑与suexec 608
23.6.4 Apache与LAMP 609
23.7用户认证 610
23.7.1用户认证的实现 610
23.7.2用户认证方法的补充说明 612
23.8 日志文件 613
23.8.1错误日志文件 614
23.8.2访问日志文件 615
23.8.3虚拟主机日志 617
第24章MySQL数据库 618
24.1安装与配置MySQL数据库 619
24.1.1安装MySQL数据库 619
24.1.2 my.cnf配置文件 619
24.1.3 MySQL数据库命令行界面 621
24.1.4 MySQL数据库图形界面 622
24.1.5设置数据库用户及其访问权限 624
24.2访问MySQL数据库 624
24.2.1创建、查询、使用与删除数据库 624
24.2.2创建、查询与删除数据库表 625
24.2.3录入数据 626
24.3查询MySQL数据库 627
24.3.1查询数据库表 627
24.3.2查询数据库表结构 628
24.3.3查询数据库表中的数据内容 628
24.4 SQL脚本与批处理 628
24.5 MySQL数据库的备份与恢复 630
24.5.1数据库备份方法 630
24.5.2 MySQL数据库备份 631
24.5.3 MySQL数据库恢复 632
24.5.4 MySQL数据库表的备份与恢复 633
24.5.5增量备份与恢复 633
24.6密码维护与网络安全 635
24.6.1维护数据库管理员密码 635
24.6.2恢复数据库管理员密码 636
24.6.3基本网络安全考虑 637
参考文献 638