1. RPM与DNF:包管理的艺术
什么是RPM?
RPM(Red Hat Package Manager)是Linux系统中用于管理软件包的工具,就像乐高积木一样,每个软件包都是一个独立的“积木块”。它负责安装、卸载、升级软件,并管理依赖关系。
RPM软件包文件名的组成
一个典型的RPM文件名形如:
httpd-2.4.6-99.el7.x86_64.rpm
- 名称:
httpd
(软件名称) - 版本:
2.4.6
(功能版本) - 发布版:
99.el7
(发行版相关版本) - 架构:
x86_64
(支持的CPU架构)
DNF是什么?它和RPM有什么联系和区别?
- DNF(Dandified YUM):
是YUM的升级版,功能更强大,处理依赖关系更智能。- 联系:DNF基于RPM技术,底层仍使用RPM包。
- 区别:
- RPM:底层工具,直接操作单个包(如安装、查询具体文件)。
- DNF:高层工具,自动处理依赖关系,适合批量安装或升级。
示例命令:
# 使用RPM安装包(需手动处理依赖)
sudo rpm -ivh package.rpm# 使用DNF安装包(自动处理依赖)
sudo dnf install package
2. RHEL 9中的应用流与模块
应用流(Application Streams)
RHEL 9通过“应用流”为用户提供不同版本的软件分支,例如:
- BaseOS:基础系统组件(如内核、核心工具)。
- AppStream:附加应用软件(如Web服务器、开发工具)。
作用:用户可以选择不同版本的软件,满足兼容性或功能需求。
模块(Modules)
模块允许在同一系统中管理同一软件的不同版本。例如:
- httpd模块:可以同时安装Apache 2.4和2.6版本,切换版本无需卸载。
示例命令:
# 查看可用模块
dnf module list# 安装特定版本的httpd
sudo dnf module install httpd:2.4
RHEL 9的两个必要软件仓库
- BaseOS:
- 内容:系统核心组件(如内核、基础工具)。
- 作用:确保系统稳定运行。
- AppStream:
- 内容:额外应用软件(如图形界面、开发工具)。
- 作用:提供扩展功能。
区别:
- BaseOS是系统基础,不可替代;AppStream是可选扩展。
3. 文件系统管理:df、du、lsblk与挂载
df和du命令及-h
/-H
选项
-
df
:显示磁盘分区的总空间、已用空间和挂载点。df -h # 以GB/MB为单位显示(更易读) df -H # 以1000为基数计算(而非1024)
-
du
:显示目录或文件的大小。du -h /var # 查看/var目录的大小 du -sh /var # 显示总大小(`-s`汇总)
区别:
df
看“整体磁盘”,du
看“具体文件/目录”。
lsblk命令与lsblk -fp
的作用
-
lsblk
:列出所有块设备(硬盘、分区、USB等)。lsblk # 显示设备名称、大小、挂载点
-
lsblk -fp
:-f
:显示文件系统类型和挂载信息。-p
:显示完整设备路径(如/dev/sda1
)。
lsblk -fp # 查看详细信息
两种挂载方式
-
临时挂载(
mount
命令):sudo mount /dev/sdb1 /mnt # 挂载分区到/mnt
-
永久挂载(
/etc/fstab
):
在/etc/fstab
中添加条目,开机自动挂载# 示例条目 /dev/sdb1 /mnt ext4 defaults 0 2
如何卸载文件系统
sudo umount /mnt # 卸载/mnt目录
注意:若挂载点有进程占用,需先终止进程或使用-l
延迟卸载:
sudo umount -l /mnt
4. 查找文件:locate vs find
locate命令
- 原理:通过预生成的数据库快速搜索文件。
- 优点:速度快,适合快速查找。
- 缺点:数据库可能未实时更新(需
updatedb
更新)。
示例:
locate *.log # 查找所有以.log结尾的文件
find命令
- 原理:实时搜索文件系统,支持复杂条件(如时间、大小)。
- 优点:灵活,可结合条件过滤。
- 缺点:速度较慢(需遍历目录)。
示例:find /home -name "file.txt" # 在/home下查找file.txt find /var -size +100M # 查找大于100MB的文件