第1章 Linux系统的简介和安装 1
1.1 Linux系统简介 1
1.1.1 什么是Linux 1
1.1.2 Linux系统的产生 1
1.1.3 Linux系统的应用领域 1
1.2 Linux系统的特点和组成 2
1.2.1 Linux系统的特点 2
1.2.2 Linux系统的组成 3
1.3 Linux内核版本和发行版本 3
1.3.1 Linux内核版本 4
1.3.2 Linux发行版本 4
1.4 准备安装Linux系统 5
1.4.1 安装Linux系统的硬件要求 5
1.4.2 交换分区 6
1.4.3 Linux磁盘的分区和挂载 6
1.5 安装Linux系统 8
1.5.1 安装Linux系统的步骤 8
1.5.2 Linux安装后的初始化配置 21
1.5.3 登录Linux系统 23
1.5.4 GNOME初始设置 24
1.6 注销、关闭和重启Linux系统 26
1.6.1 注销Linux系统 26
1.6.2 关闭和重启Linux系统 27
1.7 防火墙配置 27
1.7.1 FirewallD防火墙简介 27
1.7.2 FirewallD防火墙配置 28
1.8 配置网络连接 31
1.9 管理SELinux 33
1.9.1 SELinux简介 33
1.9.2 设置SELinux 33
第2章 Linux字符界面 35
2.1 Linux字符界面简介 35
2.1.1 进入Linux字符界面 35
2.1.2 关闭和重启Linux系统 36
2.1.3 目标 38
2.2 在Linux系统下获取帮助 39
2.2.1 使用--help选项获取帮助 39
2.2.2 查看man手册页 40
3.3 Shell基础知识 42
2.3.1 Shell简介 42
2.3.2 bash简介 42
3.3.3 bash命令 43
2.4 使用bash 44
2.4.1 常用控制组合键 44
2.4.2 光标操作 44
2.4.3 特殊字符 45
2.4.4 通配符 45
2.5 Shell实用功能 45
2.5.1 命令行自动补全 46
2.5.2 命令历史记录 46
2.5.3 命令排列 48
2.5.4 命令替换 49
2.5.5 命令别名 49
2.5.6 文件名匹配 50
2.5.7 管道 51
2.6 重定向 52
2.6.1 输出重定向 52
2.6.2 输入重定向 53
2.6.3 错误重定向 53
2.6.4 同时实现输出和错误的重定向 54
2.7 vi编辑器 54
2.7.1 vi编辑器工作模式 54
2.7.2 进入插入模式 55
2.7.3 光标移动 55
2.7.4 命令模式操作 56
2.7.5 末行模式操作 57
2.8 远程连接Linux系统 58
2.8.1 使用Xshell 59
2.8.2 使用Xftp 60
第3章 目录和文件管理 63
3.1 Linux文件类型 63
3.2 Linux系统目录结构 65
3.3 Linux文件信息 66
3.3.1 inode和目录项 66
3.3.2 使用stat命令查看文件信息 67
3.3.3 使用ls命令查看文件信息 70
3.4 文件和目录操作管理 71
3.4.1 pwd:显示工作目录路径 71
3.4.2 cd:更改工作目录路径 71
3.4.3 ls:列出目录和文件信息 73
3.4.4 touch:创建空文件、更改文件时间 75
3.4.5 mkdir:创建目录 76
3.4.6 rmdir:删除空目录 76
3.4.7 cp:复制文件和目录 77
3.4.8 mv:文件和目录改名、移动文件和目录路径 77
3.4.9 rm:删除文件或目录 78
3.4.10 file:查询文件类型 78
3.4.11 du:显示目录或文件的磁盘占用量 79
3.4.12 wc:统计文件行数、单词数、字节数和字符数 80
3.5 链接文件 81
3.5.1 链接文件简介 81
3.5.2 使用链接文件 82
3.6 文件和目录属性 85
3.6.1 文件和目录属性简介 85
3.6.2 查看和设置文件和目录属性 85
第4章 Linux常用命令 88
4.1 文本内容显示 88
4.1.1 cat:显示文本文件 88
4.1.2 more:分页显示文本文件 90
4.1.3 less:回卷显示文本文件 91
4.1.4 head:显示指定文件前若干行 93
4.1.5 tail:查看文件末尾数据 95
4.2 文本处理 96
4.2.1 sort:对文件中的数据进行排序 96
4.2.2 uniq:将重复行从输出文件中删除 96
4.2.3 cut:从文件每行中输出选定的字节、字符或字段 97
4.2.4 comm:逐行比较两个已排序的文件 99
4.2.5 diff:逐行比较两个文本文件,列出其不同之处 99
4.3 文件和命令查找 101
4.3.1 grep:查找文件中符合条件的字符串 101
4.3.2 find:列出文件系统内符合条件的文件 102
4.3.3 locate:在数据库中查找文件 105
4.3.4 whereis:查找指定文件、命令和手册页位置 106
4.4 系统信息显示 107
4.4.1 uname:显示计算机及操作系统相关信息 107
4.4.2 hostname:显示或修改计算机主机名 107
4.5 日期和时间 108
4.5.1 cal:显示日历信息 108
4.5.2 date:显示和设置系统日期和时间 109
4.5.3 hwclock:查看和设置硬件时钟 111
4.6 信息交流 112
4.6.1 echo:在显示器上显示文字 112
4.6.2 mesg:允许或拒绝写消息 112
4.6.3 wall:对全部已登录用户发送信息 113
4.6.4 write:向用户发送消息 113
4.7 其他命令 114
4.7.1 clear:清除计算机屏幕信息 114
4.7.2 uptime:显示系统已经运行的时间 114
4.7.3 type:显示命令的类型 114
第5章 Shell编程 116
5.1 熟悉Shell程序的创建 116
5.1.1 Shell程序基本语法 116
5.1.2 Shell程序的创建过程 116
5.2 Shell变量 117
5.2.1 Shell定义的环境变量 117
5.2.2 用户定义的变量 119
5.2.3 位置参数 120
5.2.4 预定义变量 120
5.2.5 参数置换的变量 120
5.3 变量表达式 121
5.3.1 字符串比较 121
5.3.2 数字比较 122
5.3.3 逻辑测试 122
5.3.4 文件操作测试 123
5.4 执行Shell程序 123
5.5 Shell流程控制语句 124
5.5.1 条件判断 124
5.5.2 循环控制 126
第6章 用户和组群账户管理 130
6.1 用户账户简介 130
6.1.1 用户账户分类 130
6.1.2 /etc/passwd文件详解 130
6.1.3 /etc/shadow文件详解 132
6.2 管理用户账户 133
6.2.1 创建用户账户 133
6.2.2 修改用户账户 135
6.2.3 删除用户账户 137
6.3 组群账户简介 137
6.3.1 组群账户分类 137
6.3.2 /etc/group文件详解 138
6.3.3 /etc/gshadow文件详解 139
6.4 管理组群账户 140
6.4.1 创建组群账户 140
6.4.2 修改组群账户 141
6.4.3 删除组群账户 141
6.5 账户维护和显示 141
6.5.1 passwd 141
6.5.2 gpasswd 143
6.5.3 pwck 144
6.5.4 newgrp 144
6.5.5 groups 144
6.5.6 id 145
6.5.7 su 145
6.6 实现用户账户安全 146
第7章 权限、所有者和ACL 149
7.1 设置文件和目录权限 149
7.1.1 文件和目录权限简介 149
7.1.2 设置文件和目录基本权限 149
7.1.3 设置文件和目录特殊权限 153
7.2 文件和目录所有者 154
7.2.1 更改用户和组群所有者 154
7.2.2 更改组群所有者 155
7.3 权限掩码 156
7.4 实现ACL控制 157
7.4.1 ACL简介 157
7.4.2 查看文件和目录ACL 157
7.4.3 设置文件和目录ACL 158
第8章 归档、压缩和备份 163
8.1 归档和压缩简介 163
8.2 管理tar包 163
8.2.1 tar包简介 163
8.2.2 tar包使用和管理 164
8.3 gzip和gunzip 165
8.3.1 gzip简介 165
8.3.2 gzip压缩 166
8.3.3 gunzip解压缩 167
8.4 zip和unzip 167
8.4.1 zip简介 167
8.4.2 zip压缩 168
8.4.3 unzip解压缩 169
8.5 bzip2和bunzip2 170
8.5.1 bzip2简介 170
8.5.2 bzip2压缩 170
8.5.3 bunzip2解压缩 172
8.6 cpio 172
8.7 dd 174
第9章 软件包管理 176
9.1 RPM软件包简介 176
9.1.1 什么是RPM软件包 176
9.1.2 RPM软件包设计目标 176
9.1.3 RPM软件包管理用途 177
9.2 RPM软件包管理 177
9.2.1 RPM数据库和RPM软件包文件 177
9.2.2 安装RPM软件包 179
9.2.3 删除RPM软件包 180
9.2.4 升级和刷新RPM软件包 181
9.2.5 查询RPM软件包 181
9.3 使用yum管理软件包 186
9.3.1 yum简介 186
9.3.2 /etc/yum.conf文件详解 186
9.3.3 yum软件仓库配置文件 187
9.3.4 创建本地软件仓库 187
9.3.5 yum命令语法 188
9.4 源代码编译安装软件 197
9.4.1 源码包软件简介 197
9.4.2 源码包软件安装实例 198
第10章 磁盘和文件系统管理 199
10.1 磁盘分区和格式化简介 199
10.1.1 什么是磁盘分区 199
10.1.2 什么是格式化 199
10.2 磁盘分区 200
10.2.1 fdisk命令语法 200
10.2.2 磁盘分区实例 201
10.3 文件系统简介 206
10.1.1 xfs文件系统 206
10.3.2 与Linux有关的其他文件系统 207
10.4 创建文件系统 208
10.5 挂载和卸载文件系统 209
10.5.1 挂载文件系统 209
10.5.2 卸载文件系统 211
10.5.3 查看磁盘分区挂载情况 212
10.6 UUID 214
10.6.1 UUID简介 214
10.6.2 查看磁盘分区UUID 215
10.7 开机自动挂载文件系统 215
10.7.1 /etc/fstab文件详解 215
10.7.2 设置开机自动挂载文件系统 217
10.8 检查并修复文件系统错误 218
10.9 使用交换空间 219
10.9.1 使用交换分区 219
10.9.2 使用交换文件 221
10.10 磁盘配额 223
10.10.1 磁盘配额简介 223
10.10.2 配置磁盘配额 223
10.10.3 显示磁盘使用情况和限制 227
10.10.4 查看文件系统配额摘要 228
10.10.5 关闭磁盘配额 229
10.10.6 启用磁盘配额 229
第11章 逻辑卷管理 230
11.1 LVM简介 230
11.1.1 LVM概念 230
11.1.2 使用LVM的优点 231
11.1.3 LVM相关术语 231
11.2 LVM配置和使用 232
11.2.1 为LVM创建磁盘分区 232
11.2.2 创建和查看物理卷 234
11.2.3 创建和查看卷组 236
11.2.4 在卷组中移除和添加物理卷 237
11.2.5 创建和查看逻辑卷 239
11.2.6 挂载和使用逻辑卷 240
11.2.7 LVM容量调整 241
11.2.8 删除逻辑卷、卷组和物理卷 243
第12章 进程和服务管理 245
12.1 进程简介 245
12.2 查看系统进程信息 246
12.2.1 ps 246
12.2.2 top 249
12.3 杀死进程 252
12.3.1 kill 252
12.3.2 killall 253
12.4 进程的启动方式 254
12.4.1 手工启动进程 254
12.4.2 调度启动进程 255
12.5 进程挂起和恢复 255
12.6 更改进程优先级 257
12.6.1 以指定优先级运行进程 257
12.6.2 更改正在运行的进程优先级 258
12.7 管理服务 258
第13章 任务计划 262
13.1 使用cron实现任务计划 262
13.1.1 /etc/crontab文件实现任务计划 262
13.1.2 使用crontab命令实现任务计划 265
13.2 使用at实现任务计划 267
13.2.1 at简介 267
13.2.2 配置at作业 268
13.3 使用anacron实现任务计划 271
13.3.1 anacron简介 271
13.3.2 /etc/anacrontab文件详解 272
13.3.3 anacron执行作业 273
第14章 Linux系统引导和启动 274
14.1 Linux系统启动过程 274
14.2 systemd简介 275
14.2.1 什么是systemd 275
14.2.2 单元类型 276
14.3 管理GRUB 2 277
14.3.1 GPUB 2简介 277
14.3.2 GRUB 2主配置文件 278
14.3.3 /etc/grub.d目录 282
14.3.4 /etc/default/grub文件详解 282
14.4 GRUB 2加密 283
14.4.1 GRUB 2加密简介 283
14.4.2 设置GRUB 2 PBKDF2加密口令 284
14.4.3 设置GRUB 2明文密码 285
14.4.4 GRUB 2解锁 285
14.5 使用GRUB 2 286
14.6 GRUB 2配置案例 287
14.6.1 设置Linux系统默认启动前的等待时间 287
14.6.2 破解root用户密码 288
14.6.3 将网卡名称eno16777736更改为eth0 289
14.7 内核简介 290
14.7.1 什么是内核 290
14.7.2 内核组件 290
14.8 管理内核模块 291
14.8.1 内核模块存储位置 291
14.8.2 查看已经加载的模块 292
14.8.3 查看模块信息 292
14.8.4 自动加载和卸载模块 293
第15章 Linux网络基本配置 295
15.1 Linux网络配置文件 295
15.1.1 /etc/sysconfig/network-scripts/ifcfg-eno16777736文件 295
15.1.2 /etc/resolv.conf文件 296
15.1.3 /etc/hosts文件 296
15.1.4 /etc/networks文件 296
15.1.5 /etc/protocols文件 297
15.1.6 /etc/services文件 297
15.2 Linux网络命令 298
15.2.1 traceroute 298
15.2.2 ifconfig 299
15.2.3 ping 301
15.2.4 netstat 302
15.2.5 arp 303
15.3 使用nmap扫描网络 304
15.3.1 nmap简介 304
15.3.2 使用nmap 305
15.4 使用tcpdump捕获网络数据包 309
第16章 配置OpenSSH服务器 312
16.1 SSH简介 312
16.1.1 什么是SSH 312
16.1.2 SSH工作原理 312
16.1.3 SSH安全验证方式 312
16.1.4 OpenSSH简介 313
16.2 OpenSSH服务器安装和配置 313
16.2.1 安装openSSH服务器软件包 313
16.2.2 /etc/ssh/sshd_config文件详解 314
16.2.3 OpenSSH服务器配置实例 318
16.2.4 控制sshd服务 318
16.3 配置OpenSSH客户端 319
16.3.1 Linux客户端连接 319
16.3.2 Windows客户端连接-PuTTY 324
第17章 配置VNC服务器 327
17.1 VNC简介 327
17.1.1 什么是VNC 327
17.1.2 TigerVNC简介 327
17.2 VNC服务器安装和配置 328
17.2.1 VNC服务器配置实例 328
17.2.2 /root/.vnc目录简介 329
17.2.3 创建或更改VNC登录密码 329
17.2.4 管理VNC服务器 329
17.3 连接VNC服务器 330
17.3.1 Linux客户端连接 331
17.3.2 Windows客户端连接 332
第18章 配置NFS服务器 333
18.1 NFS简介 333
18.1.1 什么是NFS 333
18.1.2 NFS协议 333
18.2 NFS服务器安装和配置 334
18.2.1 安装NFS服务器软件包 334
18.2.2 /etc/exports文件详解 334
18.2.3 NFS服务器配置实例 335
18.2.4 控制nfs-server服务 336
18.3 管理NFS共享目录 337
18.3.1 维护NFS共享目录 337
18.3.2 查看NFS共享目录信息 337
18.4 挂载和卸载NFS共享目录 338
18.4.1 挂载和卸载NFS文件系统 338
18.4.2 开机自动挂载NFS文件系统 339
第19章 配置DHCP服务器 341
19.1 DHCP简介 341
19.1.1 什么是DHCP 341
19.1.2 使用DHCP服务优缺点 341
19.2 DHCP服务器安装和配置 342
19.2.1 安装DHCP服务器软件包 342
19.2.2 /etc/dhcp/dhcpd.conf文件详解 342
19.2.3 DHCP服务器配置实例 346
19.2.4 控制dhcpd服务 347
19.3 配置DHCP客户端 348
19.3.1 Linux客户端配置 348
19.3.2 Windows客户端配置 349
19.4 查看DHCP地址租约信息 351
第20章 配置Samba服务器 353
20.1 Samba简介 353
20.2 Samba服务器安装和配置 353
20.2.1 安装Samba服务器软件包 353
20.2.2 /etc/samba/smb.conf文件详解 354
20.2.3 Samba共享目录配置实例 361
20.3 Samba服务器配置实例 362
20.3.1 share级别Samba服务器配置 362
20.3.2 user级别Samba服务器配置 363
20.3.3 Samba打印机共享配置 364
20.3.4 控制smb服务 365
20.3.5 Samba排错 366
20.4 配置Samba客户端 366
20.4.1 Linux客户端配置 366
20.4.2 Windows客户端配置 371
20.5 Samba服务器高级配置 371
20.5.1 设置Samba加密口令 371
20.5.2 映射Samba用户账户 372
第21章 配置DNS服务器 374
21.1 DNS简介 374
21.1.1 什么是DNS 374
21.1.2 DNS域命名空间简介 374
21.1.3 DNS服务器类型 375
21.1.4 DNS解析类型 376
21.1.5 bind简介 376
21.2 DNS服务器安装和配置 377
21.2.1 安装DNS服务器软件包 377
21.2.2 /etc/named.conf文件详解 377
21.2.3 配置DNS区域文件 379
21.2.4 主DNS服务器配置实例 381
21.2.5 控制named服务 383
21.3 DNS服务器排错 384
21.3.1 named-checkconf 384
21.3.2 named-checkzone 385
21.4 配置DNS客户端 385
21.4.1 Linux客户端配置 385
21.4.2 Windows客户端配置 386
21.5 DNS客户端域名解析测试 387
21.5.1 host 387
21.5.2 nslookup 388
21.6 DNS服务器高级配置 390
21.6.1 辅助DNS服务器 390
21.6.2 虚拟子域 392
21.6.3 缓存DNS服务器 393
第22章 配置Apache服务器 395
22.1 Web简介 395
22.1.1 什么是Web 395
22.1.2 Web工作原理 395
22.1.3 Apache简介 396
22.2 Apache服务器安装和配置 396
22.2.1 安装Apache服务器软件包 396
22.2.2 /etc/httpd/conf/httpd.conf文件详解 397
22.2.3 Apache服务器配置实例 401
22.2.4 控制httpd服务 403
22.3 访问Apache服务器 404
22.3.1 Linux客户端配置 404
22.3.2 Windows客户端配置 405
22.4 日志文件管理和分析 405
22.4.1 配置错误日志 405
22.4.2 配置访问日志 406
22.5 Apache服务器高级配置 407
22.5.1 访问控制 407
22.5.2 用户认证和授权 409
22.5.3 虚拟目录 411
22.6 配置Apache虚拟主机 412
22.6.1 基于IP地址的虚拟主机 412
22.6.2 基于TCP端口号的虚拟主机 414
22.6.3 基于域名的虚拟主机 416
22.7 配置LAMP网站 418
22.7.1 LAMP简介 418
22.7.2 搭建LAMP网站实例 418
第23章 配置vsftpd服务器 425
23.1 FTP简介 425
23.1.1 什么是FTP 425
23.1.2 FTP数据传输原理 425
23.1.3 FTP传输模式 425
23.1.4 FTP用户 426
23.1.5 vsftpd简介 426
23.2 vsftpd服务器安装和配置 426
23.2.1 安装vsftpd服务器软件包 426
23.2.2 /etc/vsftpd/vsftpd.conf文件详解 427
23.2.3 控制vsftpd服务 430
23.3 配置vsftpd客户端 431
23.3.1 Linux客户端配置 431
23.3.2 Windows客户端配置 434
23.4 vsftpd服务器配置实例 436
23.4.1 测试默认匿名用户登录 436
23.4.2 允许匿名用户上传下载文件和创建目录 437
23.4.3 只允许本地用户账户登录 438
23.4.4 限制用户目录 440
23.4.5 配置vsftpd服务器使用非标准端口 441
23.4.6 拒绝指定用户连接vsftpd服务器 442
第24章 配置Sendmail服务器 443
24.1 电子邮件简介 443
24.1.1 什么是电子邮件 443
24.1.2 邮件系统组成 443
24.1.3 电子邮件协议简介 444
24.1.4 Sendmail简介 444
24.2 Sendmail服务器安装和配置 445
24.2.1 安装Sendmail服务器软件包 445
24.2.2 /etc/mail/sendmail.mc文件详解 445
24.2.3 /etc/mail/local-host-names文件详解 448
24.2.4 /etc/mail/access文件详解 449
24.2.5 /etc/aliases文件详解 450
24.2.6 /etc/mail/userdb文件详解 450
24.2.7 Sendmail服务器配置实例 451
24.2.8 控制sendmail服务 453
24.2.9 配置dovecot服务器 454
24.2.10 测试发送Sendmail邮件 455
24.3 配置Sendmail客户端 456
24.3.1 Linux客户端配置 456
24.3.2 Windows客户端配置 457
24.4 Sendmail服务器认证 460
第25章 配置Squid服务器 464
25.1 代理服务器简介 464
25.1.1 什么是代理服务器 464
25.1.2 代理服务器功能 464
25.1.3 Squid简介 465
25.2 Squid服务器安装和配置 465
25.2.1 安装Squid服务器软件包 465
25.2.2 /etc/squid/squid.conf文件详解 466
25.2.3 Squid访问控制列表 468
25.2.4 Squid服务器配置实例 471
25.2.5 控制squid服务 473
25.3 配置Squid客户端 474
25.3.1 Linux客户端配置 474
25.3.2 Windows客户端配置 476
25.4 Squid日志文件简介 478