第1篇Linux操作系统基础 3
第1章Linux概述 3
1.1操作系统和Linux 3
1.2 UNIX简介 5
1.3 Linux的产生和发展 7
1.3.1 Linux产生的时代背景 7
1.3.2 Linux的产生和发展 8
1.3.3 Linux发行版 8
第2章Linux操作系统的部署 12
2.1安装前的准备 12
2.1.1 Linux系统的硬件需求 12
2.1.2明确当前系统的硬件信息 13
2.1.3 Linux中的存储设备编号 14
2.1.4 Linux中硬盘分区的表示方法 16
2.2 CentOS Linux的安装 18
2.2.1 CentOS的图形界面安装 19
2.2.2操作系统的初始配置 30
第3章Linux的基本操作 34
3.1使用图形界面登录系统 35
3.1.1 GNOME图形界面介绍 37
3.1.2 KDE环境下的终端程序 39
3.1.3图形界面下的注销与关机 40
3.2登录与虚拟终端 40
3.2.1登录界面 40
3.2.2登录 41
3.2.3虚拟终端 42
3.3注销系统和关机 42
3.3.1注销系统 42
3.3.2关机 43
3.4 Linux系统基础 45
3.4.1文件目录与路径 45
3.4.2用户与操作系统之间的界面——Shell 47
3.5基本操作 47
3.5.1常用的快捷键 47
3.5.2基本操作指令 48
第4章 文本编辑工具vim 79
4.1 vi编辑器 79
4.1.1 vi与vim 79
4.1.2 vim的启动与模式介绍 79
4.1.3命令模式下的操作 81
4.1.4末行模式 84
4.1.5文件的恢复与暂存盘 85
4.2 vim的附加功能 85
4.2.1 vim的块选择功能 85
4.2.2多文件编辑 86
4.2.3多窗口功能 88
4.2.4 vim的环境设置 90
第2篇Linux操作系统的基本管理 93
第5章 用户账号和组管理 93
5.1账号的基本知识 93
5.2用户账号 93
5.2.1管理用户账号数据文件 93
5.2.2添加用户账号与设置密码 96
5.2.3查看及修改用户信息 98
5.2.4修改用户账号的相关设置 100
5.2.5用户账号停用 101
5.3组 102
5.3.1管理组数据的文件 102
5.3.2添加、删除组与修改组数据 103
5.3.3添加与删除组用户 104
5.4深入掌握用户与组操作 105
5.4.1有效用户组与用户原始组 105
5.4.2创建用户时的默认配置文件 107
5.4.3 UID/GID的分配 107
5.4.4查看用户的ID信息 109
5.4.5设置用户密码策略 109
5.5使用账户 110
5.5.1账户的查询操作 110
5.5.2账户的检查工具 112
第6章 文件与目录系统 113
6.1目录与文件基础 113
6.1.1查看文件与目录 113
6.1.2文件与目录名称 115
6.1.3管理权限与所属用户和组 115
6.1.4专门用户组配置法 118
6.2文件与目录属性的默认值 120
6.2.1文件的默认权限 120
6.2.2文件的特殊权限 122
6.2.3目录属性的意义 124
6.2.4文件的隐藏属性 124
6.2.5文件的时间戳信息 125
6.3目录与文件系统 126
6.3.1 Linux的标准文件系统 126
6.3.2 Linux系统中重要的标准目录和文件 127
第7章Shell基础 130
7.1认识Shell 130
7.1.1什么是Shell 130
7.1.2系统内的标准Shell 130
7.1.3 bash的功能 131
7.2 bash的基本功能 132
7.2.1 bash的内置命令功能 132
7.2.2 bash的自动补全功能 133
7.2.3 bash的命令别名功能 134
7.2.4 bash的历史命令功能 136
7.2.5 bash的通配符功能 138
7.3输入/输出重定向功能 139
7.3.1输入重定向 140
7.3.2输出重定向 140
7.3.3错误输出重定向 142
7.4 bash的管道功能 143
7.4.1管道命令的使用方法 144
7.4.2数据选取命令cut 144
7.4.3数据过滤命令grep 145
7.4.4数据排序命令sort 147
7.4.5重复内容过滤命令uniq 149
7.4.6数量统计命令we 150
7.4.7输出备份命令tee 150
7.4.8内容替换命令tr 151
7.4.9文档合并命令join 151
7.4.10文件切割命令split 153
7.4.11参数传递命令xargs 154
7.5 bash的其他功能 155
7.5.1 bash的计算功能 155
7.5.2 bash的指令替代功能 155
7.5.3多指令功能 155
7.5.4 bash的子Shell功能 156
7.5.5指令组功能 156
第8章Shell的环境配置 157
8.1变量概述 157
8.1.1变量的概念 157
8.1.2变量的种类与引用 158
8.1.3查看变量 158
8.1.4设置变量 160
8.2变量的相关操作 161
8.2.1设置Shell的语言环境 161
8.2.2变量值的键盘读取 163
8.2.3定义变量的类型 164
8.3 bash Shell的操作环境 165
8.3.1在bash下命令的查找顺序 165
8.3.2 bash的登录与欢迎信息 165
8.3.3 bash的环境变量配置文件 166
8.3.4终端属性的设置 167
8.4命令的条件式执行 169
8.4.1&&(与条件)控制 169
8.4.2 ‖(非条件)控制 169
8.4.3&&与‖的联合使用 170
第9章Linux文件系统管理 171
9.1认识ext2文件系统 171
9.1.1 ext2文件系统中的块组 172
9.1.2 inode table (inode表) 173
9.1.3 data block(数据块) 175
9.1.4查看文件系统信息 175
9.1.5 ext2文件系统中的目录 177
9.2文件系统的日志功能 177
9.3文件系统的基本操作 179
9.3.1查看文件系统磁盘空间的使用情况 179
9.3.2查看文件或目录所占用磁盘空间的情况 180
9.3.3链接文件 180
第10章 磁盘分区的创建与挂载 183
10.1创建磁盘分区 183
10.1.1查看已有磁盘的分区状况 183
10.1.2使用fdisk命令对磁盘进行分区 185
10.1.3利用fdisk命令删除分区 187
10.2对分区进行格式化 188
10.3检查磁盘文件系统 191
10.3.1检查与修正磁盘错误 191
10.3.2检查磁盘坏道命令 192
10.4挂载分区文件系统 192
10.4.1挂载与挂载点 192
10.4.2挂载分区文件系统 194
10.4.3管理软驱 197
10.4.4管理光驱 198
10.4.5制作ISO文件 198
10.5管理文件系统卷标 199
第11章 分区文件系统的管理 201
11.1文件系统的自动挂载 201
11.2磁盘配额——quota 203
11.2.1打开quota功能 203
11.2.2产生quota文件 203
11.2.3设置quota 204
11.2.4执行quota 205
11.2.5查看quota 206
11.3 swap管理 206
11.3.1建立分区形式的虚拟内存 206
11.3.2建立文件形式的虚拟内存 208
11.4主机分区与目录配置 209
第12章 文件系统的归档管理 211
12.1文件的打包与压缩 211
12.1.1磁带文件 211
12.1.2利用compress/uncompress压缩和解压缩文件 215
12.1.3利用zip/unzip压缩和解压缩文件 216
12.1.4利用gzip压缩和解压缩文件 218
12.1.5利用bzip2压缩和解压缩文件 220
12.2文件系统的备份 221
12.2.1备份概述 221
12.2.2备份的方法 221
12.2.3 Linux的备份工具dump 221
12.2.4备份的还原 224
12.3备份相关工具 226
12.3.1将备份数据刻录至光盘 226
12.3.2文件复制工具dd 227
第13章 软件系统扩充 228
13.1应用程序的源代码安装方式 228
13.1.1源代码文件的来源 229
13.1.2如何编译与链接源代码文件 229
13.1.3编译规则文件Makefile 230
13.1.4软件的安装 230
13.2源代码应用程序安装实例 231
13.2.1获得Htop的源代码包Tarball 231
13.2.2解压Htop Tarball 231
13.2.3执行configure程序 232
13.2.4使用make工具开始编译 232
13.2.5安装软件 233
13.3 RPM软件包管理 233
13.3.1什么是RPM 234
13.3.2 RPM软件包格式 234
13.3.3 RPM软件的管理 235
第14章Linux的进程管理 241
14.1进程 241
14.1.1进程的产生 241
14.1.2多任务系统 241
14.1.3系统执行中的进程 242
14.1.4显示进程 242
14.2进程的启动与管理 244
14.2.1进程的启动与后台执行 244
14.2.2执行顺序管理 245
14.2.3终止进程 247
14.2.4 top 248
14.3自动执行的工作 251
14.3.1设置执行时间 251
14.3.2定期执行 253
第15章Linux的启动引导器 256
15.1 GRUB简介 256
15.1.1 GRUB与启动引导器 256
15.1.2 GRUB的功能 256
15.2安装GRUB 257
15.2.1 GRUB软件包的安装 257
15.2.2安装GRUB到MBR 257
15.3 GRUB的操作界面 258
15.3.1 GRUB的启动菜单界面 258
15.3.2 GRUB的启动菜单项编辑界面 259
15.3.3 GRUB命令行界面 259
15.4 GRUB配置文件 261
15.4.1 GRUB配置文件的全局命令 262
15.4.2 GRUB配置文件的菜单项配置命令 263
15.4.3 Windows菜单配置说明 264
15.5 GRUB的安全配置 264
15.5.1设置全局口令锁定启动菜单 265
15.5.2使用全局口令锁定启动菜单项 266
15.5.3设置独立的口令锁定启动菜单 266
15.6 GRUB的配置使用技巧 267
15.6.1配置GRUB重复上次启动项 267
15.6.2 GRUB命令参考 268
第16章Linux的启动与服务 271
16.1 CentOS启动过程概述 271
16.2 INIT进程 272
16.2.1 INIT的配置文件/etc/inittab 272
16.2.2 inittab文件解析 273
16.2.3系统运行级别 275
16.2.4系统初始化脚本 276
16.3 Linux的独立服务程序 276
16.3.1服务器的启动脚本 276
16.3.2各运行级别的脚本目录 277
16.3.3服务程序的启动与停止 277
16.4 xinetd与其管理的服务 279
16.4.1 xinetd的配置文件 279
16.4.2 xinetd的启动配置目录 280
16.5服务的启动状态配置命令 281
第17章Linux的基本网络配置 283
17.1基本网络配置的内容 283
17.1.1主机名 283
17.1.2 IP地址 283
17.1.3网关地址 283
17.1.4 DNS服务器地址 284
17.2网络配置相关文件 284
17.2.1模块配置文件 284
17.2.2网卡IP地址配置文件 284
17.2.3 DNS客户配置文件 285
17.2.4名称解析顺序 285
17.2.5 hosts文件 286
17.3网络相关命令 286
17.3.1 hostname命令 286
17.3.2 ifconfig 287
17.3.3 ifup命令 290
17.3.4 ifdown命令 291
17.3.5 route命令 291
第3篇Shell基础 297
第18章Shell Script基础 297
18.1简单的Shell脚本 297
18.1.1 Shell脚本编写的约定 298
18.1.2 Shell脚本的执行方法 298
18.1.3脚本的基本结构 298
18.2常见的Shell脚本要素 299
18.2.1 echo命令的使用 299
18.2.2利用read命令实现脚本的交互式操作 299
18.2.3脚本中为变量赋值的操作 300
18.3脚本中的判断命令 300
18.3.1利用test命令进行文件判断 301
18.3.2利用test命令进行文件权限判断 301
18.3.3利用test命令比较文件新旧 302
18.3.4利用test命令进行数值比较 303
18.3.5利用test命令进行字符串判断 303
18.3.6 test命令的逻辑判断 304
18.4利用判断符号[ ] 305
18.5 Shell的默认变量 306
第19章Shell Script中的结构控制语句 307
19.1条件判断语句 307
19.1.1 if…then判断语句 307
19.1.2 if…then…else二重判断 309
19.2循环语句 311
19.2.1循环语句while…do 311
19.2.2循环语句for…do 313
19.2.3控制语句的联合使用 313
第4篇 网络服务基础 317
第20章NFS网络文件系统 317
20.1 NFS服务的安装 317
20.2 NFS服务的控制 318
20.3 NFS服务的配置 319
20.3.1 /etc/exports文件的语法格式 319
20.3.2 NFS共享的配置示例 321
20.3.3 NFS服务的共享列表 322
20.3.4 NFS服务的维护 322
20.4 NFS客户端的访问 323
第21章Samba服务的配置与应用 325
21.1 Samba概述 325
21.2 Samba服务的安装 326
21.3 Samba服务器的配置 326
21.3.1 /etc/samba/smb.conf文件的格式 326
21.3.2 Samba服务的用户身份验证 326
21.3.3 Samba服务的日志文件 327
21.4 Samba服务的基本配置 327
21.4.1全局参数 327
21.4.2用户映射 329
21.4.3使用加密码口令 330
21.4.4共享目录 330
21.5 Samba服务的打印共享 331
21.6 Samba服务的启动和停止 331
21.6.1启动Samba服务 331
21.6.2停止Samba服务 332
21.6.3重新启动Samba服务 332
21.7 Linux客户端的访问 332
21.8 Windows客户端的访问 333
第22章DNS服务器的基本配置 334
22.1名称解析方法概述 334
22.1.1利用Host本地数据库进行名称解析 334
22.1.2利用NIS进行名称解析 335
22.1.3利用DNS进行名称解析 336
22.2 DNS服务的基本要素 336
22.2.1域名空间 336
22.2.2 DNS服务器与客户端 338
22.2.3 DNS名称解析的过程 339
22.2.4 DNS服务器的种类 341
22.3 BIND服务的安装与启动 343
22.3.1主要DNS服务器的安装与启动 344
22.3.2定义BIND服务所解析的区域 345
22.3.3定义区域数据文件 348
22.4 DNS客户端的配置 354
22.4.1 host命令 354
22.4.2 nslookup命令 355
22.5 DNS反向解析区域的配置 357
第23章Web服务的配置与应用 359
23.1 Web服务简介 359
23.1.1 HTTP协议 359
23.1.2 Web服务 359
23.1.3 Web服务的工作原理 359
23.2 Apache服务器 360
23.3 Apache服务的安装 360
23.4 Apache服务器的配置 361
23.4.1 httpd.conf文件的格式 362
23.4.2 Web服务的基本配置 362
23.5 Web服务的启动和停止 365
23.5.1启动Web服务 365
23.5.2停止Web服务 365
23.5.3重新启动Web服务 365
第24章 远程管理工具的管理与使用 366
24.1 SSH服务概述 366
24.2 SSH服务的安装 366
24.3 SSH服务的配置 367
24.4 SSH服务的启动和停止 369
24.5 SSH客户端的使用 369
24.5.1 Windows平台 369
24.5.2 Linux平台 371
24.6使用非对称加密认证 372
24.6.1非对称加密体系结构 372
24.6.2非对称加密认证的原理 372
24.6.3在服务器启用公钥认证 372
24.6.4在PuTTY程序使用公钥认证 373
24.6.5在openssh-clients程序使用公钥认证 376
参考文献 377