标题：Linux从初学到精通
图书信息
华清远见嵌入式培训中心  张勤  鲜学丰  等编著  ISBN 978-7-121-12802-8
2011年4月出版
定价：62.00元（含DVD光盘1张）
16开
540 页
宣传语
深入浅出，依靠深厚行业经验讲透技术原理
循序渐进，详解典型应用案例提升实战能力
内 容 简 介
目前各种类型的Linux系统在其应用领域中都有着长足的发展，特别是在信息安全越来越重要的今天。本书作为一本Linux的入门书籍，主要面向Linux在服务器及个人应用领域的初学者，希望读者在认真学习后可以掌握Linux的基本操作及一些常见服务的安装配置方法。
本书由浅入深地讲解Linux系统的安装部署、桌面应用、基础操作、Shell脚本、常用服务等相关知识。本书从初学者的角度详细地讲解每一个操作步骤，力求让读者可以更加清楚、准确了解整个操作过程。
本书适合Linux初、中级用户参考学习，也可作为高等院校电子类、信息类、计算机类等专业的Linux教材。
前  言
在20世纪70年代，UNIX体系的源程序大多是开放的，互联网的基础协议TCP/IP就是产生于那个年代。在当时，人们在创作各自的“程序作品”中享受着从事科学探索、创新活动所特有的那种激情和成就感。那时的程序员，如同艺术家一样，急于“发表”自己的程序作品，并不专注于保守“机密”，以换取高额利润。 
1979年，AT&T宣布了UNIX的商业化计划，随之出现了各种二进制的商业UNIX版本。于是就兴起了基于二进制机读代码的“版权产业”（Copyright Industry），使软件业成为一种版权专有式的产业，围绕程序开发的那种创新活动被局限在某些骨干企业的小圈子里，源码程序被视为核心“商业机密”。这种做法，一方面产生了大批的商业软件，极大地推动了软件业的发展，诞生了一批软件巨人；另一方面，由于封闭式的开发模式，也阻碍了软件业的进一步深化和提高。由此，人们为商业软件的“专有权”付出了巨大的代价。
1983年，理查·马修·斯托曼（Richard Stallman）创立了GNU计划。这个计划有一个目标，是为了发展一个完全免费自由的类UNIX操作系统。1991年，李纳斯·托瓦兹（Linus Torvalds）编写出了与UNIX兼容的Linux操作系统内核并在GPL条款下发布。之后Linux在网上广泛流传，许多程序员参与了开发与修改。
1992年，Linux与其他GNU软件结合，完全自由的操作系统正式诞生。该操作系统往往被称为“GNU/Linux”或简称Linux。
伴随着互联网的发展，Linux得到了来自全世界软件开好者、组织、公司的支持。起初，Linux主要被用做服务器的操作系统，但是现在Linux除了在服务器操作系统方面保持着强劲的发展势头以外，在个人电脑、上网本、嵌入式系统上都有着长足的进步。
有很多计算机的爱好者对Linux的印象还停留在多年前，认为Linux使用起来有一定的难度，只有水平很高的用户才可以使用。创作本书的目的也在于此，希望广大读者通过学习本书可以认识到Linux并不是想象中那么难，只是在操作习惯上有一些区别。
作者介绍
  张勤：MCSE、MCDBA、RHCE，2004年以前主要从事软件开发（Delphi、Java）及项目管理工作，2004年以后主要从事系统集成工作。在国内多个知名IT网站发表技术类文章，并已出版《Linux服务器配置全程实录》、《开源IT系统及应用架构宝典——系统、工具、案例》两本著作。
本书特点
目前各种类型的Linux系统在其应用领域中都有着长足的发展，特别是在信息安全越来越重要的今天。本书作为一本Linux的入门书籍，主要针对Linux在服务器及个人应用领域的初学者，希望读者在认真学习后可以掌握Linux的基本操作及一些常见服务的安装配置方法。本书主要具有以下特点。
Linux系统日常的维护工作一般都是通过命令完成的，对于初学者来说记忆这些命令是一件很困难的事情，所以本书中对所有命令都会标明一个常用指数，方便读者有选择地记忆Linux命令。常用指数包括：“   ”表示最常用的命令，这种命令需要熟悉其使用方法；“  ”表示次常用的命令，需要掌握基本用法，具体操作在使用时可查阅帮助；“ ”表示很少使用的命令，可在需要时查阅帮助。
内容丰富。本书由浅入深地讲解Linux系统的安装部署、桌面应用、基础操作、Shell脚本、常用服务的相关知识。
详细的操作步骤。本书从初学者的角度详细地讲解每一个操作步骤，力求让读者可以更加清楚、准确地了解整个操作过程。
在本书附赠的光盘中包括配合本书使用的教学课件及测试习题，可以作为学校或培训机构使用的教材。
附赠光盘内容
本书附赠光盘中主要包括以下内容，希望通过这些内容方便读者阅读和使用本书。
（1）教学课件。位于光盘PPT目录（文件名：chapXX-章节名称.pptx）下，包括书中所有章节教学使用的课件。
（2）测试习题。位于光盘Exam目录下，包括书中每章测试习题（文件名：chapXX.pdf）的电子版及三套综合测试题（文件名：examXX.pdf）。
（3）实验录像。位于光盘Video目录下，包括书中各章节的操作录像。
 VMware Workstation基本应用：光盘\Video\第2章\2.1 VMware Workstation基本应用.mp4
 安装RHEL5.4：光盘\Video\第2章\2.2 安装.mp4
 vi基本操作：光盘\Video\第3章\3.1 vi基本操作.mp4
 使用SSH管理Linux：光盘\Video\第3章\3.2 .mp4
 使用远程桌面连接Windows：光盘\Video\第3章\3.3 .mp4
 目录操作命令：光盘\Video\第4章\4.1 目录操作命令.mp4
 文件操作命令：光盘\Video\第4章\4.2 文件操作命令.mp4
 查找操作命令：光盘\Video\第4章\4.3 查找操作命令.mp4
 压缩与归档命令：光盘\Video\第4章\4.4 压缩与归档命令.mp4
 文本查看命令：光盘\Video\第4章\4.5 文本查看命令.mp4
 用户及用户组管理命令：光盘\Video\第5章\5.1 用户及用户组管理命令.mp4
 用户切换：光盘\Video\第5章\5.2 用户切换.mp4
 文件及目录权限管理：光盘\Video\第6章\6.1 文件及目录权限管理.mp4
 文件及目录ACL功能：光盘\Video\第6章\6.2 文件及目录ACL功能.mp4
 创建及格式化分区：光盘\Video\第7章\7.1 创建及格式化分区.mp4
 挂载分区：光盘\Video\第7章\7.2 挂载分区.mp4
 管理交换分区：光盘\Video\第7章\7.3 管理交换分区.mp4
 读写NTFS分区：光盘\Video\第7章\7.4 读写NTFS分区.mp4
 创建RAID阵列：光盘\Video\第7章\7.5 创建RAID阵列.mp4
 创建及管理LVM：光盘\Video\第7章\7.6 创建及管理.mp4
 管理磁盘配额：光盘\Video\第7章\7.7 管理磁盘配额.mp4
 常见软件安装方法：光盘\Video\第8章\8.1 软件安装.mp4
 修复root用户密码：光盘\Video\第10章\10.1 修复root用户密码.mp4
 修复损坏的boot分区：光盘\Video\第10章\10.2 修复boot分区.mp4
 自动化任务：光盘\Video\第10章\10.3 自动化任务.mp4
 DHCP服务配置：光盘\Video\第12章\12.1 DHCP服务配置.mp4
 BIND服务配置：光盘\Video\第13章\13.1 BIND服务配置.mp4
 NFS服务配置及客户端访问：光盘\Video\第14章\14.1 NFS服务配置及客户端访问.mp4
 FTP服务配置身份验证：光盘\Video\第15章\15.1 FTP服务配置身份验证.mp4
 Samba服务共享配置及客户端访问：光盘\Video\第16章\16.1 Samba服务共享配置及客户端访问.mp4
 Samba服务访问控制：光盘\Video\第16章\16.2 Samba对调.mp4
 Samba服务用户及权限配置：光盘\Video\第16章\16.2 Samba对调.mp4
 Apache服务配置虚拟主机：光盘\Video\第17章\17.1 Apache服务配置虚拟主机.mp4
 Apache服务配置用户认证：光盘\Video\第17章\17.2 Apache服务配置用户认证.mp4
 Apache服务配置访问控制：光盘\Video\第17章\17.3 Apache服务配置访问控制.mp4
 Apache服务配置HTTPS：光盘\Video\第17章\17.4 Apache服务配置.mp4
 使用源码包搭建LAMP：光盘\Video\第17章\17.5 Apache&MySQL&PHP(Make).mp4
 Squid服务配置正向代理：光盘\Video\第18章\18.1 Squid服务配置正向代理.mp4
 Squid服务配置反向代理：光盘\Video\第18章\18.2 Squid服务配置反向代理.mp4
读者对象
本书非常适合对Linux有兴趣的初学者、Linux应用爱好者，同时也适合其他相关从业人员，如大、中专院校计算机专业师生、培训机构作为参考教材使用。
联系我们
初学者在接触和使用Linux系统时，一开始总会遇到各种各样的问题，本书中尽可能多地讲述可能遇到的问题，但限于时间及作者的水平，书中难免会存在一些问题，恳请各位读者批评与指正，同时也希望和大家共同学习进步。关于本书的任何问题或意见欢迎与本书作者联系，我们将尽快回复您的邮件。
本书主要由张勤、鲜学丰编写，其他参与编写的人员有王丽娜、周毅、林小峰、刘刚、 马海波、李强、吴慧、马玉刚、冯浩、唐爱琴、李子龙、王明明、蒋志等，在此表示衷心感谢。
目  录
第1章  前世今生——Linux系统简介 1
1.1  Linux诞生记 2
1.2  Linux成长记 3
1.3  百家争鸣的Linux发行版 3
1.3.1  Debian 4
1.3.2  Ubuntu 6
1.3.3  SuSE/openSuSE 8
1.3.4  RHEL 9
1.3.5  红旗Linux 10
1.3.6  CentOS 11
1.3.7  Fedora 12
1.3.8  为什么选择RHEL 5.x 13
1.4  为开源保驾护航的GNU及GPL/LGPL 14
1.5  小企鹅大身手 16
第2章  开门见山——Linux系统安装 18
2.1  使用VMware Workstation搭建测试环境 19
2.1.1  新建虚拟机 20
2.1.2  虚拟机基本操作 26
2.1.3  虚拟机网络模式 30
2.2  Linux磁盘分区及目录 34
2.2.1  Linux磁盘分区 34
2.2.2  Linux文件系统及目录结构 35
2.3  打造RHEL 5.x平台 38
2.3.1  RHEL 5.x安装方式 38
2.3.2  RHEL 5.x安装与登录 39
2.3.3  命令输入 49
2.3.4  VMware Tools安装 51
2.4  Windows 7/Fedora 12和平共处 51
2.5  实验任务 60
第3章  雾里看花——Linux基本应用 61
3.1  玩转桌面 62
3.1.1  桌面环境 62
3.1.2  浏览器 65
3.1.3  聊天软件 68
3.1.4  邮件客户端 70
3.1.5  办公软件 72
3.1.6  PDF查看 76
3.1.7  媒体播放 78
3.2  文本编辑器 82
3.2.1  Gedit编辑器使用 82
3.2.2  vi编辑器使用 84
3.3  天涯若比邻 90
3.3.1  Telnet 90
3.3.2  SSH 92
3.3.3  RDP 96
3.4  Linux命令基础 97
3.4.1  Linux命令分类 98
3.4.2  Linux命令格式 98
3.4.3  Linux命令辅助操作 99
3.4.4  Linux命令帮助获取 100
3.5  实验任务 103
3.6  本章测试 103
第4章  管好家产——Linux目录及文件管理 105
4.1  Linux系统常见目录 106
4.2  目录结构及操作命令 107
4.2.1  Nautilus工具 107
4.2.2  pwd：查看当前目录 108
4.2.3  cd：改变当前目录 108
4.2.4  ls：显示目录内容 109
4.2.5  mkdir：创建目录 111
4.2.6  tree：以树状图显示目录内容 112
4.3  文件操作命令 113
4.3.1  touch：改变文件或目录时间 113
4.3.2  file：识别文件类型 114
4.3.3  cp：复制文件或目录 114
4.3.4  rm：删除文件或目录 115
4.3.5  mv：移动或更名现有的文件或目录 116
4.3.6  ln：链接文件或目录 117
4.4  查找操作命令 118
4.4.1  locate：查找文件或目录 118
4.4.2  which：查找文件 118
4.4.3  whereis：查找文件 119
4.4.4  find：查找文件或目录 120
4.5  压缩与归档命令 123
4.5.1  gzip：压缩文件 123
4.5.2  bzip2：压缩文件 124
4.5.3  tar：压缩备份 125
4.5.4  zip/uzip：ZIP文件压缩与解压 127
4.5.5  rar/unrar：RAR文件压缩与解压 129
4.5.6  7-Zip：7z文件压缩与解密 131
4.6  文本查看命令 134
4.6.1  cat：显示文件内容 134
4.6.2  head：显示文件内容的最前部分 135
4.6.3  tail：显示文件内容的末尾部分 135
4.6.4  more：逐页显示文件内容 136
4.6.5  less：逐页显示文件内容 137
4.6.6  grep：查找并显示符合条件的内容 138
4.7  实验任务 140
4.8  本章测试 141
第5章  人事档案——Linux用户及组管理 143
5.1  Linux用户及组管理方式 144
5.1.1  用户管理方式 144
5.1.2  用户组管理方式 145
5.1.3  相关配置文件/目录 145
5.2  用户及用户组管理命令 148
5.2.1  useradd：建立用户 148
5.2.2  passwd：更改用户密码 150
5.2.3  usermod：更改用户信息 151
5.2.4  userdel：删除用户 152
5.2.5  groupadd：建立用户组 152
5.2.6  groupmod：更改GID及组名称 153
5.2.7  groupdel：删除用户组 153
5.2.8  chage：修改用户密码策略 154
5.2.9  finger：查找并显示用户信息 154
5.2.10  w：显示当前登录系统的用户及用户进程信息 155
5.2.11  who：显示当前登录系统的用户信息 156
5.2.12  last：显示当前及过去登录系统的用户信息 156
5.3  用户切换 157
5.3.1  su：切换用户 157
5.3.2  sudo：以其他用户身份执行命令 159
5.4  实验任务 161
5.5  本章测试 162
第6章  看家护院——Linux目录及文件权限管理 163
6.1  Linux目录及文件权限管理方式 164
6.1.1  目录及文件的所有者及拥有组 164
6.1.2  目录及文件权限类型 164
6.1.3  目录及文件权限特性 165
6.2  文件及目录所有者/拥有组/权限管理 168
6.2.1  chgrp：更改目录或文件的拥有组 168
6.2.2  chown：更改目录或文件的所有者或拥有组 169
6.2.3  chmod：更改目录或文件权限 170
6.3  目录及文件高级权限管理 172
6.3.1  权限掩码 172
6.3.2  特殊权限 173
6.3.3  ACL 175
6.4  实验任务 184
6.5  本章测试 185
第7章  我的地盘我做主——Linux磁盘及文件系统管理 187
7.1  Linux磁盘分区 188
7.1.1  Linux硬盘管理方式 188
7.1.2  通过命令对磁盘进行分区 189
7.2  Linux文件系统 196
7.2.1  Linux支持的文件系统 196
7.2.2  ext3文件系统 198
7.2.3  ext4文件系统 199
7.3  创建文件系统 200
7.3.1  创建msdos文件系统 200
7.3.2  创建vfat文件系统 201
7.3.3  创建ext3文件系统 202
7.3.4  更改分区卷标 203
7.4  挂载设备 203
7.4.1  挂载及卸载设备 203
7.4.2  /etc/fstab配置文件挂载文件设备 206
7.4.3  自动挂载 207
7.5  查看文件系统 208
7.5.1  df：显示分区的使用情况 208
7.5.2  du：显示文件或目录占用空间 209
7.6  交换分区 210
7.6.1  建立专用的交换分区 211
7.6.2  使用交换文件 212
7.7  读写NTFS分区 213
7.8  RAID管理 213
7.8.1  RAID等级 213
7.8.2  在安装时创建RAID阵列 216
7.8.3  使用mdadm命令创建RAID阵列 217
7.9  LVM管理 220
7.9.1  LVM创建流程 220
7.9.2  在安装时创建LVM 221
7.9.3  LVM相关命令 222
7.9.4  LVM建立与维护 226
7.10  磁盘配额管理 230
7.10.1  磁盘配额相关命令 230
7.10.2  磁盘配额步骤 233
7.11  实验任务 234
7.12  本章测试 234
第8章  不只是下一步——Linux软件安装及管理 236
8.1  Linux软件常见安装方式 237
8.2  RPM方式安装软件 237
8.2.1  RPM命名规则 237
8.2.2  管理RPM软件包 238
8.2.3  维护RPM数据库 244
8.3  YUM方式安装软件 244
8.3.1  YUM仓库配置 245
8.3.2  YUM客户端配置 246
8.3.3  YUM客户端使用 247
8.4  源码包方式安装软件 249
8.4.1  编译RPMs包 249
8.4.2  编译tar包 250
8.5  实验任务 251
8.6  本章测试 252
第9章  事半功倍——Shell脚本 253
9.1  常见的Shell 254
9.2  bash Shell 254
9.2.1  命令列表 254
9.2.2  在子Shell中运行命令 255
9.2.3  命令别名 256
9.2.4  命令替换 257
9.2.5  转义字符 258
9.2.6  标准输入/输出及管道 259
9.3  正则表达式 263
9.3.1  正则表达式基本概念 263
9.3.2  表达式全集 263
9.3.3  正则表达式实例 265
9.4  高级文本处理命令 267
9.4.1  tr：转换或删除指定内容 267
9.4.2  sort：将显示内容排序 268
9.4.3  cut：显示指定的内容 269
9.4.4  split：拆分文件 270
9.5  Shell脚本 271
9.5.1  变量 272
9.5.2  条件测试 275
9.5.3  流程控制 278
9.5.4  函数 283
9.5.5  脚本实例 284
9.6  实验任务 289
9.7  本章测试 289
第10章  识骨寻踪——Linux引导及进程管理 291
10.1  Linux引导过程 292
10.1.1  开机自检 292
10.1.2  加载引导程序 293
10.1.3  加载内核 295
10.1.4   root用户密码丢失 300
10.1.5  修复损坏的/boot分区 302
10.2  Shell初始化 305
10.3  Linux内核模块 306
10.4  /proc目录详解 308
10.5  Linux服务类型 311
10.5.1  Standalone服务 311
10.5.2  Transient服务 316
10.6  Linux进程管理 320
10.6.1  Linux进程查看 321
10.6.2  Linux进程管理 331
10.7  Linux作业管理 334
10.8  自动化任务管理 335
10.8.1  一次性任务管理 335
10.8.2  周期性任务管理 337
10.9  Linux系统日志 339
10.9.1  Linux日志等级及设施 339
10.9.2  syslog服务 340
10.9.3  syslog日志格式 340
10.9.4  循环日志 341
10.9.5  内核日志 342
10.9.6  自定义日志 342
10.10  实验任务 343
10.11  本章测试 343
第11章  开山铺路——Linux网络管理 345
11.1   网络接口配置 346
11.1.1  网络接口 346
11.1.2  配置网络接口 348
11.1.3  IP别名 350
11.2  主机名配置 352
11.3  静态路由配置 353
11.4  ARP配置 354
11.5  网络测试 355
11.5.1  ping：测试网络连通性 355
11.5.2  nslookup：检查DNS查询结果 356
11.5.3  traceroute：显示数据包到达目标的路径 357
11.5.4  tcpdump：监视网络传输数据 358
11.5.5  wireshark 359
11.6  图形化管理Linux网络参数 365
11.7  实验任务 366
11.8  本章测试 366
第12章  IP由我定——DHCP服务配置 368
12.1  DHCP基础 369
12.2  DHCP服务安装 370
12.3  DHCP服务配置 371
12.3.1  作用域配置 372
12.3.2  选项配置 374
12.3.3  保留配置 376
12.3.4  中继代理配置 378
12.3.5  其他配置 380
12.4  客户端配置 382
12.4.1  Linux平台 383
12.4.2  Windows平台 383
12.5  实验任务 384
12.6  本章测试 385
第13章  王者风范——BIND服务配置 387
13.1  DNS基础 388
13.1.1  DNS结构 388
13.1.2  DNS查询过程 389
13.1.3  DNS记录 390
13.2  BIND服务安装 391
13.3  BIND服务配置 392
13.3.1  BIND配置文件结构 392
13.3.2  主DNS服务器配置 399
13.3.3  从DNS服务器配置 402
13.3.4  缓存DNS服务器配置 404
13.4  客户端名称解析顺序 406
13.4.1  Linux平台名称解析顺序 406
13.4.2  Windows平台名称解析顺序 406
13.5  客户端配置 407
13.5.1  Linux平台 407
13.5.2  Windows平台 407
13.6  实验任务 409
13.7  本章测试 410
第14章  太阳光辉——NFS服务配置 411
14.1  NFS服务配置 412
14.1.1  NFS只读共享 413
14.1.2  NFS可写共享 414
14.1.3  用户访问权限 414
14.2  客户端访问 415
14.2.1  Linux平台 415
14.2.2  Windows平台 416
14.3  实验任务 418
14.4  本章测试 419
第15章  固若金汤——vsftpd服务配置 421
15.1  FTP基础 422
15.2  vsftpd服务安装 422
15.3  vsftpd服务配置 423
15.3.1  身份验证 424
15.3.2  其他配置 426
15.4  客户端访问 429
15.4.1  使用浏览器 429
15.4.2  使用命令 430
15.4.3  使用FTP客户端工具软件 432
15.5  实验任务 433
15.6  本章测试 433
第16章  桑巴起舞——Samba服务配置 435
16.1  Samba服务安装 436
16.2  Samba服务配置 437
16.2.1  资源共享配置 437
16.2.2  用户认证 439
16.2.3  权限控制 440
16.2.4  访问控制 443
16.2.5  其他配置 446
16.3  客户端访问 448
16.3.1  Linux平台 449
16.3.2  Windows平台 451
16.4  实验任务 452
16.5  本章测试 453
第17章  最流行的Web服务器——Apache服务配置 456
17.1  Apache服务安装 457
17.2  Apache服务配置 457
17.2.1  基本Web服务 459
17.2.2  虚拟主机 460
17.2.3  身份验证 462
17.2.4  访问控制 464
17.2.5  HTTPS配置 465
17.2.6  LAMP配置 466
17.3  Web相关命令 471
17.3.1  wget：非交互式Web下载工具 471
17.3.2  links：纯文本Web浏览器 472
17.4  实验任务 473
17.5  本章测试 473
第18章  可爱的章鱼——Squid代理服务配置 476
18.1  Squid服务安装 477
18.2  Squid服务配置 477
18.2.1  正向代理服务器配置 478
18.2.2  反向代理服务器配置 480
18.2.3  透明代理服务器 482
18.2.4  访问控制列表 484
18.3  客户端访问 487
18.3.1  IE浏览器 487
18.3.2  FireFox浏览器 488
18.3.3  Opera浏览器 489
18.4  实验任务 490
18.5  本章测试 491
第19章  看家护院——IPTables防火墙配置 493
19.1  IPTables工作流程 494
19.1.1  filter表 498
19.1.2  nat表 499
19.1.3  mangle表 499
19.1.4  raw表 500
19.2  IPTables状态机制 500
19.2.1  NEW状态 500
19.2.2  ESTABLISHED状态 501
19.2.3  RELATED状态 501
19.2.4  INVALID状态 501
19.2.5  UNTRACKED状态 501
19.3  IPTables配置 501
19.3.1  IPTables开启与关闭 501
19.3.2  IPTables策略配置 502
19.3.3  Firewall Builder 514
19.4  实验任务 518
19.5  本章测试 519