Linux基础知识(五)
第一部分
1. 什么是 RPM?
2. dnf 是什么,它和 rpm 有什么联系和区别?
3. RHEL 中如何做才能启用对第三方存储库的支持?
4. 怎么理解应用流 (Application Streams) 和模块 (Modules) ?
5.两个必要的软件存储库,分别是什么,它们的主要区别是什么?
1. 什么是RPM?
定义:
RPM(Red Hat Package Manager)是Red Hat系列Linux的底层软件包格式和工具集,包含:
• .rpm文件:二进制软件包(含程序、配置、依赖信息)
• rpm命令:包管理工具(查询/安装/卸载)
核心功能:
rpm -ivh package.rpm # 安装软件包
rpm -qa | grep httpd # 查询已安装包
rpm -e package # 卸载软件包
________________________________________
2. dnf与rpm的关系
维度
dnf
rpm
层级 高级包管理工具(依赖自动解决) 底层包管理工具(无依赖处理)
依赖处理 自动下载依赖项 需手动处理依赖
仓库支持 支持多仓库元数据 仅操作本地.rpm文件
典型操作 dnf install httpd rpm -ivh httpd.rpm
技术联系:
dnf底层调用rpm进行实际包安装,但添加了依赖解析和仓库管理功能。
________________________________________
3. 启用第三方存储库
操作步骤:
1. 下载仓库文件
wget https://example.com/repo.rpm -P /etc/yum.repos.d/
2. 导入GPG密钥
rpm --import https://example.com/KEY.gpg
3. 验证仓库
dnf repolist all # 查看已启用仓库
注意事项:
• 优先选择EPEL等可信第三方源
• 检查仓库优先级:dnf install yum-plugin-priorities
________________________________________
4. 应用流与模块
应用流(Application Streams):
• 提供多版本软件选择(如Python 3.9/3.11共存)
• 通过dnf module list查看可用流
• 启用示例:
dnf module enable python39 # 启用Python 3.9流
模块(Modules):
• 软件集合的分组(如postgresql模块包含客户端+服务端)
• 典型操作:
dnf module install postgresql:13/server # 安装特定模块版本
________________________________________
5. 必要存储库及区别
仓库名
BaseOS
AppStream
内容 核心OS组件(内核、基础库) 应用软件(开发工具、运行时)
更新策略 稳定性优先(长期支持) 版本灵活(多应用流支持)
典型软件 systemd, glibc nginx, nodejs, ruby
启用命令 默认启用 默认启用
查看方法:
dnf repolist | grep -E 'BaseOS|AppStream'
第二部分
1. 存储设备是什么?怎么理解分区和格式化?
2. 文件系统是什么?
3. 挂载是什么?挂载点是什么?
4. 怎么理解块设备?
5. 在 SATA 附加存储中,第一磁盘上的第一个分区和第二磁盘的第二个分区分别对应哪个块设备文件?
6. 请比较 df 和 du 命令及-h 和-H 选项的作用。
7. lsblk 命令和 lsblk -fp 命令有什么用?
8. 有哪两种手动挂载的方式?举例说明。
9. 使用 umount 卸载文件系统时需要注意什么?
10. 搜索文件时, locate 和 find 命令各有哪些优点?
11. 如何搜索 /usr/bin 目录中文件大小超过 50KB 的所有文件?
1. 存储设备、分区与格式化
存储设备
• 是什么:物理存储介质(如硬盘、U盘)
• 在Linux中的表示:/dev/sda(第一块SATA硬盘)、/dev/nvme0n1(第一块NVMe SSD)
分区
• 作用:将物理磁盘划分为逻辑单元
• 分区表类型:
o MBR:最多4个主分区(或3主+1扩展分区)
o GPT:支持128+个分区
• 工具:fdisk(MBR)、gdisk(GPT)
格式化
• 作用:在分区上创建文件系统(如EXT4/XFS)
• 命令示例:
mkfs.ext4 /dev/sda1 # 将sda1分区格式化为EXT4
________________________________________
2. 文件系统
核心功能
• 管理文件的存储/检索/更新
• 常见类型:
• ext4 # 传统Linux文件系统
• xfs # 高性能日志文件系统
ntfs # Windows兼容格式
查看文件系统
lsblk -f # 显示分区及文件系统类型
________________________________________
3. 挂载与挂载点
挂载
• 作用:将设备关联到目录树
• 挂载点:目标目录(如/mnt/data)
临时挂载示例
mount /dev/sdb1 /mnt/data # 将sdb1挂载到/data
永久挂载
编辑/etc/fstab:
/dev/sdb1 /mnt/data ext4 defaults 0 0
________________________________________
4. 块设备
特点
• 按固定大小块(如4KB)访问数据
• 典型设备:
• /dev/sda # 整块磁盘
• /dev/sda1 # 磁盘分区
/dev/dm-0 # LVM逻辑卷
查看块设备
lsblk # 树形显示块设备关系
________________________________________
5. SATA设备命名规则
设备位置 设备文件
第一块磁盘 /dev/sda
第一块磁盘的第一个分区 /dev/sda1
第二块磁盘的第二个分区 /dev/sdb2
________________________________________
6. df vs du 命令对比
命令
作用
-h选项
-H选项
df 显示文件系统使用情况 人性化显示(1024进制,如1K=1024B) SI单位(1K=1000B)
du 统计文件/目录大小 同上 同上
示例:
df -h # 查看磁盘剩余空间(易读格式)
du -h /home # 计算/home目录大小
________________________________________
7. lsblk命令进阶
命令
作用
lsblk 显示块设备基本信息
lsblk -f 增加文件系统类型/UUID
lsblk -p 显示完整设备路径(如/dev/sda1)
________________________________________
8. 两种挂载方式
方式1:mount命令
mount /dev/sdc1 /mnt/backup
方式2:通过UUID挂载
mount UUID="a1b2-3c4d" /mnt/secure
获取UUID:
blkid /dev/sdc1
________________________________________
9. umount注意事项
1. 确保无进程占用:
lsof /mnt/data # 查看占用进程
2. 避免数据丢失:
3. sync # 强制写入磁盘后再卸载
umount /mnt/data
________________________________________
10. locate vs find对比
工具
优点
缺点
locate 速度快(基于数据库) 结果非实时
find 实时搜索、条件灵活 速度慢
示例:
locate *.conf # 快速查找配置文件
find /etc -size +1M # 查找大于1MB的文件
________________________________________
11. 搜索大文件
find /usr/bin -type f -size +50k
参数解析:
• -type f:只搜索普通文件
• -size +50k:大于50KB(-50k表示小于50KB)