磁盘管理模块二 · 专题一
Linux 智能运维与管理 · 2026—2027 学年第一学期

磁盘 管理

模块二 · 专题一 —— 从空间监控到软件包管理,建立系统管理基础。
6 次课 · 12 学时 · 理实一体,每次课一个综合作业覆盖全部知识点。

第 9—14 次课 任课教师:张娜
df -h ~ mkfs.ext4 edquota -u yum install
student@centos7: ~ — 终端
# 本专题你将学会 $ df -h / /dev/sda1 50G 44G 3.4G 93% / $ du -sh /var/log 4.3G /var/log $ mkfs.ext4 /dev/sdb1 Creating filesystem with 2621440 4k blocks $ yum install -y httpd Complete!
模块二 · 专题一|专题地图

本专题地图 · 6 次课 12 学时Course Map

从空间监控到软件包管理,建立系统管理基础 —— 每次课都有明确的关键点、操作演示,以及一个覆盖全部知识点的综合作业。

6 次课 · 12 学时 6 个综合作业 5 项实训任务 6 个思考题 每步均有验证要求
01

磁盘空间监控

第 9 次课2 学时
df -h查看文件系统整体空间
du -sh查看目录实际占用
du --max-depth=1控制下钻层数
sort -hr按使用率排序
find -size定位大文件
lsof +L1查已删除仍占用文件

教学目标识别磁盘与文件系统,使用 df、du 分析空间并提出存储规划建议。

重点 磁盘空间与目录占用分析
难点 区分文件系统剩余空间和目录占用

关键点 · 空间诊断 作业 磁盘空间诊断报告(df / du / find / lsof)
02

分区与格式化

第 10 次课2 学时
fdisk -l列出磁盘与分区
fdisk /dev/sdb交互式分区(MBR)
mkfs.ext4创建 ext4 文件系统
mount / umount挂载与卸载分区
mount -a按 fstab 测试挂载
/etc/fstab开机自动挂载表

教学目标完成虚拟磁盘分区、格式化、挂载及自动挂载配置,并验证结果。

重点 分区、文件系统和挂载流程
难点 操作顺序、设备名确认和持久化配置

关键点 · 分区挂载 作业 新磁盘分区、格式化、挂载与 fstab 持久化
03

磁盘配额

第 11 次课2 学时
quotacheck -cugm初始化配额数据库
quotaon -ug在挂载点启用配额
edquota -u编辑用户配额
repquota -av报告配额使用情况
quota -u查看自身配额
xfs_quotaXFS 专用配额工具

教学目标配置用户磁盘配额,观察超限行为并记录验证证据。

重点 配额参数、启用流程和监控
难点 配额限制与实际写入结果的对应

关键点 · 限额控制 作业 配额配置 + soft/hard 双限超限验证
04

Vim 编辑器

第 12 次课2 学时
i / Esc进入 / 退出插入模式
:wq / ZZ保存退出
dd / yy / p删除行 / 复制行 / 粘贴
u / Ctrl+r撤销与恢复
gg / G / 0 / $光标移动四件套
/关键字 n N向下搜索与跳转

教学目标在 Vim 中完成模式切换、文本编辑和配置文件修改,并验证系统响应。

重点 三种模式及常用编辑命令
难点 模式化编辑思维和误操作恢复

关键点 · 精准编辑 作业 Vim 练习 + 修改 /etc/hosts 与 /etc/fstab
05

RPM 软件包

第 13 次课2 学时
rpm -ivh安装本地 .rpm 包
rpm -qa查询所有已安装包
rpm -ql / -qi列包内文件 / 包信息
rpm -V校验文件是否被篡改
rpm -e卸载软件包
依赖关系RPM 需手动解决

教学目标使用 RPM 完成软件包安装、查询、校验与卸载,识别依赖和来源信息。

重点 RPM 基本命令和软件包生命周期
难点 依赖关系、版本和来源可信性

关键点 · 来源可信 作业 安装 · 查询 · 校验 · 卸载四步闭环
06

YUM/DNF 仓库

第 14 次课2 学时
/etc/yum.repos.d/仓库配置文件目录
yum repolist确认仓库配置生效
yum install / remove安装与卸载(自动依赖)
yum list installed盘点软件资产
yum clean all清理缓存释放空间
dnfCentOS 8+ 继任者,命令兼容

教学目标配置软件仓库,使用 YUM/DNF 维护软件,并综合检查磁盘空间。

重点 仓库、依赖和软件维护流程
难点 仓库配置与空间清理的联动

关键点 · 生态维护 作业 配仓库装 httpd + 安装前后空间检查
学习路径 第 9 次课空间监控 · 先看整体再下钻▶ 第 10 次课分区挂载 · 设备名确认是底线▶ 第 11 次课磁盘配额 · soft / hard 双限▶ 第 12 次课Vim 编辑 · 三种模式改配置▶ 第 13—14 次课软件包 · 从本地 RPM 到仓库自动依赖
01

磁盘空间监控

Space Monitoring
第 9 次课2 学时理实一体
重点磁盘空间与目录占用分析:df 看分区、du 看目录,先采集证据再提出规划建议
难点区分文件系统剩余空间和目录占用——两者统计对象不同,数值不可直接对比

核心方法:空间诊断四步法——df 整体概览 → du 目录下钻 → find 文件定位 → lsof 清理复测;每一步都以命令输出为证据,先采集数据,再完成分析。

教学目标
01存储四层链 说清「磁盘 → 分区 → 文件系统 → 挂载点」的关系,看懂 df 输出每一列的含义。Mounted on = 挂载点
02空间分析 用 df -h 看分区级、du -sh / --max-depth=1 看目录级,组合 sort / find 定位大文件与大目录。df 分区级 · du 目录级
03诊断报告 按四步法完成本机空间诊断,提出至少一条可执行的规划建议,并留下命令输出证据。先采集证据再提建议
思考题:df 和 du 的统计对象有何不同? 作业:磁盘空间诊断报告(7 步,每步含验证)
核心概念|存储四层链

磁盘 → 分区 → 文件系统 → 挂载点

难点提示:Windows 是「C 盘 D 盘」多根思维,Linux 只有一棵目录树——分区必须「挂载」到某个目录才可使用。

D磁盘 Disk

实际存储设备,系统识别的名字。

/dev/sda · /dev/vdb
NVMe SSD

P分区 Partition

把一块磁盘逻辑切分为多块,各自独立使用。

/dev/sda1 · /dev/sdb2

F文件系统 Filesystem

格式化后才有的「账本」,决定怎么存文件和目录。

ext4 · xfs · vfat

M挂载点 Mount

分区接入目录树的入口,本质是一个目录。

/ · /home · /data · /mnt

关键认知:没有挂载的分区,在 df 输出里完全看不到;df 的 Mounted on 列就是「哪个目录在用这块分区的空间」。VMware 里新加的磁盘,不分区、不格式化、不挂载,系统根本不知道怎么用。
命令速查表|df 与 du

空间监控命令

命令功能示例提示
df -h查看文件系统整体空间df -h看磁盘 / 分区级别占用;-h 以 K/M/G 显示;Mounted on 列即挂载点
df -h /只看指定挂载点df -h /定位「根分区为什么满了」时先用它
du -sh汇总目录实际占用du -sh /var/log-s 汇总、-h 易读;常用于定位大目录
du --max-depth=1控制下钻层数du -h --max-depth=1 /data数字 = 往下看几层;1 即只看一级子目录
sort -hr按数值倒序排列du -sh /var/* 2>/dev/null | sort -hr配合 du 找出最占空间的目录;2>/dev/null 吞掉无权限报错
find -size按大小定位文件find /var/log -type f -size +100M+100M = 大于 100M;定位大文件再决定清理
student@centos7: ~
# df:文件系统级别(整块分区) $ df -h Filesystem Size Used Avail Use% Mounted on /dev/sda1 50G 44G 3.4G 93% / tmpfs 3.9G 0 3.9G 0% /run # du:目录级别(逐个目录累加) $ du -sh /var/log /home 4.3G /var/log 2.1G /home $ du -h --max-depth=1 /data 1.2G /data/alice 880M /data/bob
df 输出五列
  • Size 分区总容量
  • Used 已用(含已删除被占用)
  • Avail 真正还能用的
  • Use% 使用率,排序找「最紧张」的分区
  • Mounted on 挂载点(目录树入口)
关键区分:df 看分区空间,du 看目录空间。两者数值对不上是正常的——差异常来自已删除但仍被进程占用的文件:df 仍算已用,du 已看不到。用 lsof +L1 找出并处理。
操作演示|空间分析四步法

四步定位「磁盘到底被谁占满了」

STEP 1
整体概览

df -h | sort -k5 -hr

按使用率排序,找出最紧张的挂载点。

STEP 2
目录下钻

du -sh /var/* 2>/dev/null | sort -hr | head

找出占用最大的子目录。

STEP 3
文件定位

find /var/log -type f -size +100M

定位超过 100M 的大文件。

STEP 4
清理与复测

lsof +L1

检查已删除但仍被占用的文件,重启服务或清空日志。

四步法 · 完整走一遍
# 步骤 1 · 整体概览:谁的使用率最高 $ df -h | sort -k5 -hr Filesystem Size Used Avail Use% Mounted on /dev/sda1 50G 44G 3.4G 93% / tmpfs 3.9G 0 3.9G 0% /run # 步骤 2 · 目录下钻:/var 下谁最大 $ du -sh /var/* 2>/dev/null | sort -hr | head 4.3G /var/log 1.2G /var/cache 312M /var/lib # 步骤 3 · 文件定位:超过 100M 的大文件 $ find /var/log -type f -size +100M /var/log/messages.1 # 步骤 4 · 清理与复测:已删除但仍被占用 $ lsof +L1 COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME nginx 1234 root 5w REG 8,1 1.2G 17 /var/log/nginx/access.log (deleted)
验证清单
  • df -h 的 Use% 能指出最紧张的分区
  • du 输出按体积从大到小排列
  • find 找到的文件用 ls -lh 复核确认为大文件
  • lsof +L1 有输出 = 有已删除文件仍占空间
复盘要点
  • 顺序不能乱:先分区、再目录、后文件,范围逐层缩小
  • 2>/dev/null 只吞错误输出,不影响正确结果
  • 删除大文件后空间不释放,先想「还被谁占着」
课后作业磁盘空间诊断报告约 20 分钟 · 覆盖本课 6 个知识点 · 每步均有验证
  1. 建立个人工作区:进入 ~/stu序号_姓名拼音(没有就先创建),执行 pwd 确认。验证:提示符路径与 pwd 输出均包含 stu序号_姓名拼音。
  2. df 分区级概览:执行 df -h,找出 Use% 最高的挂载点,把整行抄入报告。验证:抄写的 Mounted on 与 df 输出一致,Use% 数值无误。
  3. du 目录级下钻:执行 du -sh /var/* 2>/dev/null | sort -hr | head -5,找出 /var 下最占空间的 5 个目录。验证:输出按体积从大到小排列;任选一个目录用 ls -lh 抽查文件真实存在。
  4. 控制下钻层数:执行 du -h --max-depth=1 /var/log,对比不加该参数时的输出。验证:能说出 --max-depth=1 列出的是「一级子目录汇总」,行数比不带参数少得多。
  5. find 定位大文件:执行 find /var/log -type f -size +10M。验证:对找到的任一文件执行 ls -lh,大小确为 10M 以上。
  6. df 与 du 对比:分别执行 df -h / 与 du -sh /var,记录两个数值并解释差异来源。验证:报告写明「df 看分区、du 看目录」,并说出差异可能来自已删除但仍被进程占用的文件;用 lsof +L1 查看此类文件作为佐证。
  7. 输出诊断报告:echo "姓名:xxx 序号:N" > diskN.txt,再把第 2—6 步结果逐条 >> 追加进去。验证:cat diskN.txt 第一行含姓名与序号,后续各行与终端输出一致。
截图上传:终端同屏能看到①含 stu序号_姓名拼音 的提示符路径 ②df -h 与 du 的对比输出 ③cat diskN.txt 的报告内容(第一行姓名+序号)。上传到本专题第 9 次课对应作业。
02

分区与格式化

Partition & Mount
第 10 次课2 学时理实一体
重点分区、文件系统和挂载流程:规划 → 分区 → 格式化 → 挂载 → 持久化
难点操作顺序、设备名确认和持久化配置——顺序错一步,后面全部白做

核心方法:先核对设备清单并备份配置,再按「分区 → 格式化 → 挂载 → 写 fstab」顺序操作,最后用 mount -a 复测;设备名核对是每次动手前的底线。

教学目标
01分区选型 说出 MBR 的特点与限制,会用 fdisk -l 查看磁盘和分区现状。≤2TB · 最多 4 个主分区
02完整流程 完成虚拟磁盘的分区、格式化、挂载,并写入 /etc/fstab 实现开机自动挂载。五步一步不乱
03结果验证 用 df -h / mount | grep 验证挂载生效,用 mount -a 验证 fstab 持久化。卸载后能自动挂回才算成功
思考题:为什么格式化前必须确认设备名? 作业:新磁盘分区、格式化、挂载与 fstab 持久化(8 步)
核心概念|MBR 与分区流程

MBR 与 fdisk · 五步流程

MMBR

传统主引导记录,装在磁盘最前面,记录分区表。

≤2TB
4 主分区 或 3 主 + 1 扩展

ffdisk

Linux 经典分区工具,交互式操作,MBR 简单分区首选。

fdisk /dev/sdb
n → p → w

→流程

先用 fdisk 分区,再 mkfs 创建文件系统,最后 mount 挂载使用。

规划 → 分区 → 格式化
→ 挂载 → 写 fstab

选型提示:MBR 兼容性好、老系统常见,但受 2TB 限制;超过 2TB 或要 4 个以上主分区时用 GPT(parted / gdisk)。修改 /etc/fstab 可实现开机自动挂载,但配置错误会导致启动失败——改前必须备份。
命令速查表|分区 · 格式化 · 挂载

分区挂载命令

命令功能示例提示
fdisk -l列出所有磁盘与分区fdisk -l先看全貌,确认新磁盘的设备名
fdisk交互式分区工具fdisk /dev/sdb经典 MBR 分区工具;q 退出不保存,w 写入
mkfs.ext4创建 ext4 文件系统mkfs.ext4 /dev/sdb1格式化会清空分区数据,动手前核对设备名
mkfs.xfs创建 xfs 文件系统mkfs.xfs /dev/sdb1适合大文件 / 高并发场景(配额用法不同,见第 11 次课)
mount临时挂载分区mount /dev/sdb1 /data重启后失效;挂载点目录需先存在
umount卸载分区umount /data卸载前确认无进程占用(先 cd 离开该目录)
/etc/fstab开机自动挂载表/dev/sdb1 /data ext4 defaults 0 0六字段:设备 · 挂载点 · 类型 · 选项 · dump · pass;写错会启动失败
安全铁律:mkfs 与 fdisk 都是「对设备直接下手」的操作。每次动手前执行 fdisk -l 核对设备名与容量——把 /dev/sdb 看成 /dev/sda,格式化的就是系统盘,虚拟机直接无法启动。
操作演示|虚拟磁盘分区、格式化与挂载

从一块新磁盘到可用挂载点

student@centos7: ~
# 步骤 1 · 确认新磁盘设备名(务必核对容量) $ fdisk -l | grep -E "^Disk /dev/(sd|vd)" Disk /dev/sda: 53.7 GB, 53687091200 bytes Disk /dev/sdb: 10.7 GB, 10737418240 bytes ← 新加的虚拟磁盘 # 步骤 2 · fdisk 交互分区 $ fdisk /dev/sdb n # 新建分区(new) p # 主分区(primary,默认) 1 # 分区号(默认1) 2048 # 起始扇区(默认对齐) +10G # 分区大小(结束位置) w # 写入并退出(write) # 步骤 3 · 格式化(会清空分区数据) $ mkfs.ext4 /dev/sdb1 Allocating group tables: done Writing inode tables: done Creating journal (4096 blocks): done # 步骤 4 · 建挂载点并挂载 $ mkdir /data $ mount /dev/sdb1 /data # 步骤 5 · 写入 fstab 实现开机自动挂载 $ echo '/dev/sdb1 /data ext4 defaults 0 0' >> /etc/fstab
验证清单
  • fdisk -l /dev/sdb 出现 /dev/sdb1,容量 10G
  • df -h /data 显示约 10G 的 ext4 空间
  • mount | grep /data 显示已挂载信息
  • tail -2 /etc/fstab 看到新增行
  • cd ~ && umount /data && mount -a 后 df -h /data 仍在 = 持久化成功
复盘要点
  • fdisk 里 q 退出不保存、w 才写入——分错了用 q 重来
  • 挂载点目录必须先 mkdir,否则 mount 报错
  • mount -a = 按 fstab 挂载所有未挂载项,是验证 fstab 的免重启方法
  • umount 前先 cd ~ 离开挂载点,否则提示 target is busy
警示提示|设备名核对

为什么格式化前必须确认设备名

本课思考题。mkfs 会清空目标设备上的全部数据且不可恢复——设备名错一位,格式化的就是系统盘。

典型事故
  • 把 /dev/sdb1 打成 /dev/sda,整块系统盘被格式化
  • 虚拟机磁盘热插拔后设备名漂移,脚本里写死的旧名字指向了错误设备
  • fstab 写错字段或设备名,开机进入紧急模式,VM 里修复极其麻烦
底线:对设备下手前,先 fdisk -l 核对「容量吻合 + 当前未挂载 + 确实是新盘」,三者缺一不可。
三条防护做法
  1. 先列后做 fdisk -l 看全貌,用手指指着屏幕核对设备名与容量。
  2. 改前备份 动 /etc/fstab 前先 cp /etc/fstab /etc/fstab.bak,写错可回滚。
  3. 分步验证 每完成一步(分区 / 格式化 / 挂载)立即用 df / mount 验证,不带病进入下一步。
补救差距:fstab 写错最多进紧急模式,还能进救援修复;mkfs 错设备没有任何补救机会——所以核对设备名永远排在动手第一步。
课后作业新磁盘分区、格式化、挂载与持久化约 25 分钟 · 覆盖本课 7 个知识点 · 每步均有验证
  1. 确认设备名:执行 fdisk -l,从输出中指出新加虚拟磁盘的设备名(如 /dev/sdb)与容量,记入报告。验证:设备名容量与 VMware 里添加的磁盘一致;此后所有操作只对该设备名生效——误碰 /dev/sda 会清空系统盘。
  2. 预建挂载点:执行 mkdir -p /data/stu序号_姓名拼音。验证:ls -ld /data/stu序号_姓名拼音 显示目录已创建(此时 /data 尚未挂载,目录建在系统盘上,挂载后被新分区「盖住」,属正常现象)。
  3. fdisk 交互分区:fdisk /dev/sdb,依次 n → p → 1 → 回车(默认起始扇区)→ +10G → w。验证:fdisk -l /dev/sdb 出现 /dev/sdb1、容量 10G;分错了用 q 退出不保存,重新来。
  4. mkfs 格式化:mkfs.ext4 /dev/sdb1。验证:输出末尾显示文件系统创建成功(Writing inode tables: done 等);在报告中抄下警告行「格式化会清空分区全部数据」。
  5. mount 挂载:mount /dev/sdb1 /data。验证:df -h /data 显示约 10G 的 ext4 空间;mount | grep /data 显示挂载信息。
  6. 个人化测试文件:dd if=/dev/zero of=/data/stu序号_姓名拼音/testN.img bs=1M count=N(N=你的序号)。验证:ls -lh 显示文件大小约 N MB——每人大小不同,这就是截图里的身份标记。
  7. fstab 持久化:echo '/dev/sdb1 /data ext4 defaults 0 0' >> /etc/fstab。验证:tail -2 /etc/fstab 看到该行;cd ~ && umount /data 后执行 mount -a,再用 df -h /data 确认自动重新挂载成功(重启不丢失)。
  8. 复盘四步链:在报告中画出「磁盘 → 分区 → 文件系统 → 挂载点」四步链,标注本作业每一步对应链条哪一环。验证:四步链完整,且设备名核对过程(第 1 步)有记录。
截图上传:终端同屏能看到①fdisk -l 的设备名核对 ②mkfs.ext4 成功输出 ③df -h /data 的挂载结果 ④testN.img 的 ls -lh 大小。上传到本专题第 10 次课对应作业。
03

磁盘配额

Disk Quota
第 11 次课2 学时理实一体
重点配额参数、启用流程和监控:soft / hard 双限制 + quotacheck / quotaon / edquota / repquota
难点配额限制与实际写入结果的对应——设了限额,要能亲手触发并观察到拒绝

核心方法:小容量测试文件实验,按「设置 → 触发 → 观察 → 解除」四步练习;每次改动配额参数后,必须用 repquota -av 或 dd 写入结果验证限制真的生效。

教学目标
01配额概念 说清块限制与 inode 限制、soft 与 hard 的区别,以及启用配额的两个前提条件。软限有宽限期 · 硬限不可破
02完整启用 完成「挂载参数 → quotacheck 初始化 → quotaon 启用 → edquota 设置」全流程。四步一步不乱
03超限验证 用 dd 分别触发软限与硬限,观察宽限期与写入拒绝,用 repquota -av 留下证据。设限不验证 = 没设
思考题:磁盘配额适合解决哪些管理问题? 作业:配额配置 + soft / hard 双限超限验证(8 步)
核心概念|配额四要素

磁盘配额 Quota

用作用

限制用户 / 组对磁盘空间的占用,防止单个用户耗尽公共存储,保证多用户公平使用。

类两类限制

块限制(block)限制容量,inode 限制限制文件数量,可同时设置。

软软硬限制

soft limit 可超出并设宽限期(grace),hard limit 绝对不可突破。

启启用条件

文件系统支持 + 挂载参数:fstab 中加入 usrquota,grpquota,quotacheck 初始化。

单位换算(本课必会):edquota 中 blocks 行的单位是 1KB 块。500M = 512000 块(500 × 1024),1G = 1048576 块。填错单位 = 限额放大或缩小一千倍。
命令速查表|配额管理

配额命令

命令功能示例 / 参数提示
quotacheck -cugm初始化配额数据库quotacheck -cugm /data-c 创建、-u 用户、-g 组、-m 强制不重挂载;生成 aquota.user
quotaon -ug启用配额quotaon -ug /data在挂载点启用;重启后需重新启用或写入启动项
edquota -u编辑用户配额edquota -u alice进入编辑器设置 soft / hard;单位是 1KB 块
repquota -a报告配额使用repquota -av-v 必须有,否则用量为 0 的行不显示
quota -u查看自身配额quota -u alice普通用户查看自己;root 可查任何人
xfs_quotaXFS 文件系统配额xfs_quota -x -c 'limit bsoft=...'xfs 用专用工具,命令与 ext4 的 quota 系列不同
工具差异:ext4 用 quota 系列(quotacheck / quotaon / edquota / repquota),xfs 用 xfs_quota——第 10 次课选 ext4 还是 xfs,决定这次用哪套工具。启用配额前务必备份数据。
操作演示|为用户 alice 设置 500M 软限 / 1G 硬限

配额启用与超限验证

root@centos7: ~
# 1 · 确认挂载参数支持配额 # mount | grep /data /dev/sdb1 on /data type ext4 (rw,relatime,usrquota,grpquota) # 2 · 初始化配额数据库并启用 # quotacheck -cugm /data # quotaon -ug /data # 3 · 编辑 alice 的配额(soft=512000 hard=1048576) # edquota -u alice Disk quotas for user alice (uid 1001): Filesystem blocks soft hard inodes soft hard /dev/sdb1 12 512000 1048576 3 0 0 # 4 · 验证:-v 必须有,否则用量为 0 不显示 # repquota -av *** Report for user quotas on /dev/sdb1 (/data) User used soft hard grace alice 12M 500M 1G # 5 · 超限测试:600M 超过 soft 进宽限期;再写触发 hard 拒绝 # su - alice -c "dd if=/dev/zero of=/data/big.img bs=1M count=600" dd: error writing '/data/big.img': Disk quota exceeded
验证要点
  • mount | grep /data 输出含 usrquota,grpquota
  • quotacheck 后生成 aquota.user
  • edquota 中单位是 1KB 块,换算错限额就差一千倍
  • 超过 soft 后进入宽限期,hard 立即拒绝
  • 用 dd 测试写大文件,观察拒绝报错
关键换算
  • 512000 块 = 500M
  • 1048576 块 = 1G
  • 1024 块 ≈ 1MB
  • edquota 只能设数值,不会自动换算——自己先算再填
写入归属提醒:配额按「谁写文件」计账。要以 alice 的身份写 /data 下的文件,才会计入 alice 的配额——用 su - alice -c "..." 切换身份执行;root 自己写的文件计在 root 账上,测不出限额。
课后作业配额配置与 soft / hard 双限验证约 25 分钟 · 覆盖本课 7 个知识点 · 每步均有验证
  1. 确认现状:执行 mount | grep /data。验证:输出中 options 没有 usrquota——记录下来,这正是下一步要补的。
  2. 带配额参数重挂载:cd ~ && umount /data,再 mount -o defaults,usrquota,grpquota /dev/sdb1 /data。验证:mount | grep /data 输出中出现 usrquota,grpquota。
  3. 初始化并启用:quotacheck -cugm /data 后 quotaon -ug /data。验证:ls -a /data 出现 aquota.user 文件,两条命令均无报错。
  4. 建测试账户:useradd stu序号_姓名拼音 && passwd stu序号_姓名拼音(虚拟机以 root 登录时执行;已是普通用户则命令前加 sudo)。验证:id stu序号_姓名拼音 显示账户存在。
  5. 换算并设置限额:soft = 100 + 20×你的序号(MB),hard = soft × 2。按「1MB = 1024 块」换算成块数填入 edquota -u stu序号_姓名拼音 的 blocks 行。验证:重新打开 edquota 能看到自己填的数值;quota -u stu序号_姓名拼音 能查到该配额。
  6. 超软限测试:su - stu序号_姓名拼音 -c "dd if=/dev/zero of=/data/bigN.img bs=1M count=soft+50"(soft+50 = 你的软限加 50MB)。验证:写入成功但已超 soft——repquota -av /data 中该用户出现 + 超限标记并进入宽限期;dd 须以该用户身份执行才计到该用户账上。
  7. 超硬限测试:su - stu序号_姓名拼音 -c "dd if=/dev/zero of=/data/hugeN.img bs=1M count=hard+50"。验证:写入被拒绝,出现 Disk quota exceeded——这就是硬限不可突破的直接证据;repquota -av /data 显示 hard 列超限。
  8. 复盘报告:整理 mount 参数、aquota.user、edquota 数值(含换算过程)、两次 dd 结果。验证:quota -u stu序号_姓名拼音 的最终输出与报告记录一致;能说出 soft 有宽限期、hard 立即拒绝的区别。
截图上传:终端同屏能看到①mount | grep /data 含 usrquota ②edquota 或 quota -u 的配额数值 ③dd 超硬限的拒绝报错 ④repquota -av 的报告。上传到本专题第 11 次课对应作业。
04

Vim 编辑器

Vim Editor
第 12 次课2 学时理实一体
重点三种工作模式及常用编辑命令:普通 / 插入 / 命令行,移动 · 编辑 · 撤销 · 查找
难点建立模式化编辑思维,避免误操作——在错误的模式里敲命令,结果完全不是预期

核心方法:用练习文件反复演练,模式切换与快捷命令边讲边练;保存、退出、撤销备好「操作卡片」;改系统配置文件前先备份,改完立即用 cat 验证系统响应。

教学目标
01模式思维 说清普通 / 插入 / 命令行三种模式各自的任务与切换方式。Esc 回普通 · : 进命令行 · i 进插入
02编辑操作 熟练完成光标移动、增删行、复制粘贴、撤销恢复与关键字搜索。3yy / 3dd 带数量操作
03改配置文件 用 Vim 修改 /etc/hosts、/etc/fstab 等系统文件,先备份、后修改、再验证。改前 cp 备份 · 改后 cat 验证
思考题:Vim 不同模式分别承担什么任务? 作业:Vim 练习 + 修改 /etc/hosts 与 /etc/fstab(8 步)
核心概念|三种工作模式

Vim 三种模式

N普通模式 Normal

默认进入,用于移动光标、删除、复制、撤销——所有命令的起点和归宿。

按 Esc 随时回到这里

I插入模式 Insert

用于输入和修改文本,左下角显示 -- INSERT --。

普通模式按 i 进入
按 Esc 返回普通模式

C命令行模式 Command

用于保存、退出、查找、替换、设置和跳行。

普通模式按 : 进入
Enter 执行后回到普通模式

模式切换链:普通模式 ─i─▶ 插入模式 ─Esc─▶ 普通模式 ─:─▶ 命令行模式 ─Enter─▶ 普通模式。拿不准当前在哪个模式时,多按几次 Esc 一定回到普通模式——这是新手最可靠的「急救键」。
命令速查表|Vim 常用操作

移动 · 编辑 · 撤销 · 查找

类别按键作用技巧
移动光标← ↓ ↑ →方向键移动光标最稳妥,初学先用方向键
移动光标0 / $行首 / 行尾0 是数字零,不是字母 O
移动光标gg / G文件首 / 文件尾大文件快速定位首尾
移动光标:n跳转到第 n 行如 :42 跳到第 42 行
编辑i进入插入模式在光标前插入;a 在光标后
编辑dd删除整行ndd 删 n 行(3dd 删 3 行)
编辑yy / p复制行 / 粘贴nyy 复制 n 行(3yy 复制 3 行)
撤销恢复u / Ctrl+r撤销 / 恢复u 可连续多步撤销;Ctrl+r 重做
效率.重复上次操作删一行后移动光标再按 . 可重复删
保存退出ZZ保存并退出等价于 :wq;:q! 不保存强制退出
查找/关键字向下搜索字符n 下一处、N 上一处匹配
保存退出三件套::w 保存、:q 退出、:wq 保存退出;修改失败想放弃用 :q!。在普通模式直接按 ZZ 等同于 :wq。
操作演示|用 Vim 修改配置文件

从新建练习文件到改系统配置

student@centos7: ~
# 步骤 1 · 打开(或新建)练习文件 $ vim ~/note.txt # 步骤 2 · 按 i 进入插入模式(左下角出现 -- INSERT --) 姓名 序号 第一行要点 -- -- INSERT -- # 步骤 3 · 按 Esc 返回普通模式 # 步骤 4 · 命令行模式保存退出:先按 : 再输入 wq :wq # 步骤 5 · 用 cat 验证内容已落盘 $ cat ~/note.txt 姓名 序号 第一行要点 # 改系统配置文件前,先备份 $ cp /etc/hosts /etc/hosts.bak $ vim /etc/hosts 127.0.0.1 localhost wwwN.test ← 新增一行 :wq
验证清单
  • cat ~/note.txt 显示刚输入的内容
  • ls /etc/hosts* 能看到 .bak 备份文件
  • cat /etc/hosts 末尾显示新增的解析行
  • 保存失败想反悔::q! 放弃修改重来
常见误操作
  • 在插入模式直接敲 :wq——会被当文字写进文件,先按 Esc
  • 忘记保存就关窗口:修改只在内情里,落盘才算数
  • 改完配置文件不验证:必须 cat 或重启服务确认生效
承接上次课:第 11 次课我们用 mount -o 临时启用了 /data 的配额参数——那是重启就丢的。今天学会 Vim 后,把 usrquota,grpquota 写进 /etc/fstab,才算真正持久化(作业第 6 步)。
课后作业Vim 练习 + 修改两个系统配置文件约 25 分钟 · 覆盖本课 7 个知识点 · 每步均有验证
  1. 新建练习文件:vim ~/stu序号_姓名拼音/vimN.txt,按 i 进入插入模式,第一行写「姓名 + 序号」,再写三行本课要点;Esc 返回普通模式,ZZ 保存退出。验证:cat vimN.txt 显示四行内容,第一行含姓名与序号。
  2. 模式与移动:重新打开 vimN.txt,依次练习 gg / G / 0 / $ / :3(跳到第 3 行),说出每个按键的作用。验证:合上讲义能说清「普通模式管移动和命令、插入模式管输入、命令行模式管保存退出」。
  3. 编辑操作:用 dd 删除一行、3yy 复制三行、p 粘贴、u 撤销、Ctrl+r 恢复,最后 :wq 保存。验证:cat -n vimN.txt 的行号与内容符合你的操作预期。
  4. 关键字查找:用 /关键字 向下定位,n / N 在匹配处之间跳转。验证:能指出当前匹配的是第几处、共找到几处(可用 grep -c 交叉核对)。
  5. 误操作恢复:故意改错一行,用 u 撤销恢复;再故意改错,用 :e! 放弃修改重新加载文件。验证:文件内容恢复原样,能说出 u(撤销历史)与 :e!(放弃未保存修改)的区别。
  6. 改 /etc/hosts:cp /etc/hosts /etc/hosts.bak 备份后,vim /etc/hosts 添加一行 127.0.0.1 wwwN.test(N=你的序号),保存退出。验证:cat /etc/hosts 末尾显示新行;ls /etc/hosts* 能看到备份文件。
  7. 改 /etc/fstab(承接第 11 次课配额作业):cp /etc/fstab /etc/fstab.bak 后,vim /etc/fstab 把 /data 行的 defaults 改为 defaults,usrquota,grpquota,保存后 mount -o remount /data。验证:mount | grep /data 输出含 usrquota——上次课临时挂载的配额参数,这次开机也能生效了。
  8. 整理报告:把 vimN.txt 最终内容、/etc/hosts 与 /etc/fstab 修改前后对比整理进报告。验证:三个文件均可 cat 显示,报告第一行含姓名 + 序号。
截图上传:终端同屏能看到①vim 编辑中的界面(含 -- INSERT -- 或 :wq)②cat vimN.txt 的四行内容 ③cat /etc/fstab 含 usrquota 的 /data 行。上传到本专题第 12 次课对应作业。
05

RPM 软件包

RPM Packages
第 13 次课2 学时理实一体
重点RPM 基本命令和软件包生命周期:安装、查询、校验、卸载四步,依据命令输出完成过程记录
难点依赖关系、版本和来源可信性——装不上多半是缺依赖,敢不敢装要看来源

核心方法:安装前校验、安装后查询、卸载后复核,建立完整证据链;每一步都保留命令输出,用 rpm -qa / -ql / -V 的结果说话。

教学目标
01包管理认知 说出 RPM 与 YUM/DNF 的分工:RPM 管单个包、需手动解决依赖;YUM 基于仓库自动解决依赖。本地文件 vs 仓库
02四步操作 完成安装(-ivh)、查询(-qa / -ql / -qi)、校验(-V)、卸载(-e)全流程。装查校卸四步闭环
03来源可信 识别依赖报错与版本信息,说明软件来源与签名校验为什么重要。Failed dependencies 是常态
思考题:RPM 校验能发现哪些问题? 作业:安装 · 查询 · 校验 · 卸载四步闭环(9 步)
核心概念|RPM vs YUM/DNF

两种包管理方式的分工

RRPM 包管理

软件包格式 .rpm:本地安装、查询、卸载、校验。

需要手动解决依赖关系——适合离线环境或指定版本安装。

rpm -ivh package.rpm
rpm -qa | grep nginx
rpm -e package

YYUM / DNF 仓库管理

基于仓库(repository)自动解决依赖,可更新、搜索、组安装。

CentOS/RHEL 7 用 yum,8+ 用 dnf;仓库配置在 /etc/yum.repos.d/。

yum install nginx
yum update
dnf remove httpd

来源可信:从 RPM 签名校验(GPG)和仓库来源可信性出发——来路不明的 .rpm 可能被植入后门。安装前先确认来源,生产环境必须校验签名,这是软件合规的底线。
命令速查表|rpm 六件套

rpm 安装 · 查询 · 校验 · 卸载

命令功能示例参数 / 提示
rpm -ivh安装并显示进度rpm -ivh tree-1.6.0-10.el7.x86_64.rpm-i 安装、-v 详细、-h 进度条
rpm -qa查询所有已安装包rpm -qa | head配合 grep 快速定位
rpm -qi查询包的详细信息rpm -qi tree版本 Version、发布 Release、来源 Vendor
rpm -ql列包内全部文件rpm -ql nginx安装后文件路径一目了然
rpm -V校验文件是否被改动rpm -V tree无输出 = 未被篡改;有输出按字符解读(S 大小 / 5 校验和 / M 权限)
rpm -e卸载软件包rpm -e nginx卸载前确认依赖影响,必要时先 --test 演练
依赖报错怎么读:安装时报 error: Failed dependencies: xxx is needed by ...,说明这个包依赖别的包,而 RPM 不会自动安装依赖——要么先把依赖包装上,要么改用下次课的 YUM。
操作演示|安装 · 查询 · 校验 · 卸载四步

以 tree 包走一遍完整生命周期

root@centos7: ~
# 步骤 1 · 安装(-i 安装 -v 详细 -h 进度条) # rpm -ivh /mnt/iso/Packages/tree-1.6.0-10.el7.x86_64.rpm Verifying... ################################# [100%] Preparing... ################################# [100%] Updating / installing... 1:tree-1.6.0-10.el7 ################################# [100%] # 步骤 2 · 查询(已安装 / 详细信息 / 包内文件) # rpm -qa | grep tree tree-1.6.0-10.el7.x86_64 # rpm -qi tree | head -6 Name : tree Version : 1.6.0 Release : 10.el7 Architecture: x86_64 Vendor : CentOS # rpm -ql tree | head -4 /usr/bin/tree /usr/share/doc/tree-1.6.0 /usr/share/doc/tree-1.6.0/LICENSE /usr/share/doc/tree-1.6.0/README # 步骤 3 · 校验(无输出 = 文件与安装时一致) # rpm -V tree # 步骤 4 · 卸载 # rpm -e tree # rpm -qa | grep tree (无输出 = 已卸载)
验证清单
  • 安装成功:rpm -qa | grep tree 有输出
  • rpm -ql 列出的路径用 ls -l 抽查真实存在
  • rpm -V 无输出 = 校验通过
  • 卸载后 which tree 找不到命令
复盘要点
  • -ivh 三个参数各管一件事:装 · 详 · 进度
  • -qi 看「身份」:版本、发布、来源一目了然
  • -V 是「体检」:有输出先别慌,按字符查改动
  • 卸载前想依赖:别人还指着这个包跑,别直接 -e
本地源准备:本地 .rpm 通常来自安装 ISO——mkdir -p /mnt/iso && mount /dev/cdrom /mnt/iso,包在 /mnt/iso/Packages/ 下(第 10 次课学的 mount 派上用场)。用通配符 tree-*.rpm 可免记完整版本号。
课后作业RPM 四步闭环:安装 · 查询 · 校验 · 卸载约 25 分钟 · 覆盖本课 8 个知识点 · 每步均有验证
  1. 准备本地源:mkdir -p /mnt/iso && mount /dev/cdrom /mnt/iso。验证:ls /mnt/iso 能看到 Packages 目录(看不到就换教师提供的 ISO)。
  2. 安装:rpm -ivh /mnt/iso/Packages/tree-*.rpm。验证:输出显示 [100%] 完成;若报 Failed dependencies,记录缺少的依赖包名——这正是 RPM 需要手动解决依赖的证据。
  3. 查询已安装:rpm -qa | grep tree。验证:输出 tree-1.6.0-10.el7.x86_64 类似行,版本号与你装的包一致。
  4. 查身份与来源:rpm -qi tree。验证:能说出版本 Version、发布 Release、来源 Vendor 三项信息,抄入报告。
  5. 列包内文件:rpm -ql tree,并 ls -l /usr/bin/tree 抽查。验证:列出的路径真实存在,ls 能看到可执行文件。
  6. 实际使用:tree ~/stu序号_姓名拼音。验证:输出以 stu序号_姓名拼音 为根的目录树——每人的目录结构不同,截图即身份证据。
  7. 校验:rpm -V tree。验证:无任何输出 = 文件与安装时一致;能说出有输出时各字符的含义(S 大小 / 5 校验和 / M 权限)。
  8. 卸载:rpm -e tree。验证:rpm -qa | grep tree 无结果;再执行 tree 提示 command not found。
  9. 对比记录:同一软件若改用 yum install(下次课)会有什么不同,写进报告。验证:报告中有「手动依赖 vs 自动依赖」「本地文件 vs 仓库」两行对比。
截图上传:终端同屏能看到①rpm -ivh 的安装完成输出 ②rpm -qi 的身份信息 ③tree ~/stu序号_姓名拼音 的目录树 ④rpm -e 卸载后 grep 无结果。上传到本专题第 13 次课对应作业。
06

YUM/DNF 仓库

YUM & DNF Repos
第 14 次课2 学时理实一体
重点仓库、依赖和软件维护流程:配仓库 → 刷缓存 → 安装 / 卸载 → 空间检查
难点仓库配置与空间清理的联动——baseurl 指错装不了,缓存不清空间悄悄涨

核心方法:仓库配置示范与软件维护实践结合,安装前后均检查空间变化;先确认源可用(repolist 有包),再执行安装,最后用 rpm -qa 与 systemctl 双重验证。

教学目标
01仓库配置 看懂 /etc/yum.repos.d/ 下的 .repo 五字段,会配一个可用的本地仓库。baseurl 与挂载点一致
02软件维护 用 yum 完成安装、查询、卸载,理解自动依赖是如何被解决的。clean + makecache 先行
03空间联动 安装前后用 df / du 检查 /var 与缓存变化,会用 clean all 回收空间。装完不忘查空间
思考题:YUM 如何解决软件依赖? 作业:配仓库装 httpd + 安装前后空间检查(8 步)
核心概念|仓库结构

仓库是什么 · .repo 五字段

仓仓库 Repository

集中存放 .rpm 包与元数据(repodata)的位置:网络源或本地路径。YUM 安装前先读元数据,自动计算依赖树,一次下载并按正确顺序安装。

CentOS 7 → yum
CentOS 8+ → dnf(命令兼容)

配.repo 五字段

每个仓库一个配置文件,放在 /etc/yum.repos.d/,后缀 .repo。

[local] ← 唯一 ID
name=Local ISO
baseurl=file:///mnt/iso
enabled=1
gpgcheck=0

易错点:中括号内的 ID 必须唯一;baseurl 必须与 ISO 实际挂载点一致(file:///mnt/iso 对应 mount /dev/cdrom /mnt/iso);gpgcheck=0 仅用于本地测试,生产必须 gpgcheck=1 并导入官方 GPG 公钥。注意:本地 ISO 源里没有 nginx——它需要 EPEL 第三方仓库;本课用 httpd(CentOS 7 官方源自带)。
命令速查表|yum / dnf

仓库维护命令

命令功能示例提示
yum repolist列可用仓库yum repolist确认仓库配置生效;包数为 0 说明 baseurl 指错
yum clean all清理全部缓存yum clean all配合 makecache 重建;也是回收 /var 空间的手段
yum makecache重建缓存元数据yum makecache改完 .repo 必须先 clean 再 makecache
yum install从仓库安装yum install -y httpd自动解决依赖;-y 免确认
yum remove从仓库卸载yum remove -y httpd会移除不再被依赖的包
yum list installed列已安装包yum list installed | grep httpd用于盘点软件资产
dnfCentOS 8+ 继任者dnf install -y nginx子命令与 yum 基本一致,可直接迁移
与 RPM 的关系:YUM 底层还是调用 RPM 安装单个包,区别在于依赖由 YUM 提前算好。第 13 次课 rpm -ivh 报 Failed dependencies 的包,用 yum install 一条命令就能装上。
操作演示|配置本地仓库并安装 httpd

从 ISO 到可用的 Web 服务

root@centos7: ~
# 1 · 挂载 ISO 作为本地源 # mkdir -p /mnt/iso && mount /dev/cdrom /mnt/iso # 2 · 创建本地仓库配置(Vim,第 12 次课已学) # vim /etc/yum.repos.d/local.repo [local] name=Local ISO baseurl=file:///mnt/iso enabled=1 gpgcheck=0 # 3 · 刷新缓存并安装 # yum clean all && yum makecache # yum install -y httpd Installed: httpd.x86_64 0:2.4.6-97.el7.centos Complete! # 4 · 验证服务 # systemctl start httpd && systemctl status httpd Active: active (running) # 5 · 空间检查:缓存占了多少 # du -sh /var/cache/yum 312M /var/cache/yum
关键检查点
  • ISO 挂载成功:ls /mnt/iso 能看到 Packages
  • 仓库语法正确,中括号内为唯一 ID
  • baseurl 路径与挂载点一致
  • yum makecache 不报错,再执行 install
  • 安装后用 rpm -qa | grep httpd 确认
安全提示
  • gpgcheck=0 只用于本地测试环境
  • 生产环境务必 gpgcheck=1,并导入官方 GPG 公钥
  • 软件来源可信,是「来源合规」的第一道关
本课综合看点:装软件不是终点——安装会让 /var 和缓存变胖(du -sh /var/cache/yum),这正是第 9 次课空间监控的用武之地;yum clean all 之后空间回收多少,用 df -h 说话。
课后作业配仓库装 httpd + 安装前后空间检查约 25 分钟 · 覆盖本课 8 个知识点 · 每步均有验证
  1. 写仓库配置:vim /etc/yum.repos.d/local.repo,写入 [local]、name、baseurl=file:///mnt/iso、enabled=1、gpgcheck=0 五字段。验证:cat /etc/yum.repos.d/local.repo 五字段齐全,baseurl 与 ISO 挂载点一致(先确认 /mnt/iso 已挂载)。
  2. 建缓存:yum clean all && yum makecache。验证:两条命令无报错;yum repolist 显示 local 仓库及包数量(为 0 说明 baseurl 指错,回查第 1 步)。
  3. 安装:yum install -y httpd。验证:rpm -qa | grep httpd 显示已安装;yum list installed | grep httpd 显示来源仓库为 local。
  4. 启动验证:systemctl start httpd && systemctl status httpd。验证:输出 Active: active (running)(第 7 次课已学);失败时用 journalctl -u httpd 看日志。
  5. 发布测试页:echo "<h1>stu序号_姓名拼音</h1>" > /var/www/html/index.html,浏览器访问 http://127.0.0.1 截图。验证:页面显示你的姓名拼音与序号。
  6. 空间联动:安装前后各执行一次 df -h /var,再执行 du -sh /var/cache/yum。验证:报告记录安装前后容量变化,能说出 yum clean all 对空间的影响(第 9 次课已学)。
  7. 维护卸载:yum remove -y httpd。验证:rpm -qa | grep httpd 无输出;systemctl status httpd 显示找不到服务。
  8. 来源可信思考:为什么生产环境必须 gpgcheck=1 并导入官方 GPG 公钥?写进报告。验证:报告中说明「校验签名 = 确认软件来源可信、未被篡改」。
截图上传:终端同屏能看到①yum repolist 的仓库与包数 ②yum install -y httpd 的 Complete! ③systemctl status httpd 的 active (running) ④df -h /var 前后对比。上传到本专题第 14 次课对应作业。
本专题小结|6 次课知识地图

磁盘管理知识地图Knowledge Map

从「看空间」到「管空间」再到「管软件」——六次课一条线,每次课的作业都当堂覆盖全部知识点。

01

空间监控

分区级 · 目录级
df -h看分区整体用量
du -sh看目录实际占用
sort -hr|head大目录自动排序
find -size按大小捞文件

核心要点df 看分区、du 看目录;df 满而 du 找不到大文件,先查删除未释放。

口诀 先整体、后下钻、再定位

易错点 df 看的是文件系统,du 看的是目录树,两者统计对象不同
02

分区挂载

设备 · 文件系统
lsblk / fdisk -l动手前核对设备名
fdiskMBR 分区交互操作
mkfs.ext4 / .xfs格式化建文件系统
mount + fstab临时挂载 + 开机持久化

核心要点分区→格式化→挂载→写 fstab 四步链;设备名确认是底线。

口诀 先 lsblk,后 fdisk;先 mount,后 fstab

易错点 设备名错一位 = 格式化错盘,动手前必须 fdisk -l 核对容量
03

磁盘配额

soft / hard 双限
mount -o usrquota挂载时启用配额
quotacheck / quotaon建账本、开配额
edquota -u设置软限与硬限
repquota报表核对全部用户

核心要点软限警告给宽限期,硬限物理红线立即拒写;ext4 与 xfs 工具链不同。

口诀 启用 → 建账 → 设限 → 写超验证

易错点 dd 要以被测用户身份执行,root 写的文件计 root 账、测不出限额
04

Vim 编辑

三模式 · 改配置
普通 / 插入 / 命令行三种模式各司其职
h j k l · dd p u移动与行级编辑
/ 关键字 · n查找与跳转
:wq / :q! / :e!保存、放弃、恢复

核心要点普通模式组织内容,插入模式输入,命令行模式存退查改;改配置先备份。

口诀 i 进、Esc 回、:wq 存退

易错点 直接关终端 = 丢弃未保存修改;改系统配置前先 cp 备份
05

RPM 软件包

本地包 · 六件套
rpm -ivh安装并显示进度
rpm -qa / -qi查询已装与包信息
rpm -ql / -V列文件、校验指纹
rpm -e卸载并观察依赖报错

核心要点本地 .rpm 精细管理,依赖须手动排查;-V 校验是安全监控手段。

口诀 装 → 查 → 验 → 卸,四步都留证据

易错点 报 failed dependencies 时按提示补装依赖包,不要强删
06

YUM / DNF 仓库

自动依赖 · 仓库
/etc/yum.repos.d/*.repo仓库五字段配置
yum clean / makecache清缓存、建索引
yum install -y自动解决依赖安装
yum repolist / remove盘点仓库、卸载清理

核心要点仓库元数据驱动依赖仲裁;baseurl 与挂载点一致、来源可信是前提。

口诀 配源 → 刷缓存 → 安装 → 服务验证

易错点 gpgcheck=0 仅限本地测试环境,生产必须 =1 并导入官方公钥
贯穿主线:六次课都遵循「先确认对象(设备名 / 用户名 / 仓库源)→ 执行操作 → 立即验证」的闭环;每次课的综合作业覆盖当堂全部知识点,验证步骤截图是批改依据。
综合实训任务|当堂完成并提交操作记录

5 项任务,覆盖本专题全部操作Lab Tasks

每次课当堂完成对应任务并截图提交;个人目录统一命名为 stu序号_姓名拼音,文件名带上学号序号 N,便于逐一核对。

5 项任务 建议总用时约 60 分钟 每步操作 + 验证截图
1

空间分析任务 1 · 约 10 分钟

用 df -h 看全盘概览,再用 du -sh /var/* 2>/dev/null | sort -hr | head -3 找出 /var 下最大的 3 个目录,把命令与结果写入个人目录下 diskN.txt 并截图。

2

分区挂载任务 2 · 约 15 分钟

为虚拟机添加一块 10G 磁盘,fdisk -l 核对设备名后分区、mkfs.xfs 格式化、挂载到 /data,写入 /etc/fstab 后执行 mount -a 验证持久化生效。

3

配额配置任务 3 · 约 10 分钟

在 /data 上启用用户配额,为本人用户 stu序号_姓名拼音 设置软限 100+20×N MB、硬限为软限 2 倍,用 su 切换身份 dd 写文件,分别验证超软限警告与超硬限被拒。

4

Vim 编辑任务 4 · 约 10 分钟

先用 cp 备份,再用 Vim 修改 /etc/hosts,添加一行 127.0.0.1 wwwN.test 并保存退出,用 tail 验证修改已生效。

5

软件包任务 5 · 约 15 分钟

配置本地 YUM 仓库(local.repo 五字段写全),yum clean all && yum makecache 后 yum install -y httpd 安装并启动服务,提交 rpm -qa | grep httpd 结果与浏览器访问截图。

提交方式:5 项任务按顺序完成,每项任务最后一步均为「执行验证命令 + 截图上传」;截图须包含命令原文与输出结果,个人目录统一命名 stu序号_姓名拼音,与作业一一对应。
本专题思考题|先自己想,再看答案

六个问题检验掌握程度Self-test

先自行作答,再点击展开答案核对;错 2 题以上的,回头重看对应课次。

Q1df 与 du 的统计对象有什么不同?为什么两者结果可能差很多?
参考答案:df 统计的是文件系统分区级的已用 / 可用空间(按块位图计算,包含文件系统元数据、以及「已删除但仍被进程占用」的文件);du 统计的是目录级文件大小的逐层累加。差异来源:①进程还开着已删除的大文件,df 仍计、du 已不计;②du 只累加可见文件,df 含 inode、日志等元数据开销;③du -sh 默认当前目录,df 永远看全部挂载点。所以「df 报警但 du 找不到大文件」时,先用 lsof +L1 查删除未释放,再 du 下钻。
Q2为什么格式化前必须反复确认设备名?误格式化会造成什么后果?
参考答案:mkfs 会清空目标设备上的全部数据且基本不可恢复。设备名错一位(把 /dev/sdb 写成 /dev/sda)就等于格式化系统盘,服务器直接无法启动;加盘后磁盘顺序变化(sdb/sdc 调换)是此类事故的高发场景。防护三步:①fdisk -l 核对容量与分区表,确认目标容量与新盘一致;②lsblk 看挂载关系,确认没有已挂载的文件系统;③mount | grep 确认无进程占用。设备名与容量交叉验证后再动手。
Q3磁盘配额适合解决哪些实际问题?软限制与硬限制如何配合?
参考答案:配额解决多用户共享场景下的资源争抢与「跑飞」:共享服务器上某个用户写爆磁盘影响所有人、FTP 上传无上限、测试用户日志无限增长。软限制是警告线——超过后进入宽限期(默认 7 天)提醒整改,期间仍可写入;硬限制是物理红线——达到立即拒绝写入。配合方式:按用户正常用量留约 20% 余量设软限,软限再加一块突发缓冲设硬限,既防止跑飞又不打断正常业务。
Q4Vim 的三种模式各自解决什么任务?模式切换不熟练会怎样?
参考答案:普通模式负责导航与组织——移动光标、删除行、复制粘贴、撤销;插入模式负责输入内容;命令行模式负责保存退出、查找替换、执行命令。切换不熟练的典型后果:想移动光标却连按 j 进入插入模式打出一串字符;未保存直接关终端导致修改全部丢失;Esc 按得太早或太晚。建议把「i 进、Esc 回、:wq 存退」练成条件反射,并养成改配置先 cp 备份的习惯。
Q5rpm -V 校验能发现哪些问题?为什么它不能替代备份?
参考答案:rpm -V 把已安装文件与 rpm 数据库中记录的指纹(大小、权限、时间戳、校验和)逐一比对,能发现:配置文件被篡改、二进制被替换(木马 / 后门)、权限被修改、文件缺失。输出列的 S / M / 5 / T / D 等标记分别对应大小、模式、校验和等变化类型。但它只回答「文件变了」,不回答「正确的原始内容是什么」——没有原始副本就无法恢复;且正常升级、打补丁也会改变指纹,需要结合变更记录判读。所以是校验做监控、备份留还原点,两者互补、不能互相替代。
Q6YUM / DNF 是如何解决依赖关系的?相比 rpm 手动安装优势在哪?
参考答案:YUM / DNF 让「装一个包」变成「解一道依赖题」:仓库中的 repodata 带有每个包的元数据与依赖声明,执行 install 时先读取目标包的 Requires,再从仓库里递归挑选版本可共存的依赖包,统一下载、按拓扑序安装,自动完成版本仲裁。rpm -ivh 只认手上这一个文件,缺依赖立即报错,需要手动逐个寻找、安装。YUM 的优势:免去手工排查依赖、自动处理版本冲突、支持批量更新与组安装;代价是依赖仓库可用性与来源可信,因此必须管好 .repo 源并启用 GPG 校验。
下节预告 · 模块二 专题二「网络管理」:IP 地址配置、连通性测试、nmcli 网卡管理、SSH 远程登录与常用网络命令。
课后作业:①完成当堂 5 项实训任务并提交每步验证截图;②个人目录命名 stu序号_姓名拼音,文件名带学号序号 N;③配额、Vim、仓库三类操作须保留「命令 + 输出」双证据。
Linux 智能运维与管理 · 模块二 专题一 · 磁盘管理 root@centos7:~# df -h /data → umount /data