内容简介
本书聚焦于资深Linux系统管理员必备的一系列进阶知识,揭示Linux运行和编程的深层逻辑,覆盖逻辑卷管理、进程管理和监控、特殊文件系统、正则表达式、通过命令行打印、编程和管理任务自动化、利用Ansible简化远程主机上的大规模自动化管理、配置定时任务、NetworkManager的功能、B树文件系统及其特性、systemd相关知识、利用D-Bus和udev实现设备的即插即用管理、传统Linux日志文件的使用、用户管理以及基本的防火墙管理操作等,帮助读者成为Linux系统管理员。
目录
目 录
译者序
前 言
致 谢
作者简介
第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
前言/序言
前 言
本系列图书在结构上与其他书籍大不一样。整个系列共分为三本,分别为《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系统管理员。