目录
主题 101:系统架构
1
101.1 确定和配置硬件设置
2
101.1 课程 1
3
介绍
3
设备激活
4
Linux 中的设备检查
4
信息文件和设备文件
11
存储设备
12
指导练习
14
探索性练习
15
摘要
16
指导练习的答案
17
探索性练习的答案
18
101.2 启动系统
19
101.2 课程 1
21
介绍
21
BIOS 或 UEFI
21
引导程序 如果您正在编写代码,请不要在每行代码前包含“line_number|”
23
系统初始化
25
初始化检查
26
指导练习
29
探索性练习
30
摘要
31
指导练习的答案
32
探索性练习的答案
33
101.3 更改运行级别 / 启动目标以及关闭或重启系统
34
101.3 课程 1
36
介绍
36
SysVinit
37
systemd
40
新兴企业
43
关机和重启
44
指导练习
46
探索性练习
47
摘要
48
指导练习的答案
49
探索性练习的答案
50
主题 102:LINUX 安装与软件包管理
51
102.1 设计硬盘布局
52
102.1 课程 1
53
介绍
53
挂载点
54
保持事物分离
55
Swap
57
LVM
58
指导练习
60
探索性练习
61
摘要
62
指导练习的答案
63
探索性练习的答案
64
102.2 安装引导管理器
65
102.2 课程 1
66
介绍
66
GRUB 传统版 vs. GRUB 2
67
引导加载程序在哪里
67
/boot 分区
68
GRUB 2
69
GRUB 传统
75
指导练习
80
探索性练习
81
摘要
82
指导练习的答案
83
探索性练习的答案
84
102.3 管理共享库
86
102.3 课程 1
87
介绍
87
共享库的概念
87
共享对象文件命名约定
88
共享库路径的配置
89
搜索特定可执行文件的依赖项
92
指导练习
94
探索性练习
95
摘要
96
指导练习的答案
98
探索性练习的答案
99
102.4 使用 Debian 包管理
100
102.4 课程 1
101
介绍
101
Debian 软件包工具(dpkg)
102
高级包工具 (apt)
106
指导练习
116
探索性练习
117
摘要
118
指导练习的答案
120
探索性练习的答案
121
102.5 使用 RPM 和 YUM 包管理
122
102.5 课程 1
123
介绍
123
RPM 包管理器(rpm)
124
黄色狗更新器修改版 (YUM)
129
DNF
134
Zypper
136
指导练习
143
探索性练习
144
摘要
145
指导练习的答案
146
探索性练习的答案
147
102.6 作为虚拟化客户机的 Linux
148
102.6 课程 1
149
介绍
149
虚拟化概述
149
虚拟机的类型
150
使用虚拟机模板
157
将虚拟机部署到云端
158
容器
161
指导练习
163
探索性练习
164
摘要
165
指导练习的答案
166
探索性练习的答案
167
主题 103:GNU 和 UNIX 命令
169
103.1 在命令行上工作
170
103.1 课程 1
172
介绍
172
获取系统信息
172
获取命令信息
173
使用您的命令历史记录
176
指导练习
177
探索性练习
178
摘要
179
指导练习的答案
180
探索性练习的答案
181
103.1 课程 2
182
介绍
182
查找您的环境变量
182
创建新的环境变量
183
删除环境变量
184
引用以转义特殊字符
185
指导练习
187
探索性练习
188
摘要
189
指导练习的答案
190
探索性练习的答案
191
103.2 使用过滤器处理文本流
192
103.2 课程 1
194
介绍
194
关于重定向和管道的快速回顾
194
处理文本流
196
指导练习
208
探索性练习
210
摘要
212
指导练习的答案
214
探索性练习的答案
219
103.3 执行基本文件管理
225
103.3 课程 1
227
介绍
227
操作文件
228
创建和删除目录
233
递归操作文件和目录
234
文件通配符和通配符
237
通配符的类型
238
指导练习
242
探索性练习
244
摘要
245
指导练习的答案
246
探索性练习的答案
248
103.3 课程 2
250
介绍
250
如何查找文件
250
归档文件
254
指导练习
260
探索性练习
261
摘要
262
指导练习的答案
263
探索性练习的答案
264
103.4 使用流、管道和重定向
266
103.4 课程 1
267
介绍
267
重定向
268
文档和字符串
271
指导练习
273
探索性练习
274
摘要
275
指导练习的答案
276
探索性练习的答案
277
103.4 课程 2
278
介绍
278
管道
278
命令替换
280
指导练习
283
探索性练习
284
摘要
285
指导练习的答案
286
探索性练习的答案
287
103.5 创建、监视和终止进程
288
103.5 课程 1
290
介绍
290
作业控制
290
过程监控
295
指导练习
306
探索性练习
308
摘要
310
指导练习的答案
312
探索性练习的答案
315
103.5 课程 2
318
介绍
318
终端复用器的特性
318
GNU Screen
319
tmux
326
指导练习
334
探索性练习
338
摘要
340
指导练习的答案
341
探索性练习的答案
345
103.6 修改进程执行优先级
347
103.6 课程 1
348
介绍
348
Linux 调度器
349
阅读优先级
349
处理友好性
351
指导练习
353
探索性练习
355
摘要
356
指导练习的答案
357
探索性练习的答案
359
103.7 使用正则表达式搜索文本文件
360
103.7 课程 1
361
介绍
361
括号表达式
362
量词
363
边界
364
分支和反向引用
365
使用正则表达式搜索
365
指导练习
367
探索性练习
368
摘要
369
指导练习的答案
370
探索性练习的答案
371
103.7 课程 2
372
介绍
372
模式查找器:grep
372
流编辑器:sed
376
结合 grep 和 sed
380
指导练习
383
探索性练习
384
摘要
386
指导练习的答案
387
探索性练习的答案
388
103.8 基本文件编辑
390
103.8 课程 1
391
介绍
391
插入模式
392
正常模式
392
冒号命令
395
替代编辑器
396
指导练习
398
探索性练习
399
摘要
400
指导练习的答案
401
探索性练习的答案
402
主题 104:设备、Linux 文件系统、文件系统层次标准
403
104.1 创建分区和文件系统
404
104.1 课程 1
405
介绍
405
理解 MBR 和 GPT
406
创建文件系统
413
使用 GNU Parted 管理分区
423
创建交换分区
430
指导练习
432
探索性练习
433
摘要
435
指导练习的答案
436
探索性练习的答案
437
104.2 维护文件系统的完整性
439
104.2 课程 1
440
介绍
440
检查磁盘使用情况
440
检查可用空间
443
维护 ext2、ext3 和 ext4 文件系统
447
指导练习
454
探索性练习
455
摘要
456
指导练习的答案
457
探索性练习的答案
459
104.3 控制文件系统的挂载和卸载
461
104.3 课程 1
462
介绍
462
挂载和卸载文件系统
462
在启动时挂载文件系统
466
使用 UUID 和标签
468
使用 Systemd 挂载磁盘
470
指导练习
474
探索性练习
475
摘要
476
指导练习的答案
477
探索性练习的答案
479
104.5 管理文件权限和所有权
481
104.5 课程 1
482
介绍
482
查询文件和目录的信息
482
关于目录
483
查看隐藏文件
484
理解文件类型
485
理解权限
485
修改文件权限
487
修改文件所有权
491
查询组
491
默认权限
492
特殊权限
494
指导练习
498
探索性练习
500
摘要
501
指导练习的答案
502
探索性练习的答案
505
104.6 创建和更改硬链接和符号链接
508
104.6 课程 1
509
介绍
509
理解链接
509
指导练习
514
探索性练习
515
摘要
518
指导练习的答案
519
探索性练习的答案
520
104.7 查找系统文件并将文件放置在正确的位置
524
104.7 课程 1
525
介绍
525
文件系统层次标准
525
查找文件
528
指导练习
537
探索性练习
538
摘要
539
指导练习的答案
540
探索性练习的答案
542
印记
544
主题 101:系统架构
LPIC-1 (101) (版本 5.0) |
版本:2023-09-04 | 许可协议:CC BY-NC-ND 4.0 | learning.lpi.org | 1
101.1 确定和配置硬件设置
参考 LPI 目标
LPIC-1 v5,考试 101,目标 101.1
重量
2
关键知识领域
• 启用和禁用集成外设。
• 区分各种类型的磁盘存储设备。
• 确定设备的硬件资源。
• 列出各种硬件信息的工具和实用程序(例如 lsusb、lspci 等)。
• 操作 USB 设备的工具和实用程序。
• 对 sysfs、udev 和 dbus 的概念理解。
使用的文件、术语和工具的部分列表
•
/ sys /
•
/ proc /
•
/ dev /
•
modprobe
•
lsmod
•
lspci
•
lsusb
LPIC-1 (101) (版本 5.0) | 主题 101: 系统架构
2 | learning.lpi.org | 许可协议:CC BY-NC-ND 4.0。 | 版本:2023-09-04
101.1 课程 1
证书:LPIC-1
版本:5.0
主题:101 系统架构
目标:101.1 确定和配置硬件
设置
课程:1 / 1
介绍
自电子计算的早期以来,商业和个人计算机制造商在其机器中集成了各种硬件部件,这些部件又需要操作系统的支持。从操作系统开发者的角度来看,这可能是压倒性的,除非行业建立了指令集和设备通信的标准。类似于操作系统为应用程序提供的标准化抽象层,这些标准使得编写和维护不依赖于特定硬件模型的操作系统变得更加容易。然而,集成的底层硬件的复杂性有时需要调整资源如何暴露给操作系统,以便它能够正确安装和运行。
这些调整中的一些甚至可以在没有安装操作系统的情况下进行。大多数机器提供了一个可以在机器开机时执行的配置工具。直到 2000 年代中期,配置工具是在 BIOS(基本输入/输出系统)中实现的,这是包含 x86 主板中基本配置例程的固件标准。从 2000 年代第一个十年的末期开始,基于 x86 架构的机器开始用一种称为 UEFI(统一可扩展固件接口)的新实现替代 BIOS。
LPIC-1 (101) (版本 5.0) | 101.1 确定和配置硬件设置
版本:2023-09-04 | 许可协议:CC BY-NC-ND 4.0。 | learning.lpi.org | 3
具有更复杂的识别、测试、配置和固件升级功能。尽管发生了变化,但仍然称配置工具为 BIOS 并不罕见,因为这两种实现都满足相同的基本目的。
NOTE
关于 BIOS 和 UEFI 之间的相似性和差异的更多细节将在后面的课程中介绍。
设备激活
系统配置工具在计算机开机时按下特定键后显示。按下哪个键因制造商而异,但通常是或某个功能键,例如或。使用的键组合通常在开机画面中显示。
在 BIOS 设置实用程序中,可以启用和禁用集成外设,激活基本错误保护,并更改硬件设置,如 IRQ(中断请求)和 DMA(直接内存访问)。在现代机器上,通常不需要更改这些设置,但可能需要进行调整以解决特定问题。例如,有些 RAM 技术与比默认值更快的数据传输速率兼容,因此建议将其更改为制造商指定的值。一些 CPU 提供的功能可能对于特定安装并不需要,可以被禁用。禁用的功能将减少功耗,并可以增加系统保护,因为包含已知错误的 CPU 功能也可以被禁用。
如果机器配备了多个存储设备,重要的是要定义哪个设备具有正确的引导加载程序,并应作为设备启动顺序中的第一个条目。如果不正确的设备在 BIOS 启动验证列表中排在第一位,操作系统可能无法加载。
Linux 中的设备检查
一旦设备被正确识别,操作系统就需要关联所需的相应软件组件。当硬件功能未按预期工作时,确定问题发生的具体位置非常重要。当操作系统未检测到某个硬件时,该部件或其连接的端口很可能是有缺陷的。当硬件部件被正确检测到,但仍然无法正常工作时,可能是操作系统方面的问题。因此,处理与硬件相关的问题时,第一步是检查操作系统是否正确检测到设备。在 Linux 系统上识别硬件资源有两种基本方法:使用专门的命令或读取特殊文件系统中的特定文件。
LPIC-1 (101) (版本 5.0) | 主题 101: 系统架构
4 | learning.lpi.org | 许可协议:CC BY-NC-ND 4.0 | 版本:2023-09-04
101.2 启动系统
参考 LPI 目标
LPIC-1 v5,考试 101,目标 101.2
重量
3
关键知识领域
• 在启动时向引导加载程序提供常见命令和向内核提供选项。
• 演示从 BIOS/UEFI 到启动完成的启动序列知识。
• 理解 SysVinit 和 systemd。
• 对 Upstart 的认识。
• 检查日志文件中的启动事件。
使用的文件、术语和工具的部分列表
•
dmesg
•
journalctl
• BIOS
• UEFI
• 引导加载程序
• 内核
•
initramfs
•
init
• SysVinit
LPIC-1 (101) (版本 5.0) | 101.2 启动系统
版本:2023-09-04 | 许可协议:CC BY-NC-ND 4.0 | learning.lpi.org | 19
探索性练习
作为系统管理员,需要定期检查以删除大量文件。这些大量文件位于 /var 中,并以 .backup 扩展名结尾。
◦ 使用 find 命令定位这些文件:
对这些文件大小的分析表明,它们的范围从 100M 到 1000M。使用此新信息完成之前的命令,以便您可以找到范围在 100M 到 1000M 之间的备份文件:
最后,完成此命令,执行删除操作,以便这些文件将被移除:
在 /var 目录中,存在四个备份文件:db-jan-2018.backup
db-feb-2018.backup db-march-2018.backup db-apr-2018.backup
使用 tar,指定创建名为 db-first- 的归档文件的命令
季度-2018.备份.tar:
使用 tar,指定创建归档并使用 gzip 压缩的命令。
请注意,生成的文件名应以 .gz 结尾:
LPIC-1 (101) (版本 5.0) | 103.3 执行基本文件管理
版本:2023-09-04 | 许可协议:CC BY-NC-ND 4.0 | learning.lpi.org | 261
%CPU
CPU 使用百分比。
%MEM
物理内存使用百分比。
VSZ
进程的虚拟内存(以 KiB 为单位)。
RSS
进程使用的非交换物理内存(以 KiB 为单位)。
TT
终端 (tty) 控制进程。
STAT
表示进程状态的代码。除了 S、R 和 Z(我们在描述 top 的输出时看到的),其他可能的值包括:D(不可中断的睡眠 — 通常等待 I/O)、T(停止 — 通常由控制信号引起)。一些额外的修饰符包括:<(高优先级 — 对其他进程不友好)、N(低优先级 — 对其他进程友好)或 +(在前台进程组中)。
开始
进程开始的时间。
TIME
累计 CPU 时间。
命令
启动该进程的命令。
LPIC-1 (101) (版本 5.0) | 103.5 创建、监控和终止进程
版本:2023-09-04 | 许可协议:CC BY-NC-ND 4.0 | learning.lpi.org | 305
$ screen -ls
在以下屏幕上:
1090.第二次会话 (08/24/19 14:38:35) (附加) 1037.pts-0.debian (08/24/19 13:53:36) (附加) 在 /run/screen/S-carol 中有 2 个套接字。
要结束一个会话,请退出其所有窗口,或直接输入命令 screen -S SESSION-PID -X quit(您也可以提供会话名称)。让我们结束我们的第一个会话:
$ screen -S 1037 -X quit
您将被送回到屏幕外的终端提示符。但请记住,我们的第二个会话仍然处于活动状态:
$ screen -ls
在以下屏幕上:
1090.第二会话 (08/24/19 14:38:35) (分离) 1 个套接字在 /run/screen/S-carol。
然而,由于我们终止了其父会话,它被赋予了一个新标签:分离。
会话分离
出于多种原因,您可能希望将屏幕会话从其终端中分离:
• 让你在工作时的电脑完成其任务,并在家中远程连接。
• 与其他用户共享会话。
您可以使用键组合 + - 来分离会话。您将返回到终端:
[从 1090.第二会话中分离] $
要重新连接到会话,您可以使用命令 screen -r SESSION-PID。或者,您可以使用上面看到的 SESSION-NAME。如果只有一个分离的会话,则两者都不是强制的:
$ screen -r
LPIC-1 (101) (版本 5.0) | 103.5 创建、监控和终止进程
版本:2023-09-04 | 许可协议:CC BY-NC-ND 4.0 | learning.lpi.org | 323
$
[LPI] 0:窗口零- 1:窗口一* "debian" 19:05 27Aug-19
要垂直分割,请使用 + - :
│$
1 root 20 0 139088 6988 5264 S 0.0 0.2 0:00.50 systemd │ │ 2 root 20 0 0 0 0 S 0.0 0.0 0:00.00 kthreadd │ │
3 root 20 0 0 0 0 S 0.0 0.0 0:00.04 ksoftirqd/0 │
4 root 20 0 0 0 0 S 0.0 0.0 0:01.62 kworker/0:0 │
5 root 0 -20 0 0 0 S 0.0 0.0 0:00.00 kworker/0:0H│
7 root 20 0 0 0 0 S 0.0 0.0 0:00.06 rcu_sched │
8 root 20 0 0 0 0 S 0.0 0.0 0:00.00 rcu_bh │
9 root rt 0 0 0 0 S 0.0 0.0 0:00.00 migration/0 │ │ 10 root 0 -20 0 0 0 S 0.0 0.0 0:00.00 lru-add-drai│ n │ 11 root rt 0 0 0 0 S 0.0 0.0 0:00.01 watchdog/0 │ │ 12 root 20 0 0 0 0 S 0.0 0.0 0:00.00 cpuhp/0 │ │ $ │
──────────────────────────────────────────────────────────────────────────────────────┴──────────── ───
$
LPIC-1 (101) (版本 5.0) | 103.5 创建、监控和终止进程
版本:2023-09-04 | 许可协议:CC BY-NC-ND 4.0 | learning.lpi.org | 329
[LPI] 0:窗口零- 1:窗口一* "debian" 19:05 27Aug-19
要销毁当前面板(连同其内部运行的伪终端以及任何相关程序),请使用 + - 。系统会在状态栏上询问您确认:
杀死面板 1?(y/n)
重要的窗格命令:
Ctrl
+ - , , ,
在窗格之间移动。
Ctrl
+ -
移动到最后一个活动窗格。
Ctrl
+ - +
调整窗格大小为一行。
Ctrl
+ - +
调整窗格大小五行。
Ctrl
+ -
交换窗格(当前到上一个)。
Ctrl
+ -
交换窗格(当前到下一个)。
LPIC-1 (101) (版本 5.0) | 主题 103:GNU 和 Unix 命令
330 | learning.lpi.org | 许可协议:CC BY-NC-ND 4.0 | 版本:2023-09-04
Ctrl
+ -
缩放面板。
Ctrl
+ -
tmux 在窗格内显示一个花哨的时钟(按 q 结束它)。
Ctrl
+ -
将面板转换为窗口。
要查看完整的命令列表,请查阅手册页。
会话
要在 tmux 中列出会话,可以使用 + - :
(0) + LPI: 2 个窗口(附加)
另外,您可以使用 tmux ls 命令:
$ tmux ls
LPI: 2 窗口(创建于 2019 年 8 月 27 日 19:01:49)[158x39](附加)
只有一个会话(LPI),其中包含两个窗口。让我们从当前会话中创建一个新会话。这可以通过使用 +,在提示符下输入 :new,然后按 Enter 来实现。您将被发送到新会话,可以在状态栏上观察到:
[2] 0:bash* "debian" 19:15 27-八月-19
默认情况下,tmux 将会话命名为 2。要重命名,请使用 + - 。当提示时,提供新名称并按 Enter 键:
(重命名会话) 第二会话
您可以使用 + - 切换会话(使用箭头键和):
(0) + LPI: 2 窗口 (1) + 第二会话: 1 窗口 (附加)
LPIC-1 (101) (版本 5.0) | 103.5 创建、监控和终止进程
版本:2023-09-04 | 许可协议:CC BY-NC-ND 4.0。 | learning.lpi.org | 331
要终止一个会话,可以使用命令 tmux kill-session -t SESSION-NAME。如果您在当前已连接的会话中输入该命令,您将被退出 tmux 并返回到初始终端会话:
$ tmux kill-session -t "第二个会话"
[退出] $
会话分离
通过结束第二个会话,我们被抛出了 tmux。然而,我们仍然有一个活动会话。询问 tmux 会话列表,你肯定会在那里找到它:
$ tmux ls
LPI: 2 窗口(创建于 2019 年 8 月 27 日 19:01:49)[158x39]
然而,此会话与其终端已分离。我们可以使用 tmux attach -t SESSION-NAME 进行连接(attach 可以替换为 at 或 — 简单地 — a)。当只有一个会话时,名称规范是可选的:
$ tmux a
您现在已回到您的会话;要从中分离,请按 + - :
[分离(来自会话 LPI)] $
TIP
同一个会话可以附加到多个终端。如果您想附加一个会话并确保它首先从其他终端分离,请使用 -d 选项:tmux attach -d -t SESSION-NAME。
重要的会话附加/分离命令:
Ctrl
+ -
选择要分离的客户端。
Ctrl
+ -
刷新客户端的终端。
LPIC-1 (101) (版本 5.0) | 主题 103:GNU 和 Unix 命令
332 | learning.lpi.org | 许可协议:CC BY-NC-ND 4.0 | 版本:2023-09-04
要查看完整的命令列表,请查阅手册页。
复制和粘贴:滚动模式
tmux 还具有与 screen 基本相同的复制模式(记得使用 tmux 的命令前缀,而不是 screen 的!)。唯一的区别是,在命令上,你使用 + 空格来标记选择的开始,使用 + 来复制选定的文本。
tmux 的自定义设置
tmux 的配置文件通常位于 /etc/tmux.conf 和 ~/.tmux.conf。当启动 tmux 时,如果这些文件存在,tmux 会加载它们。还可以使用 -f 选项启动 tmux,以提供备用配置文件。您可以在 /usr/share/doc/tmux/example_tmux.conf 找到一个 tmux 配置文件示例。您可以实现的自定义级别非常高。您可以做的一些事情包括:
• 更改前缀键 # 将前缀键更改为 C-a
设置 -g 前缀 C-a 解绑 C-b 绑定 C-a 发送前缀
• 为编号大于 9 的窗口设置额外的键绑定 # 一些额外的键绑定用于选择编号较高的窗口
绑定 F1 选择窗口 -t:10 绑定 F2 选择窗口 -t:11 绑定 F3 选择窗口 -t:12
要获取所有绑定的完整列表,请输入 + - (按 q 退出)或查阅手册页。
LPIC-1 (101) (版本 5.0) | 103.5 创建、监控和终止进程
版本:2023-09-04 | 许可协议:CC BY-NC-ND 4.0 | learning.lpi.org | 333
指导练习
1. 指出以下陈述/特性是否对应于 GNU Screen、tmux 或两者:特性/陈述 GNU Screen tmux
默认命令前缀是
Ctrl
+
客户端-服务器模型
窗格是伪终端
杀死一个区域并不会杀死其关联的窗口
会话包括窗口
会话可以被分离
在您的计算机上安装 GNU Screen(软件包名称:screen),并完成以下操作。
任务:
◦ 启动程序。你使用什么命令?
◦ 开始顶部:
◦ 使用 screen 的键前缀,打开一个新窗口;然后,使用 vi 打开 /etc/screenrc:
◦ 在屏幕底部列出窗口:
将当前窗口的名称更改为 vi:
◦ 将剩余窗口的名称更改为顶部。为此,首先显示所有窗口的列表,以便您可以上下移动并选择正确的窗口:
◦ 通过在底部显示窗口名称来检查名称是否已更改
LPIC-1 (101) (版本 5.0) | 主题 103:GNU 和 Unix 命令
334 | learning.lpi.org | 许可协议:CC BY-NC-ND 4.0 | 版本:2023-09-04