第1篇 基础篇 2
第1章 Linux概述(教学视频:20分钟) 2
1.1 Linux的起源和发展 2
1.1.1 Linux的起源 2
1.1.2 追溯到UNIX 2
1.1.3 影响世界的开源潮流 3
1.1.4 GNU公共许可证:GPL 4
1.2 为什么选择Linux 4
1.2.1 作为服务器 4
1.2.2 作为桌面 5
1.3 Linux的发行版本 5
1.3.1 不同的发行版本 5
1.3.2 哪种发行版本最好 7
1.3.3 本书选择的发行版本 7
1.4 I nternet上的Linux资源 9
1.5 小结 9
第2章 Linux安装(教学视频:48分钟) 11
2.1 安装前的准备工作 11
2.1.1 我能从哪里获得Linux 11
2.1.2 硬件要求 11
2.1.3 与Windows“同处一室” 12
2.1.4 虚拟机的使用 12
2.1.5 免费的虚拟机软件:VMware Server 13
2.2 安装Linux至硬盘 14
2.2.1 第一步:从光驱启动 14
2.2.2 关于硬盘分区 16
2.2.3 配置Ubuntu基本信息 18
2.2.4 设置用户和口令 20
2.2.5 第一次启动 21
2.3 获取帮助信息和搜索应用程序 22
2.4 进阶:修复受损的Grub 23
2.4.1 Windows惹的祸 23
2.4.2 使用救援光盘 23
2.4.3 重新安装Grub 24
2.5 小结 25
第3章 Linux基本配置(教学视频:37分钟) 27
3.1 关于超级用户root 27
3.1.1 root可以做什么 27
3.1.2 避免灾难 28
3.1.3 Debian和Ubuntu的root用户 28
3.2 依赖于发行版本的系统管理工具 29
3.3 中文支持 30
3.4 关于硬件驱动程序 31
3.5 获得更新 32
3.6 进阶:配置Grub 32
3.6.1 Grub的配置文件 33
3.6.2 使用Grub命令行 35
3.7 小结 36
第4章 桌面环境(教学视频:36分钟) 37
4.1 快速熟悉你的工作环境 37
4.1.1 运行应用程序 37
4.1.2 浏览文件系统 37
4.1.3 创建一个文本文件 38
4.2 个性化设置 39
4.2.1 桌面背景和字体 39
4.2.2 显示器分辨率 41
4.2.3 代理服务器 42
4.2.4 鼠标和键盘 42
4.2.5 键盘快捷键 43
4.3 进阶:究竟什么是“桌面” 44
4.3.1 可以卸载的图形环境 44
4.3.2 X窗口系统的基本组成 44
4.3.3 X系统的启动过程 45
4.3.4 启动X应用程序 46
4.3.5 桌面环境:KDE和Gnome谁更好 46
4.4 小结 47
第2篇 系统管理篇 50
第5章 Shell基本命令(教学视频:56分钟) 50
5.1 Shell简介 50
5.2 印刷约定 50
5.3 快速上手:浏览你的硬盘 51
5.4 提高效率:使用命令行补全和通配符 52
5.5 查看目录和文件 54
5.5.1 显示当前目录:pwd 54
5.5.2 改变目录:cd 54
5.5.3 列出目录内容:ls 55
5.5.4 列出目录内容:dir和vdir 56
5.5.5 查看文本文件:cat和more 57
5.5.6 阅读文件的开头和结尾:head和tail 58
5.5.7 更好的文本阅读工具:less 59
5.5.8 查找文件内容:grep 60
5.6 我的东西在哪——find命令 61
5.7 更快速地定位文件——locate命令 62
5.8 从终端运行程序 63
5.9 查找特定程序:whereis 63
5.10 用户及版本信息查看 63
5.11 寻求帮助——man命令 64
5.12 获取命令简介:whatis和apropos 65
5.13 小结 66
第6章 文件目录管理(教学视频:75分钟) 67
6.1 Linux文件系统的架构 67
6.2 快速上手:和你的团队共享文件 68
6.3 建立文件和目录 69
6.3.1 建立目录:mkdir 69
6.3.2 建立一个空文件:touch 70
6.4 移动、复制和删除 70
6.4.1 移动和重命名:mv 70
6.4.2 复制文件和目录:cp 72
6.4.3 删除目录和文件:rmdir和nn 72
6.5 文件和目录的权限 73
6.5.1 权限设置针对的用户 73
6.5.2 需要设置哪些权限 74
6.5.3 查看文件和目录的属性 74
6.5.4 改变文件所有权:chown和chgrp 75
6.5.5 改变文件权限:chmod 76
6.5.6 文件权限的八进制表示 77
6.6 文件类型 77
6.6.1 查看文件类型 78
6.6.2 建立链接:ln 78
6.7 输入输出重定向和管道 80
6.7.1 输出重定向 80
6.7.2 输入重定向 81
6.7.3 管道:| 82
6.8 小结 83
第7章 软件包管理(教学视频:71分钟) 84
7.1 快速上手:安装和卸载Chrome for Linux 84
7.1.1 安装Chrome for Linux 84
7.1.2 运行Chrome for Linux 85
7.1.3 卸载Chrome for Linux 85
7.2 软件包管理系统简述 86
7.3 管理.deb软件包:dpkg 87
7.3.1 安装软件包 87
7.3.2 查看已安装的软件包 87
7.3.3 卸载软件包 88
7.4 管理RPM软件包:rpm 88
7.4.1 安装软件包 88
7.4.2 升级软件包 89
7.4.3 查看已安装的软件包 89
7.4.4 卸载软件包 90
7.5 高级软件包工具:APT 91
7.5.1 APT简介 91
7.5.2 下载和安装软件包 92
7.5.3 查询软件包信息 94
7.5.4 配置apt-get 94
7.5.5 使用图形化的APT 95
7.6 进阶:从源代码编译软件——以MPlayer为例 97
7.6.1 为什么要从源代码编译 97
7.6.2 下载和解压软件包 98
7.6.3 正确配置软件 99
7.6.4 编译源代码 100
7.6.5 安装软件到硬盘 101
7.6.6 出错了怎么办 102
7.7 小结 104
第8章 磁盘管理(教学视频:110分钟) 105
8.1 关于硬盘 105
8.2 Linux文件系统 105
8.2.1 ext3fs和ext4fs文件系统 105
8.2.2 ReiserFS文件系统 106
8.2.3 有关swap 106
8.3 挂载文件系统 107
8.3.1 快速上手:使用光盘 107
8.3.2 Linux下设备的表示方法 108
8.3.3 挂载文件系统:mount命令 108
8.3.4 在启动的时候挂载文件系统:/etc/fstab文件 109
8.3.5 为什么无法弹出光盘:卸载文件系统 111
8.4 查看磁盘使用情况:df 111
8.5 检查和修复文件系统:fsck 112
8.6 在磁盘上建立文件系统:mkfs 113
8.7 使用USB设备 114
8.8 压缩工具 115
8.8.1 压缩文件:gzip 115
8.8.2 更高的压缩率:bzip2 116
8.8.3 支持rar格式 117
8.9 存档工具 117
8.9.1 文件打包:tar 117
8.9.2 转移文件:dd 119
8.10 进阶1:安装硬盘和分区——fdisk 119
8.10.1 使用fdisk建立分区表 120
8.10.2 使用mkfs建立ext3fs文件系统 123
8.10.3 使用fsck检查文件系统 123
8.10.4 测试分区 124
8.10.5 创建并激活交换分区 124
8.10.6 配置fstab文件 124
8.10.7 重新启动系统 125
8.11 进阶2:高级硬盘管理——RAID和LVM 125
8.11.1 独立磁盘冗余阵列:RAID 126
8.11.2 逻辑卷管理器:LVM 126
8.12 进阶3:备份你的工作和系统 126
8.12.1 为什么要做备份 126
8.12.2 选择备份机制 127
8.12.3 选择备份介质 127
8.12.4 备份文件系统:dump 128
8.12.5 从灾难中恢复:restore 130
8.12.6 让备份定时自动完成:cron 132
8.13 小结 132
第9章 用户与用户组管理(教学视频:50分钟) 134
9.1 用户与用户组基础 134
9.2 快速上手:为朋友John添加账户 134
9.3 添加用户 135
9.3.1 使用命令行工具:useradd和groupadd 135
9.3.2 使用图形化的管理工具 136
9.3.3 记录用户操作:history 138
9.3.4 直接编辑passwd和shadow文件 139
9.4 删除用户:userdel 139
9.5 管理用户账号:usermod 140
9.6 查看用户信息:id 140
9.7 用户间切换:su 141
9.8 受限的特权:sudo 141
9.9 进阶1:/etc/passwd文件 143
9.9.1 /etc/passwd文件概览 143
9.9.2 加密的口令 143
9.9.3 UID号 144
9.9.4 GID号 144
9.10 进阶2:/ete/shadow文件 144
9.11 进阶3:/etc/group文件 145
9.12 小结 146
第10章 进程管理(教学视频:41分钟) 147
10.1 快速上手:结束一个失控的程序 147
10.2 什么是进程 148
10.3 进程的属性 148
10.3.1 PID:进程的ID号 149
10.3.2 PPID:父进程的PID 149
10.3.3 UID和EUID:真实和有效的用户ID 149
10.3.4 GID和EGID:真实和有效的组ID 150
10.3.5 谦让度和优先级 150
10.4 监视进程:ps命令 150
10.5 即时跟踪进程信息:top命令 152
10.6 查看占用文件的进程:lsof 152
10.7 向进程发送信号:kill 153
10.8 调整进程的谦让度:nice和renice 155
10.9 /PROC文件系统 156
10.10 小结 156
第3篇 网络编 160
第11章 网络配置(教学视频:60分钟) 160
11.1 几种常见的连网方式 160
11.1.1 通过办公室局域网 160
11.1.2 无线连接 160
11.1.3 有线宽带连接 161
11.1.4 “古老”的拨号上网 161
11.2 连接PC至局域网和Internet 161
11.2.1 连接办公室局域网 162
11.2.2 使用ADSL 164
11.2.3 无线网络 167
11.2.4 拨号上网 168
11.3 进阶1:在命令行下配置网络 170
11.3.1 使用ifconfig配置网络接口 170
11.3.2 使用route配置静态路由 172
11.3.3 主机名和IP地址间的映射 173
11.4 进阶2:使用wvdial建立PPP连接 174
11.4.1 PPP协议简介 174
11.4.2 wvdial简介 174
11.4.3 配置wvdial 174
11.4.4 使用wvdial拨号上网 175
11.5 小结 176
第12章 浏览网页(教学视频:46分钟) 177
12.1 使用Mozilla Firefox 177
12.1.1 启动Firefox 177
12.1.2 设置Firefox 178
12.1.3 清除最新的历史记录 180
12.1.4 订阅新闻和博客 181
12.1.5 安装扩展组件 183
12.2 使用Opera 184
12.3 基于文本的浏览器:lynx 185
12.3.1 为什么还要使用字符界面 185
12.3.2 启动和浏览 185
12.3.3 下载和保存文件 187
12.4 其他浏览器 188
12.5 小结 188
第13章 收发邮件(教学视频:20分钟) 189
13.1 准备工作 189
13.1.1 获得邮箱 189
13.1.2 邮件协议:浏览器还是邮件客户端 189
13.2 G nome下的邮件客户端:Evolution 190
13.3 KDE下的邮件客户端:Kmail 192
13.4 小结 194
第14章 传输文件(教学视频:79分钟) 195
14.1 Linux间的网络硬盘:NFS 195
14.1.1 安装NFS文件系统 195
14.1.2 卸载NFS文件系统 196
14.1.3 选择合适的安装选项 196
14.1.4 启动时自动安装远程文件系统 197
14.2 与Windows协作:Samba 198
14.2.1 什么是Samba 198
14.2.2 快速上手:访问Windows的共享文件夹 198
14.2.3 查看当前可用的Samba资源:smbtree和nmblookup 200
14.2.4 Linux下的Samba客户端:smbelient 201
14.2.5 挂载共享目录:mount.cifs 201
14.3 使用FTP 202
14.3.1 使用Web浏览器 202
14.3.2 使用FTP图形客户端 202
14.3.3 使用ftp命令 206
14.4 基于SSH的文件传输:sftp和scp 209
14.4.1 安全的FTP:sftp 209
14.4.2 利用SSH通道复制文件:scp 210
14.5 小结 211
第15章 远程登录(教学视频:46分钟) 212
15.1 快速上手:关于搭建实验环境 212
15.1.1 物理网络还是虚拟机 212
15.1.2 安装OpenSSH 213
15.1.3 安装vnc4server 214
15.1.4 SUSE的防火墙设置 214
15.2 登录另一台Linux服务器 216
15.2.1 安全的Shell:SSH 216
15.2.2 登录X窗口系统:图形化的VNC 217
15.2.3 我想从Windows登录这台Linux 218
15.3 登录Windows服务器 220
15.4 为什么不使用telnet 222
15.5 进阶:使用SSH密钥 222
15.5.1 为什么要使用密钥 222
15.5.2 生成密钥对 222
15.5.3 复制公有密钥至远程主机 223
15.5.4 测试配置 223
15.5.5 密钥的安全性 224
15.6 小结 224
第4篇 娱乐与办公篇 226
第16章 多媒体(教学视频:40分钟) 226
16.1 关于声卡 226
16.2 播放器软件概述 227
16.3 播放音频 227
16.3.1 播放CD 227
16.3.2 播放数字音乐文件 228
16.4 播放视频:使用MPlayer 234
16.5 Linux中的游戏 236
16.5.1 发行版自带的游戏 236
16.5.2 Internet上的游戏资源 237
16.6 小结 240
第17章 图像(教学视频:37分钟) 241
17.1 查看图片 241
17.1.1 使用Konqueror和Nautilus查看图片 241
17.1.2 使用GIMP查看图片 243
17.1.3 使用Shotwell管理相册 244
17.2 使用GIMP处理图像 248
17.2.1 GIMP基础 248
17.2.2 漫步工具栏 249
17.2.3 实例:移花接木 250
17.2.4 使用插件 252
17.3 LibreOffice的绘图工具 253
17.4 小结 254
第18章 打印机配置(教学视频:35分钟) 255
18.1 为什么要有这一章 255
18.1.1 打印机还是计算机 255
18.1.2 打印机的语言:PDL 255
18.1.3 驱动程序和PDL的关系 256
18.1.4 Linux如何打印:CUPS 256
18.2 添加打印机 257
18.2.1 打印机的选择 257
18.2.2 连接打印机 258
18.2.3 让CUPS认识打印机 258
18.2.4 配置打印机选项 259
18.2.5 测试当前的打印机 260
18.3 管理CUPS服务器 260
18.3.1 设置网络打印服务器 260
18.3.2 设置打印机的类 262
18.3.3 操纵打印队列 263
18.3.4 删除打印机和类 264
18.4 回顾:CUPS的体系结构 265
18.5 KDE和Gnome的打印工具 266
18.6 小结 267
第19章 办公软件的使用(教学视频:45分钟) 268
19.1 最常用的办公套件:LibreOffice.org 268
19.1.1 文字处理软件 268
19.1.2 电子表格 270
19.1.3 演示文稿 276
19.1.4 文档兼容 277
19.2 查看PDF文件 277
19.2.1 使用Xpdf 278
19.2.2 使用Adobe Reader 279
19.3 光盘刻录 280
19.3.1 制作音乐CD 280
19.3.2 刻录镜像文件 282
19.4 小结 283
第5篇 程序开发篇 286
第20章 Linux编程(教学视频:108分钟) 286
20.1 编辑器的选择 286
20.1.1 Vim编辑器 286
20.1.2 Emacs编辑器 292
20.1.3 图形化的编程工具 294
20.2 C和C++的编译器:gcc 296
20.2.1 编译第一个C程序 296
20.2.2 同编译有关的选项 297
20.2.3 优化选项 298
20.2.4 编译C++程序:g++ 298
20.3 调试:gdb 299
20.3.1 启动gdb 299
20.3.2 获得帮助 299
20.3.3 查看源代码 301
20.3.4 设置断点 302
20.3.5 运行程序和单步执行 302
20.3.6 监视变量 303
20.3.7 临时修改变量 304
20.3.8 查看堆栈情况 304
20.3.9 退出gdb 304
20.3.10 命令汇总 305
20.4 与他人协作:版本控制系统 305
20.4.1 什么是版本控制 305
20.4.2 安装Subversion 306
20.4.3 建立项目仓库 307
20.4.4 创建项目并导入源代码 307
20.4.5 开始项目开发 308
20.4.6 修改代码和提交改动 308
20.4.7 解决冲突 309
20.4.8 撤销改动 311
20.4.9 命令汇总 312
20.5 小结 313
第21章 Shell编程(教学视频:125分钟) 314
21.1 正则表达式 314
21.1.1 什么是正则表达式 314
21.1.2 不同风格的正则表达式 314
21.1.3 快速上手:在字典中查找单词 315
21.1.4 字符集和单词 315
21.1.5 字符类 316
21.1.6 位置匹配 317
21.1.7 字符转义 317
21.1.8 重复 318
21.1.9 子表达式 318
21.1.10 反义 319
21.1.11 分支 319
21.1.12 逆向引用 320
21.2 Shell脚本编程 320
21.2.1 我需要什么工具 320
21.2.2 第一个程序:Hello World 321
21.2.3 变量和运算符 321
21.2.4 表达式求值 325
21.2.5 脚本执行命令和控制语句 326
21.2.6 条件测试 330
21.2.7 循环结构 336
21.2.8 读取用户输入 339
21.2.9 脚本执行命令 341
21.2.10 创建命令表 342
21.2.11 其他有用的Shell编程工具 343
21.2.12 定制工具:安全的delete命令 347
21.3 Shell定制 348
21.3.1 修改环境变量 348
21.3.2 设置别名 350
21.3.3 个性化设置:修改.bashrc文件 350
21.4 小结 351
第6篇 服务器配置篇 354
第22章 服务器基础知识(教学视频:54分钟) 354
22.1 系统引导 354
22.1.1 Linux启动的基本步骤 354
22.1.2 init和运行级 355
22.1.3 服务器启动脚本 356
22.1.4 Ubuntu和Debian的init配置 358
22.2 管理守护进程 359
22.2.1 什么是守护进程 359
22.2.2 服务器守护进程的运行方式 359
22.2.3 配置xinetd 360
22.2.4 举例:通过xinetd启动SSH服务 363
22.2.5 配置inetd 364
22.3 小结 365
第23章 HTTP服务器——Apache(教学视频:71分钟) 366
23.1 快速上手:搭建一个HTTP服务器 366
23.2 Apache基础 367
23.2.1 HTTP工作原理 367
23.2.2 获得并安装Apache服务器 368
23.2.3 服务器的启动和关闭 369
23.3 设置Apache服务器 370
23.3.1 配置文件 370
23.3.2 使用日志文件 372
23.3.3 使用cgi 372
23.4 使用PHP+MySQL 373
23.4.1 PHP和MySQL简介 373
23.4.2 安装MySQL 374
23.4.3 安装PHP 374
23.4.4 配置Apache 375
23.5 小结 376
第24章 FTP服务器——VSftpd(教学视频:70分钟) 377
24.1 快速上手:搭建一个FTP服务器 377
24.1.1 安装并登录FTP服务器 377
24.1.2 匿名用户的目录 378
24.2 vsftpd基础 378
24.2.1 FTP的工作原理 378
24.2.2 从源代码编译安装vsftpd服务器 379
24.2.3 服务器的启动和关闭 380
24.3 vsftpd用户设置 382
24.3.1 设置匿名用户登录 382
24.3.2 设置本地用户登录 383
24.3.3 限制用户在本地目录中 384
24.4 更好的选择:使用虚拟用户 384
24.4.1 为用户icsmith和culva开放FTP:一步步地指导 384
24.4.2 创建虚拟用户的数据库文件 385
24.4.3 配置PAM验证 385
24.4.4 创建本地用户映射 386
24.4.5 设置用户目录和权限 387
24.4.6 重新启动vsftpd服务器 387
24.4.7 总结虚拟用户原理:PAM验证 388
24.5 杂项 389
24.6 关于FTP的安全 389
24.7 小结 390
第25章 Samba服务器(教学视频:77分钟) 391
25.1 快速上手:搭建一个Samba服务器 391
25.2 Samba基础 392
25.2.1 从源代码安装Samba服务器 392
25.2.2 服务器的启动和关闭 394
25.3 Samba配置 394
25.3.1 关于配置文件 394
25.3.2 设置全局域 395
25.3.3 设置匿名共享资源 397
25.3.4 开启Samba用户 397
25.3.5 配合用户权限 398
25.3.6 孤立用户的共享目录 399
25.3.7 设置用户访问自己的主目录 399
25.4 SWAT管理工具 400
25.5 安全性方面的几点建议 401
25.6 小结 402
第26章 网络硬盘——NFS(教学视频:36分钟) 403
26.1 快速上手:搭建一个NFS服务器 403
26.1.1 安装NFS服务器 403
26.1.2 简易配置 403
26.1.3 测试NFS服务器 404
26.2 NFS基础 404
26.2.1 关于NFS协议的版本 404
26.2.2 RPC:NFS的传输协议 405
26.2.3 无状态的NFS 405
26.3 NFS配置 406
26.3.1 理解配置文件 406
26.3.2 启动和停止服务 407
26.4 安全性方面的几点建议 408
26.4.1 充满风险的NFS 408
26.4.2 使用防火墙 408
26.4.3 压制root和匿名映射 409
26.4.4 使用特权端口 410
26.5 监视NFS的状态:nfsstat 410
26.6 小结 411
第7篇 系统安全篇 414
第27章 任务计划:cron(教学视频:24分钟) 414
27.1 快速上手:定期备份重要文件 414
27.2 cron的运行原理 414
27.3 crontab管理 415
27.3.1 系统的全局cron配置文件 415
27.3.2 普通用户的配置文件 416
27.3.3 管理用户的cron任务计划 416
27.4 理解配置文件 417
27.5 简单的定时:at命令 419
27.6 小结 420
第28章 防火墙和网络安全(教学视频:44分钟) 421
28.1 Linux的防火墙——IP Tables 421
28.1.1 名字的来历 421
28.1.2 初始化防火墙设置 421
28.1.3 添加链规则 423
28.1.4 删除链规则 424
28.1.5 防火墙保险吗 425
28.2 网络安全工具 425
28.2.1 扫描网络端口:nmap 426
28.2.2 找出不安全的口令:John the Ripper 428
28.3 主机访问控制:hosts access 428
28.4 小结 429
第29章 病毒和木马(教学视频:21分钟) 430
29.1 随时面临的威胁 430
29.1.1 计算机病毒 430
29.1.2 特洛伊木马 431
29.1.3 掩盖入侵痕迹:rootkits 431
29.2 Linux下的防毒软件:ClamAV 431
29.2.1 更新病毒库 431
29.2.2 基本命令和选项 432
29.2.3 图形化工具 433
29.3 反思:Linux安全吗 434
29.4 小结 434
附录 LinuX常用指令 436
1.文件操作相关指令 436
2.目录操作相关指令 437
3.Shell操作相关指令 437
4.系统管理相关操作指令 438
5.打印相关指令 439
6.实用工具相关指令 439
7.硬件相关指令 439
8.文件系统管理相关操作指令 440
9.软件包管理相关操作指令 440
10.编程开发相关操作指令 441
11.网络管理相关指令 441