新書推薦:
《
西周基层地域组织研究
》
售價:HK$
63.8
《
中国土司制度史料集成(全十九册)
》
售價:HK$
5478.0
《
守护健康:纽约市公共卫生制度的构建(1866—1920)
》
售價:HK$
96.8
《
岩体边坡锚固结构体系安全性评价指标体系研究
》
售價:HK$
72.6
《
癌症幸存者的秘密
》
售價:HK$
50.2
《
专业主义 (美)大卫·梅斯特
》
售價:HK$
86.9
《
城市计算 郑宇
》
售價:HK$
130.9
《
海洋牧场高质量发展路径与机制研究
》
售價:HK$
88.0
編輯推薦:
本书聚焦于资深系统管理员的一系列Linux进阶知识,从基本原理、基础命令到具体用法,再到真实案例,逐层递进地讲解,囊括了Linux系统管理的方方面面。
在阅读本书的过程中,你将学习如何管理和监控运行中的进程,探索特殊文件系统的强大功能,以及在不重启的情况下监控和调整内核。然后,你将了解正则表达式,以及它在命令行中用于模式匹配的能力,并学会从命令行管理打印任务,解锁运行Linux操作系统的硬件的秘密。
接着,你将学习如何在命令行中编程,并自动化各种管理任务、网络设置及Linux系统所需的各种服务。通过查看日志文件来寻找问题的线索,确认系统运行是否正常。此外,你还将学习如何提升Linux系统的安全性,以及如何轻松执行本地和远程备份。
通过阅读本书,你将学习:
逻辑卷管理,文件管理器及特殊文件系统的使用。
“一切皆文件”的理念。
执行命令行编程,实现基本的自动化任务。
配置打印机和管理其他硬件。
使用systemd管理系统服务,处理用户管理和安全性问题,并进行本地和远程备份。无论是想要成为更专业的Linux用户,还是希望在系统管理方面有所建树,本书都是理想的选择。
內容簡介:
本书聚焦于资深Linux系统管理员的一系列进阶知识,揭示Linux运行和编程的深层逻辑,覆盖逻辑卷管理、进程管理和监控、特殊文件系统、正则表达式、通过命令行打印、编程和管理任务自动化、利用Ansible简化远程主机上的大规模自动化管理、配置定时任务、NetworkManager的功能、B树文件系统及其特性、systemd相关知识、利用D-Bus和udev实现设备的即插即用管理、传统Linux日志文件的使用、用户管理以及基本的防火墙管理操作等,帮助读者成为Linux系统管理员。
關於作者:
戴维·博特(David Both)
一位热衷于开源软件及GNU/Linux的倡导者、培训师、作家和演讲者。他在Linux和开源软件领域耕耘逾25年,更是拥有长达50年的计算机行业经验。他是“Linux系统管理员哲学”的忠实拥护者和布道者。他在IBM工作了21年,1981年在佛罗里达州博卡拉顿担任IBM课程开发代表时,他为第一款IBM PC编写了培训课程。他曾为红帽公司讲授RHCE课程,并曾教授从“午餐学习”到五日完整课程的Linux课程。David的著作和文章体现了他传授知识、助力Linux学习者的诚挚愿望。他著有《Linux哲学》(The Linux Philosophy for SysAdmins),并与他人合著了Linux for Small Business Owners。
党超辉,就职于中国广电青岛5G高新视频应用安全重点实验室,负责国家广播电视行业云计算和网络安全信息标准与技术研究工作,先后参与了适配国家等保2.0标准要求、适应广电业务高质量发展的智慧广电安全大脑平台的建设运营,通过融合国家级安全情报和行业安全大数据服务,赋能广播电视台、融媒体中心、网络视听节目服务机构和广电网络运营机构等各类单位的网络安全建设和防护能力,致力于加强新形势下广播电视和网络视听业务安全运行保障。
目錄 :
目 录
译者序
前 言
致 谢
作者简介
第1章 逻辑卷管理 1
1.1 逻辑卷管理的必要性 1
1.1.1 VirtualBox中磁盘空间不足 2
1.1.2 恢复安装 2
1.2 逻辑卷管理器的结构 2
1.3 扩展逻辑卷 3
1.4 创建和扩展卷组 6
1.4.1 创建新的卷组 6
1.4.2 扩展现有卷组 9
1.5 使用技巧提示 10
1.6 高级功能 11
总结 11
练习 12
第2章 文件管理器 13
2.1 概述 13
2.1.1 文本界面 14
2.1.2 图形界面 14
2.2 默认的文件管理器 14
2.3 文本模式的文件管理器 14
2.4 其他文本模式的文件管理器 23
2.4.1 Vifm文件管理器 24
2.4.2 nnn文件管理器 24
2.5 图形文件管理器 25
2.5.1 Krusader文件管理器 25
2.5.2 Thunar文件管理器 28
2.5.3 Dolphin文件管理器 28
2.5.4 XFE文件管理器 29
2.6 其他文件管理器 30
总结 31
练习 31
第3章 一切皆文件 32
3.1 什么是文件 32
3.2 设备文件 33
3.3 udev设备管理守护进程 34
3.3.1 udev命名规则 34
3.3.2 udev规则变更的困扰 34
3.4 设备数据流 35
3.5 设备文件分类 36
3.6 设备文件的强大功能和
灵活性 37
3.7 随机性、零值及其他概念 40
3.8 备份主引导记录 42
3.9 “一切皆文件”的含义 48
总结 48
练习 49
第4章 进程管理 50
4.1 进程 50
4.2 工具 51
4.2.1 top 51
4.2.2 负载平均值 55
4.2.3 传输信号 55
4.3 CPU占用程序 56
4.4 进程调度 57
4.5 终止进程 60
4.6 其他交互式工具 61
4.6.1 atop 61
4.6.2 htop 63
4.6.3 Glances 68
4.6.4 其他工具 70
4.7 观察者效应 74
总结 74
练习 75
第5章 特殊文件系统 76
5.1 概述 76
5.2 /proc文件系统 77
5.3 /sys文件系统 85
5.4 基于存储的swap空间 88
5.4.1 Linux中swap的类型 89
5.4.2 内存抖动 89
5.4.3 基于存储的swap空间的
合适大小 90
5.4.4 在非LVM磁盘环境中添加
swap空间 91
5.4.5 在LVM磁盘环境中添加
swap空间 95
5.4.6 LVM环境下的其他swap
配置 98
5.5 使用Zram拓展swap空间 98
5.5.1 Zram存在的意义 99
5.5.2 需要多少swap空间 99
5.5.3 管理Zram交换 100
5.5.4 创建Zram交换 101
5.5.5 增加Zram交换 102
5.6 优化swap空间 102
5.6.1 关于swap空间大小的
建议 103
5.6.2 移除传统的swap分区
和文件 103
总结 105
练习 105
第6章 正则表达式 106
6.1 引入正则表达式 106
6.2 正则表达式入门指南 107
6.3 正则表达式检索工具grep 113
6.3.1 数据流 114
6.3.2 正则表达式构建块 114
6.3.3 重复操作 116
6.3.4 其他元字符 117
6.4 sed流式编辑器 118
6.5 其他实现正则表达式的工具 119
6.6 资源 120
总结 120
练习 120
第7章 打印 122
7.1 概述 122
7.2 关于打印机 123
7.2.1 打印语言 123
7.2.2 打印机和Linux 124
7.2.3 CUPS打印集成服务 125
7.2.4 创建打印队列 127
7.3 打印到PDF文件 132
7.4 文件转换工具 134
7.4.1 a2ps 135
7.4.2 ps2pdf 136
7.4.3 pr 137
7.4.4 ps2ascii 137
7.5 操作系统相关的转换工具 138
7.5.1 unix2dos 139
7.5.2 dos2unix 141
7.5.3 unix2mac和mac2unix 141
7.6 其他工具 142
7.6.1 lpmove 142
7.6.2 wvText和odt2txt 144
总结 145
练习 145
第8章 硬件检测 146
8.1 概述 146
8.2 dmidecode 147
8.3 lshw 152
8.4 lsusb 155
8.5 usb-devices 156
8.6 lspci 158
8.7 清理 160
总结 161
练习 161
第9章 命令行编码 162
9.1 概述 162
9.2 程序的定义 163
9.3 入门级CLI程序 163
9.3.1 基本语法 164
9.3.2 输出至屏幕 164
9.3.3 关于变量 166
9.4 控制运算符 168
9.4.1 返回码 168
9.4.2 运算符 169
9.5 程序流控制 171
9.5.1 true和false 171
9.5.2 逻辑运算符 172
9.6 组合程序语句 180
9.7 扩展知识 184
9.7.1 大括号扩展 184
9.7.2 波浪线扩展 184
9.7.3 路径名扩展 184
9.7.4 命令替换 186
9.7.5 算术扩展 187
9.8 for循环 188
9.9 其他循环 192
9.9.1 while循环 192
9.9.2 until循环 194
总结 194
练习 195
第10章 Bash脚本自动化 196
10.1 概述 196
10.2 为什么使用shell脚本 197
10.2.1 shell脚本 197
10.2.2 脚本和编译程序 198
10.3 更新 198
10.3.1 关于更新 199
10.3.2 创建需求列表 199
10.3.3 CLI程序 200
10.3.4 安全性 200
10.3.5 将CLI程序转换为脚本 200
10.3.6 添加逻辑 201
10.3.7 仅限root用户使用 202
10.3.8 添加命令行选项 203
10.3.9 检查更新 205
10.3.10 是否需要重启 206
10.3.11 添加帮助函数 208
10.3.12 完成脚本 211
10.4 关于测试 212
10.4.1 在生产中测试 212
10.4.2 模糊测试 212
10.4.3 测试脚本 213
10.5 授权 215
10.6 自动化测试 217
10.7 更高级别的自动化 217
10.8 清理 219
总结 219
练习 220
第11章 自动化工具Ansible 221
11.1 Ansible初体验 221
11.2 Ansible的管控策略 222
11.3 笔者遇到的难题 222
11.4 快速上手 222
11.5 安装Ansible 223
11.6 配置文件 223
11.6.1 ansible.cfg文件 223
11.6.2 准备使用Ansible 223
11.6.3 Ansible Facts 227
11.6.4 hosts文件 228
11.6.5 创建hosts文件 229
11.7 Ansible模块 229
11.8 playbooks简介 229
11.8.1 输出 231
11.8.2 文件 231
11.8.3 多次运行playbook 232
11.9 如何创建Ansible playbook 232
11.9.1 什么是playbook 232
11.9.2 更新重建 233
11.9.3 明确需求 233
11.9.4 语法 234
11.9.5 创建playbook 234
11.10 面向多系统的Ansible 241
11.10.1 第二个场景 241
11.10.2 第三个场景 242
总结 244
资源 244
练习 245
第12章 时间和自动化 246
12.1 概述 246
12.2 使用chrony校准时间 247
12.2.1 NTP服务器层次结构 247
12.2.2 NTP服务选择 247
12.2.3 chrony架构 248
12.2.4 chrony服务的客户端
配置 248
12.2.5 chronyc:一个实用的
交互式工具 251
12.3 利用cron实现定时自动化 252
12.3.1 cron守护进程(crond) 252
12.3.2 crontab 252
12.3.3 cron示例 254
12.3.4 crontab条目 256
12.3.5 创建crontab文件 256
12.4 其他调度选项 259
12.4.1 /etc/cron.hourly 259
12.4.2 anacron 259
12.5 关于cron的思考 261
12.5.1 调度任务的小贴士 261
12.5.2 安全性 261
12.5.3 cron资源 262
12.6 at命令 262
12.6.1 语法 262
12.6.2 时间规范 262
12.6.3 安全性 266
12.7 设置硬件时钟 267
12.8 关于时区 267
12.9 清理 270
总结 270
练习 270
第13章 网络 272
13.1 概述 272
13.2 网络基础概念 273
13.2.1 网络术语定义 273
13.2.2 MAC地址 275
13.2.3 IP地址 278
13.3 IP地址分配 280
13.4 TCP/IP 280
13.4.1 TCP/IP网络模型 280
13.4.2 一个简单的示例 282
13.5 CIDR 282
13.5.1 网络类别 283
13.5.2 CIDR的出现 285
13.5.3 可变长度子网掩码 287
13.6 DHCP客户端配置 290
13.7 NIC的命名规则 290
13.8 旧版接口配置文件 292
13.8.1 何时需要接口配置文件 292
13.8.2 接口配置文件 293
13.8.3 route- 文件 294
13.9 域名服务 294
13.9.1 域名解析原理 295
13.9.2 使用/etc/hosts文件 296
13.10 网络路由简介 299
13.11 iptraf-ng工具 304
总结 307
练习 308
第14章 网络管理 309
14.1 概述 309
14.2 网络启动 310
14.2.1 NetworkManager服务 310
14.2.2 NetworkManager替代了
什么 310
14.2.3 NetworkManager的功能 311
14.3 查看接口配置 312
14.4 NetworkManager密钥文件 319
14.5 为何迁移配置文件 319
14.6 迁移实验 320
14.7 没有ifcfg配置文件怎么办 325
14.8 恢复至DHCP设置 325
14.9 创建新的密钥文件 325
14.9.1 文本编辑器 325
14.9.2 使用nmtui工具 325
14.9.3 使用nmcli工具 327
14.9.4 使用GUI NetworkManager
连接编辑器 328
14.10 如何使用命令行管理无线
网络 330
总结 335
第15章 BtrFS 336
15.1 概述 336
15.2 BtrFS与EXT4的对比 338
15.2.1 BtrFS的优势 338
15.2.2 BtrFS和EXT4的相似性 339
15.2.3 EXT4的优势 339
15.3 使用BtrFS的文件系统结构 339
15.4 BtrFS如何工作 340
15.5 创建BtrFS 341
15.6 挂载BtrFS 343
15.7 探索BtrFS卷 345
15.8 简化BtrFS卷 348
15.9 什么是子卷 350
15.10 使用BtrFS子卷 351
15.11 将EXT转换为BtrFS 353
15.12 使用BtrFS作为swap空间 353
15.13 清理 353
15.14 OpenZFS:替代方案 353
总结 353
第16章 初步了解systemd 355
16.1 概述 355
16.2 学会热爱systemd 356
16.2.1 Linux启动过程 356
16.2.2 systemd之争 356
16.2.3 SystemV的优势 356
16.2.4 systemd的优势 357
16.2.5 真正的问题 357
16.2.6 以前的工作 358
16.3 systemd统治Linux世界了吗 358
16.3.1 更多数据供管理员参考 359
16.3.2 systemd标准化配置 360
16.3.3 过渡时的难点 360
16.4 systemd任务 361
16.4.1 systemd架构 362
16.4.2 使用systemd启动Linux 362
16.4.3 PID 1进程systemd 363
16.5 探索启动过程 366
16.5.1 GRUB 367
16.5.2 目标 370
16.5.3 当前目标概述 370
16.6 使用systemd单元 375
16.6.1 systemd套件 375
16.6.2 单元文件 375
16.6.3 systemctl 376
16.6.4 服务单元 380
16.6.5 传统挂载方式 383
16.6.6 创建挂载单元 386
总结 387
练习 388
第17章 systemd高级功能 389
17.1 systemd日历事件和时间跨度 389
17.1.1 术语定义 389
17.1.2 日历事件表达式 390
17.1.3 探索systemd时间语法 391
17.2 活用systemd日志 396
17.2.1 日志系统 396
17.2.2 systemd日志服务 397
17.2.3 配置 397
17.2.4 关于二进制数据格式
的争论 398
17.2.5 日志管理利器:journalctl 399
17.2.6 日志存储使用 407
17.3 分析systemd的启动和配置 411
17.4 使用systemd管理启动机制 420
总结 431
练习 432
第18章 systemd终曲 433
18.1 概述 433
18.2 日历事件表达式回顾 433
18.3 systemd定时器 434
18.3.1 创建定时器 437
18.3.2 定时器类型 443
18.4 使用systemd-homed实现
主目录安全 444
18.4.1 systemd-homed的定义 444
18.4.2 创建受控用户 445
18.4.3 homectl命令 445
18.4.4 局限性 445
18.4.5 可选性 445
18.5 使用systemd进行资源管理 445
18.5.1 使用cgroups对进程
进行管理 446
18.5.2 探索cgroups的层次
结构 448
18.5.3 使用systemd管理
cgroups 451
总结 452
练习 452
第19章 D-Bus和udev 453
19.1 混乱的/dev 453
19.1.1 D-Bus简介 453
19.1.2 udev简介 454
19.2 udev的命名规则 456
19.3 udev入门指南 457
19.4 精准细化udev规则 465
19.5 udev规则配置的安全问题 466
19.6 udev的实用性 467
总结 467
练习 468
第20章 使用传统日志 469
20.1 关于传统日志 469
20.2 logrotate工具 471
20.3 日志文件内容 474
20.3.1 messages文件 474
20.3.2 secure文件 475
20.3.3 dmesg命令 477
20.4 追踪日志文件 479
20.5 logwatch工具 480
总结 488
练习 488
第21章 用户管理 490
21.1 概述 490
21.2 root账户 490
21.3 你自己的用户账户 491
21.4 你的主目录 491
21.5 用户账户和用户组 491
21.5.1 /etc/passwd文件 493
21.5.2 nologin shells机制 495
21.5.3 /etc/shadow文件 495
21.5.4 /etc/group文件 498
21.5.5 /etc/login.defs文件 499
21.5.6 账户配置文件 499
21.6 密码安全 499
21.6.1 密码加密 500
21.6.2 生成强密码 501
21.6.3 密码质量 503
21.7 管理用户账户 504
21.7.1 创建新账户 504
21.7.2 通过编辑文件创建新用户 507
21.7.3 锁定用户账户 509
21.7.4 删除用户账户 509
21.8 强制注销账户 511
21.9 设置资源限制 512
总结 514
练习 514
第22章 管理防火墙 515
22.1 防火墙介绍 515
22.2 防火墙规则 517
22.3 防火墙工具 518
22.4 防火墙配置 518
22.5 网络安全现状 519
22.6 firewalld 519
22.6.1 firewalld区域 519
22.6.2 --reload命令 533
22.6.3 防火墙区域文件 533
22.6.4 紧急模式 536
22.6.5 使用GUI配置防火墙 537
22.7 nftables 537
22.8 阻止出站流量 538
22.9 Fail2ban 539
总结 542
练习 543
內容試閱 :
前 言
本系列图书在结构上与其他书籍大不一样。整个系列共分为三本,分别为《Linux权威指南:从小白到系统管理员 上册(原书第2版)》《Linux权威指南:从小白到系统管理员 下册(原书第2版)》《Linux权威指南:网络服务详解(原书第2版)》,每本书的内容都紧密相扣,相互衔接,共同构成一个连贯且递进的整体。
本系列图书与其他Linux教学书籍的区别在于,它提供了一套完整的自学教程,建议你从第一本的开头逐步阅读,仔细阅读每一章节,认真完成书中的所有实验,并完成每章的练习,直至第三本结束。即使你是Linux的零基础读者,遵循这个学习路径也能让你掌握成为Linux系统管理员所需的核心技能和知识。
本系列图书所有的实验都是在一个或多个虚拟机(Virtual Machine,VM)组成的虚拟网络中进行的。借助免费的VirtualBox虚拟化软件,你可以在任何规模合理的主机上创建这样的虚拟环境,无论是Linux操作系统还是Windows操作系统。在这个虚拟环境中,你可以自由地进行实验,甚至可以执行那些在安装Linux的过程中可能会损坏Linux硬件主机的错误操作,同时,你也可以通过多个快照中的任何一个,将Linux虚拟机完全恢复至某个之前的快照状态。这种既能承担风险又容易恢复的灵活性使我们能学到更多。
本系列图书也可以作为参考资料使用。多年来,我一直将自己以前的那些课程材料作为参考,它们一直发挥着重要作用。我将此视为本系列图书的目标之一。
此外,对于书中给出的所有练习,并非所有问题都能通过简单地复习章节内容解决,有些问题需要你亲手设计实验来找出答案,并且多数情况下可能不止有一种方法,只要能产生正确的结果,就是“正确”的方法。
书籍设计
书籍的设计过程与书籍本身的结构同等重要—甚至可以说更为重要。书籍设计者的首要任务是制订一份需求清单,明确书籍的架构与内容。只有在此基础上,书籍的编写才能顺利进行。实际上,我发现先撰写总结和练习,再创作其他内容会很有帮助。我在本书的许多章节中都采用了这种方式。
本系列图书专为像你这样志向明确的学生而设计,提供了一套完整的、端到端的 Linux 培训教程,目标是培养你成为一名 Linux 系统管理员(SysAdmin)。本书将带你从零开始学习Linux,助你实现成为系统管理员的职业理想。
许多Linux培训课程都默认学员应该从初级用户课程开始学习。这些课程可能会涉及 root用户在系统管理中的作用,但往往忽略了对未来系统管理员至关重要的实战经验。还有一些课程则完全避开了系统管理方面的内容。大部分课程的第一门课会展开一些Linux介绍,然后第二门课可能会介绍系统管理的基础知识,而第三门课可能会涉及更高级的管理主题。
坦白地说,这种循序渐进的教学方法并不适合我们之中许多已经成为 Linux 系统管理员的人。我们之所以能走到这一步,至少部分归功于强烈的求知欲和对快速学习的渴望。此外,我认为这也与旺盛的好奇心密不可分。一旦掌握了一个基本命令,我们就会开始提问,通过实验来探索它的极限、可能导致故障的情形,以及使用不当时会产生的后果。我们钻研手册页(man page)和其他文档,了解命令在各种极端场景下的用法。如果问题无法自行出现,我们会主动去“制造”问题,研究其运作机理,并掌握解决方法。我们乐于面对失败,因为从解决问题中获得的知识远胜于一帆风顺的经历。
本系列图书从一开始就深入探讨 Linux 系统管理。你将学习使用和管理 Linux 工作站和服务器所需的大量 Linux 工具,而且在每项任务中往往可以灵活运用多种工具。书中还包含许多实验,为你提供系统管理员看重的实践经验。这些实验将一步步引导你领略 Linux 的优雅与精妙。你会发现,Linux 操作系统的精髓在于简洁,正是这种简洁性让Linux优雅并易于
理解。
基于我多年来使用 UNIX 和 Linux 的经验,这三本书旨在向你介绍在Linux用户和Linux系统管理员的日常工作中会涉及的实际操作。
但是,每个系统管理员的知识体系不可能完全一致,每个人的起点、技能、目标都不同,管理的系统配置、软硬件故障、网络环境都可能存在差异。我们解决问题的思路和工具会受所接触的导师的影响,思考方式不同,对硬件的理解程度也有差别。正是一路走来的经历塑造了我们,成就了现在的系统管理员。
因此,我会在这套书中重点讲解我认为对大家重要的知识。这些知识能够提升你的技术,帮助你充分发挥创造力,独立解决你可能从未想过也未曾遇到过的问题。
经验告诉我,错误往往比成功更具教益。所以,遇到问题时,不要急于恢复到之前的快照,而应先试着分析错误产生的原因以及最佳的恢复方法。当然,如果在合理的时间内仍然无法解决,此时再恢复快照就是明智之举了。
需要明确的是,这套书不是认证考试的应试指南,其目标不是帮助你通过任何类型的认证考试,而是传授实用的系统管理技能,帮助你成为一名合格甚至优秀的Linux系统管理员。
目前,红帽(Red Hat)和思科(Cisco)的认证考试质量相对较高,它们注重考查应试者解决实际问题的能力。由于我没有参加过其他认证考试,因此对此了解有限。但需要指出的是,市面上的大多数认证培训课程和参考书都以通过考试为导向,而并非侧重于教授管理Linux主机或网络的实用技能。这并不是说它们不够好,只是目标定位与本书有所不同。
本系列图书内容概览
《Linux权威指南:从小白到系统管理员 上册(原书第2版)》
《Linux权威指南:从小白到系统管理员 上册(原书第2版)》(简称“上册”)的前3章从整体上介绍操作系统(重点讲解Linux),简要探讨了系统管理员的Linux哲学,以便为其余部分的内容做准备。
第4章引导你使用VirtualBox创建虚拟机和虚拟网络,搭建贯穿全书的实验环境。第5章带你完成Xfce版Fedora的安装,这是一款深受欢迎的强力Linux发行版。第6章聚焦Xfce桌面操作,让你在加深对命令行界面(Command Line Interface,CLI)理解的同时,也能无缝衔接图形化界面。
第7、8章开启你的Linux命令行之旅,介绍常用命令和基本功能。第9章涉及数据流的概念以及相关的Linux操作工具。第10章简要介绍常用的文本编辑器,它们是资深Linux用户和系统管理员不可或缺的利器。你还将学习使用Vim编辑器来创建和修改Linux中大量用于配置和管理的ASCII纯文本文件。
第11~13章以系统管理员的角色进行实际操作,包括以root身份操作、安装软件更新或新软件包等具体任务。第14、15章侧重于各类终端模拟器和高级终端(shell)技巧的讲解。第16章剖析计算机启动和Linux开机时的一系列流程。第17章指导你进行终端的个性化配置,大幅提升命令行操作的效率。
最后,第18、19章带你深入探索文件和文件系统的方方面面。
《Linux权威指南:从小白到系统管理员 下册(原书第2版)》
《Linux权威指南:从小白到系统管理员:下册(原书第2版)》(简称“下册”)则聚焦于资深系统管理员的一系列进阶知识。
第1、2章围绕逻辑卷管理(Logical Volume Management,LVM)展开深入探讨,并讲解其原理。你还将学习如何通过文件管理器来进行文件和目录操作。第3章重点介绍“一切皆文件”的Linux核心概念,并通过生动有趣的示例展现其灵活的应用。
第4章聚焦于管理和监控处于运行状态的进程的工具。第5章侧重于/proc等特殊文件系统,它们无须重启就能对内核进行监控和调优。
第6章正式引出正则表达式这一强大工具,及其在命令行模式匹配方面的功能。第7章讲解如何通过命令行进行打印机和打印任务的管理。在第8章中,你将探索一系列工具来揭秘Linux系统硬件的底层信息。
第9、10章涉及命令行编程和管理任务自动化,由浅入深,循序渐进。第11章着重介绍Ansible,这个强大的工具能够大幅简化远程主机上的大规模自动化管理。第12章讲解如何配置定时任务,让系统在指定时间自动执行特定操作。
网络相关的内容从第13章开始,第14章专门讲解NetworkManager工具的强大功能。
第15章介绍B树文件系统(B-Tree Filesystem,BtrFS)及其特性,同时指出BtrFS在多数应用场景下不是最优选择的原因。
第16~18章围绕systemd展开。作为新一代启动工具,systemd同时还肩负着系统服务和工具管理的职责。
第19章深入讨论D-Bus和udev,并阐释Linux如何通过它们实现设备的即插即用(Plug and Play,PnP)管理。
第20章探讨传统Linux日志文件的使用,并学习配置logwatch工具以快速从海量日志中获取关键信息。
第21章介绍用户管理相关的任务,第22章介绍基本的防火墙管理操作。你将使用firewalld命令行工具为内部、外部等不同网络环境创建防火墙区域,并管理网络接口的分配。
《Linux权威指南:网络服务详解(原书第2版)》
在《Linux权威指南:网络服务详解(原书第2版)》(简称《网络服务详解》)中,你将在现有虚拟网络中再创建一个虚拟机作为服务器来完成后续的学习任务。它还将取代虚拟网络中虚拟路由器的一些功能。
第1章通过向新虚拟机添加第二块网络接口卡(Network Interface Card,NIC)来完成工作站到服务器的角色转换,实现防火墙和路由器的功能。同时,你还将把它的网络配置从动态主机配置协议(Dynamic Host Configuration Protocol,DHCP)切换为静态IP。这个过程需要你对两块NIC进行设置,一块连接到现有的虚拟路由器,从而连接外部网络,另一块连接包含原有虚拟机的内网。
第2章从客户端和服务器两方面深入讲解域名服务(Domain Name Service,DNS)的原理和配置。你将学习使用/etc/hosts文件进行简单的域名解析,接着搭建简易的缓存域名服务器,并最终把它升级为内网的主域名服务器。
在第3章中,你将通过修改内核参数和防火墙配置,把这台新服务器变为功能完备的路由器。
第4章围绕SSHD展开,实现Linux主机间的安全远程访问,同时还会提供一些远程命令执行的实用技巧,并教你创建一个简单的命令行程序来完成远程备份任务。
虽然安全性一直贯穿于过往的内容中,但第5章会覆盖额外的安全主题,包括物理硬件层面的安全以及深化主机防御,构建更安全的系统来抵御网络攻击。
在第6章中,你将学习使用易上手的开源工具进行备份的策略和方法,它们能轻松实现完整文件系统或单个文件的备份与恢复。
第7~9章带你安装和配置一款企业级的电子邮件服务器,让它具备识别与拦截垃圾邮件和恶意软件的能力。第10章聚焦Web服务器的搭建。第11章完成WordPress的部署,它是一款灵活而强大的内容管理系统。
第12章重温电子邮件的主题,带你使用Mailman来创建邮件列表。
第13章介绍远程桌面的访问方法,因为有的时候这是完成特定任务的唯一方式。
第14章从不同角度探讨软件包管理,指导你创建RPM(Red Hat Package Manager,红帽包管理器)格式的包来分发自定义的脚本和配置文件。第15章讲解如何向Linux和Windows主机共享文件。
最后,考虑到你一定会有“学完之后往哪走?”这样的疑问,第16章会为你指明方向,帮助你规划进一步的学习。
本系列图书的学习方式
本系列图书虽然主要为自学而设计,但也完全适用于课堂环境。同时,它还可以作为一套高效、实用的参考书。过去,我在独立开展Linux培训和咨询时所编写的大量课程资料对我自己日常的运维工作大有裨益。其中的实验环节成为完成许多任务的范本,更在后来衍生为自动化的基础。我在设计本套书时沿用了很多原始的实验,因为它们时至今日仍具有借鉴意义,能够为我当前的工作提供很好的参考。
你会发现,本套书中会涉及一些看似过时的软件,例如Sendmail、Procmail、BIND、Apache Web 服务器等。它们历久弥新,更准确地说,它们正是因为自身的成熟度与可靠性,才成为我维护自己的系统与服务器的首选,并最终被应用于本套书中。我相信在实验中使用的软件都具备独特的优势,能让你洞悉Linux系统及相关服务背后的原理。一旦掌握了精髓,迁移到其他同类软件就会变得轻而易举。况且,这些“前辈”级软件的上手难度远没有一些人想象的那么大。
本系列图书的读者对象
如果你的目标是成为精通Linux的高级用户甚至系统管理员,那么这套书就是为你而写的。多数系统管理员都有着旺盛的好奇心以及深入钻研Linux系统管理的内在驱动力。我们热衷于通过拆解和重组来探究事物的原理,乐于解决各种计算机问题。
当计算机硬件发生故障时,我们会刨根问底地探究系统反应,甚至可能保留主板、内存、硬盘等有缺陷的部件来用于测试。写这段话时,我的工作站旁就连接着一块故障硬盘,我将用它来复现一些即将在书中介绍的故障场景。
最重要的是,我们这么做完全出于乐趣,即使没有明确的职业需求,我们也会乐此不疲地钻研。对计算机硬件和Linux的浓厚兴趣促使我们收集各类软硬件,就像集邮爱好者或古董收藏家那样。计算机是我们的职业,更是不变的嗜好。正如人们钟情于船只、运动、旅行、钱币、邮票、火车以及其他千奇百怪的事物一样,我们—真正的系统管理员—将计算机视为自己的珍宝。但这绝不意味着我们的生活只有计算机。我喜欢旅行、阅读、参观博物馆、听音乐会,以及乘坐古老的火车,我的集邮册仍然在,静待我再次决定拾起它。
事实上,优秀的系统管理员(至少那些我认识的)都有着多面的兴趣爱好。我们涉猎广泛,而这一切皆源于对万事万物无穷无尽的好奇心。所以,如果你对Linux有着如饥似渴的求知欲,迫不及待想要探索,那么无论你的过往经验如何,这套书都非常适合你。
如果你缺乏了解Linux系统管理的强烈愿望,那么这套书就不适合你。如果你只想在别人已经配置好的Linux计算机上使用几款常用软件,那么这套书也与你无缘。如果你对华丽的图形界面背后所蕴藏的强大功能毫无兴趣,同样你也不必选择这套书。
为什么写作这套书
有人曾问我编写这套书的初衷。我的回答很简单:为了回馈Linux社区。在我的职业生涯中,我曾受惠于多位良师益友,他们传授给我宝贵的知识,而我希望能将这些知识连同自己的经验分享给大家。
这套书脱胎于我曾经设计和讲授的三门Linux课程的幻灯片和实验项目。基于一些原因,那些课已经停授了。但我仍然希望将自己的Linux管理经验与技巧尽可能地传承下去。我期待这套书能让我回馈社区,延续那份我曾有幸从导师那里获得的教诲与启迪。
关于Fedora版本
这套书的第1版是基于Fedora 29编写的,而目前Fedora已经发展到了第38版。在编写本套书的第2版时,我不仅扩充了内容,更吸纳了尽可能多的勘误。
如果有必要,我会更新书中需要与时俱进的图像,例如屏幕截图。尽管背景和其他视觉元素可能已随版本更新而变化,但在很多情况下早期版本Fedora的截图仍然适用,这类截图我会保留。
只有在关系到内容准确性和逻辑清晰度时,我才会用新版本的截图替换旧版。书中有些内容示例来自Fedora 29。如果你使用的是Fedora 37、Fedora 38或之后更高的版本,那么背景等外观元素可能会有所差异。