Linux shell编程学习笔记87:blkid命令——获取块设备信息

0 引言
在进行系统安全检测时,我们需要收集块设备的信息,这些可以通过blkid命令来获取。
1 blkid命令的安装
blkid命令是基于libblkid库的命令行工具,可以在大多数Linux发行版中使用。
如果你的Linux系统中没有安装blkid命令,那么你可以使用以下命令来安装:
1.1 对于基于RPM的发行版(如Red Hat Enterprise Linux、CentOS)
可以使用yum或dnf命令来安装util-linux包,它包含了blkid命令:
sudo yum install util-linux
或者
sudo dnf install util-linux
1.2 对于基于Debian的发行版(如Ubuntu、Debian)
可以使用apt或apt-get命令来安装util-linux包,它也包含了blkid命令:
udo apt install util-linux
或者
sudo apt-get install util-linux
2 blkid命令的帮助信息、功能、命令格式、选项和参数说明
2.1 blkid命令 的帮助信息
我们可以使用 blkid -help 命令来查看该命令的帮助信息。
2.1.1 bash中的blkid命令
[purpleendurer @ bash ~] blkid -help
blkid from util-linux 2.23.2 (libblkid 2.23.0, 25-Apr-2013)
Usage:blkid -L <label> | -U <uuid>blkid [-c <file>] [-ghlLv] [-o <format>] [-s <tag>] [-t <token>] [<dev> ...]blkid -p [-s <tag>] [-O <offset>] [-S <size>] [-o <format>] <dev> ...blkid -i [-s <tag>] [-o <format>] <dev> ...Options:-c <file> read from <file> instead of reading from the defaultcache file (-c /dev/null means no cache)-d don't encode non-printing characters-h print this usage message and exit-g garbage collect the blkid cache-o <format> output format; can be one of:value, device, export or full; (default: full)-k list all known filesystems/RAIDs and exit-s <tag> show specified tag(s) (default show all tags)-t <token> find device with a specific token (NAME=value pair)-l look up only first device with token specified by -t-L <label> convert LABEL to device name-U <uuid> convert UUID to device name-V print version and exit<dev> specify device(s) to probe (default: all devices)Low-level probing options:-p low-level superblocks probing (bypass cache)-i gather information about I/O limits-S <size> overwrite device size-O <offset> probe at the given offset-u <list> filter by "usage" (e.g. -u filesystem,raid)-n <list> filter by filesystem type (e.g. -n vfat,ext3)

2.1.2 kylin系统中的blkid命令
[purpleendurer @ kylin ~] blkid -help
blkid from util-linux 2.27.1 (libblkid 2.27.0, 02-Nov-2015)
Usage:blkid -L <label> | -U <uuid>blkid [-c <file>] [-ghlLv] [-o <format>] [-s <tag>] [-t <token>] [<dev> ...]blkid -p [-s <tag>] [-O <offset>] [-S <size>] [-o <format>] <dev> ...blkid -i [-s <tag>] [-o <format>] <dev> ...Options:-c <file> read from <file> instead of reading from the defaultcache file (-c /dev/null means no cache)-d don't encode non-printing characters-h print this usage message and exit-g garbage collect the blkid cache-o <format> output format; can be one of:value, device, export or full; (default: full)-k list all known filesystems/RAIDs and exit-s <tag> show specified tag(s) (default show all tags)-t <token> find device with a specific token (NAME=value pair)-l look up only first device with token specified by -t-L <label> convert LABEL to device name-U <uuid> convert UUID to device name-V print version and exit<dev> specify device(s) to probe (default: all devices)Low-level probing options:-p low-level superblocks probing (bypass cache)-i gather information about I/O limits-S <size> overwrite device size-O <offset> probe at the given offset-u <list> filter by "usage" (e.g. -u filesystem,raid)-n <list> filter by filesystem type (e.g. -n vfat,ext3)

2.2 blkid命令 的功能
lsblk命令是block identifier的缩写,可以用来显示系统里所有可用块设备的信息。这些信息包括:
- 设备名称
- UUID:文件系统的通用唯一识别码(Universally Unique Identifier)
- TYPE:文件系统类型
- LABEL:设备标签
- PARTUUID:分区UUID(Universally Unique Identifier)
- PARTLABEL:分区标签
- SEC_TYPE:安全文件系统类型
- ……
2.3 blkid命令格式
blkid [选项] [设备名]
2.4 blkid命令选项说明
2.4.1 常规选项
| 选项 | 说明 |
|---|---|
| -c <file> | 读取<file>而不是从默认缓存文件中读取(-c /dev/null 表示没有缓存) |
| -d | 不对非打印字符进行编码 |
| -h | 打印用法消息并退出 |
| -g | 垃圾回收 BLKID 缓存 |
| -o <format> | 输出格式。可以是以下之一:
默认值:full。 |
| -k | 列出所有已知的文件系统/RAID 并退出 |
| -s <tag> | 显示指定的标签 (默认 显示所有标签) |
| -t <token> | 查找具有特定令牌的设备(NAME=值对) |
| -l | 仅查找 -t 指定的令牌的第一个设备 |
| -L <label> | 将 LABEL 转换为设备名称 |
| -U <uuid> | 将 UUID 转换为设备名称 |
| -V | 打印版本信息并退出 |
2.4.2 低级探测选项
| 选项 | 说明 |
|---|---|
| -p | 低级超级块探测(绕过缓存) |
| -i | 收集有关 I/O 限制的信息 |
| -S <size> | 覆盖设备大小 |
| -O <offset> | 给定偏移量的探针 |
| -u | 按 “usage” 过滤(例如 -u filesystem、raid) |
| -n | 按文件系统类型过滤(例如 -n vfat,ext3) |
2.5 blkid命令的参数说明
<dev>:指定要探测的设备(默认值:所有设备)
3 blkid命令使用实例
3.1 blkid:显示所有的设备信息
[purpleendurer @ kylin ~] blkid
/dev/sda1: UUID="3637ecaf-0f1f-49ca-****-************" TYPE="ext4" PARTUUID="abcdf165-800d-4136-****-************"
/dev/sda2: UUID="617746af-df9e-4ab7-****-************" TYPE="ext4" PARTUUID="8250cc36-ced7-4b23****-************"
/dev/sda3: LABEL="KYLIN-BACKUP" UUID="35a92c0a-bfbf-4fe6-****-************" TYPE="ext4" PARTUUID="945c25d1-41cb-4107-****-************6"
/dev/sda4: LABEL="M-fM-^UM-0M-fM-^MM-.M-gM-^[M-^X" UUID="476a5af9-f192-4578-****-************" TYPE="ext4" PARTUUID="9c311144-55e2-4097-****-************"
/dev/sda5: UUID="1043ec35-b969-4a8b-****-************" TYPE="swap" PARTUUID="57003ffa-e59d-4ee2-****-************"
/dev/sda6: SEC_TYPE="msdos" UUID="194D-****" TYPE="vfat" PARTLABEL="EFI System Partition" PARTUUID="f6acb26c-54c2-4735-****-************"
/dev/sdb: LABEL="M-fM-^UM-0M-fM-^MM-.M-gM-^[M-^X" UUID="4f20f41e-62d1-4512-****-************" TYPE="ext4"
[purpleendurer @ kylin ~]

可以看到,系统中有7个块设备。
设备名称如下:
- /dev/sda1
- /dev/sda2
- /dev/sda3
- /dev/sda4
- /dev/sda5
- /dev/sda6
- /dev/sdb
文件系统类型有:
- ext4
- swap
- vfat
在其它系统可能还有LVM2_member等类型。
3.2 blkid -o export:指定export输出格式
[purpleendurer @ kylin ~] blkid -o export
DEVNAME=/dev/sda1
UUID=3637ecaf-0f1f-49ca-900d-****-************
TYPE=ext4
PARTUUID=abcdf165-800d-4136-****-************DEVNAME=/dev/sda2
UUID=617746af-df9e-4ab7-****-************
TYPE=ext4
PARTUUID=8250cc36-ced7-4b23-****-************DEVNAME=/dev/sda3
LABEL=KYLIN-BACKUP
UUID=35a92c0a-bfbf-4fe6-****-************
TYPE=ext4
PARTUUID=945c25d1-41cb-4107-****-************DEVNAME=/dev/sda4
LABEL=M-fM-^UM-0M-fM-^MM-.M-gM-^[M-^X
UUID=476a5af9-f192-4578-****-************
TYPE=ext4
PARTUUID=9c311144-55e2-4097-****-************DEVNAME=/dev/sda5
UUID=1043ec35-b969-4a8b-****-************
TYPE=swap
PARTUUID=57003ffa-e59d-4ee2-****-************DEVNAME=/dev/sda6
SEC_TYPE=msdos
UUID=194D-****
TYPE=vfat
PARTLABEL=EFI\ System\ Partition
PARTUUID=f6acb26c-54c2-4735-****-************DEVNAME=/dev/sdb
LABEL=M-fM-^UM-0M-fM-^MM-.M-gM-^[M-^X
UUID=4f20f41e-62d1-4512-****-************
TYPE=ext4
[purpleendurer @ kylin ~]

这种格式可以用来在shell脚本中设置变量。
3.3 blkid -o list:以'list'格式显示设备的属性
[purpleendurer @ kylin ~] blkid -o list
device fs_type label mount point UUID
-------------------------------------------------------------------------------
/dev/sda1 ext4 /boot 3637ecaf-0f1f-49ca-****-************
/dev/sda2 ext4 / 617746af-df9e-4ab7-****-************
/dev/sda3 ext4 KYLIN-BACKUP (not mounted) 35a92c0a-bfbf-4fe6-****-************
/dev/sda4 ext4 数据盘 /data 476a5af9-f192-4578-****-************
/dev/sda5 swap [SWAP] 1043ec35-b969-4a8b-****-************
/dev/sda6 vfat /boot/efi 194D-****
/dev/sdb ext4 数据盘 /media/****/数据盘1 4f20f41e-62d1-4512-****-************
/dev/ram0 (not mounted)
/dev/ram1 (not mounted)
/dev/ram2 (not mounted)
/dev/ram3 (not mounted)
/dev/ram4 (not mounted)
/dev/ram5 (not mounted)
/dev/ram6 (not mounted)
/dev/ram7 (not mounted)
/dev/ram8 (not mounted)
/dev/ram9 (not mounted)
/dev/ram10 (not mounted)
/dev/ram11 (not mounted)
/dev/ram12 (not mounted)
/dev/ram13 (not mounted)
/dev/ram14 (not mounted)
/dev/ram15 (not mounted)
[purpleendurer @ kylin ~]

3.4 blkid -t TYPE=swap:显示文件系统为swap的块设备信息
[purpleendurer @ kylin ~] blkid -t TYPE=swap
/dev/sda5: UUID="1043ec35-b969-4a8b-****-************" TYPE="swap" PARTUUID="57003ffa-e59d-4ee2-****-************"
[purpleendurer @ kylin ~]

相关文章:
Linux shell编程学习笔记87:blkid命令——获取块设备信息
0 引言 在进行系统安全检测时,我们需要收集块设备的信息,这些可以通过blkid命令来获取。 1 blkid命令的安装 blkid命令是基于libblkid库的命令行工具,可以在大多数Linux发行版中使用。 如果你的Linux系统中没有安装blkid命令,…...
wireshark筛选条件整理
Wireshark筛选条件整理 一、MAC地址过滤二、IP地址过滤三、端口过滤四、协议筛选五、数据分析1、整体2、frame数据帧分析3、 Ethernet II 以太网4、IP协议5、TCP6、HTTP7、ARP8、DLEP动态链接交换协议 六、统计-协议分级(统计包占比) and && 、 …...
基于现代 C++17 的模块化视频质量诊断处理流程设计
文章目录 0. 引言1. 原始设计分析2. 新的设计思路2.1 定义通用的检测接口2.2 使用 std::function 和 std::any 管理检测模块2.3 构建可动态配置的检测管道 3. 示例实现3.1 定义检测接口和模块3.1.1 检测接口3.1.2 信号检测模块3.1.3 冻结检测模块3.1.4 其他检测模块 3.2 构建检…...
高级java每日一道面试题-2024年10月23日-JVM篇-说一下JVM有哪些垃圾回收算法?
如果有遗漏,评论区告诉我进行补充 面试官: 说一下JVM有哪些垃圾回收算法? 我回答: 在 Java 虚拟机 (JVM) 中,垃圾回收 (Garbage Collection, GC) 是一项非常重要的功能,用于自动管理应用程序的内存。JVM 采用多种垃圾回收算法来决定何时以及如何回收…...
高效文本编辑与导航:Vim中的三种基本模式及粘滞位的深度解析
✨✨ 欢迎大家来访Srlua的博文(づ ̄3 ̄)づ╭❤~✨✨ 🌟🌟 欢迎各位亲爱的读者,感谢你们抽出宝贵的时间来阅读我的文章。 我是Srlua小谢,在这里我会分享我的知识和经验。&am…...
w005基于Springboot学生心理咨询评估系统
🙊作者简介:拥有多年开发工作经验,分享技术代码帮助学生学习,独立完成自己的项目或者毕业设计。 代码可以私聊博主获取。🌹赠送计算机毕业设计600个选题excel文件,帮助大学选题。赠送开题报告模板ÿ…...
实战-任意文件下载
实战-任意文件下载 1、开局 开局一个弱口令,正常来讲我们一般是弱口令或者sql,或者未授权 那么这次运气比较好,直接弱口令进去了 直接访问看看有没有功能点,正常做测试我们一定要先找功能点 发现一个文件上传点,不…...
PG数据库之视图详解
1. 视图的基本定义 在PostgreSQL(简称pg)数据库中,视图(View)是一种虚拟表,其内容由SQL查询定义。视图并不实际存储数据,而是在每次查询时根据定义的查询语句动态生成结果。视图可以简化复杂的…...
时间序列预测(十五)——有关Python项目框架的实例分析
#1024程序员节|征文# 在之前的学习中,已经对时间序列预测的相关内容有了大致的了解。为了进一步加深理解,并能够将所学知识应用于实际中,我决定找一个完整的Python框架来进行深入学习。经过寻找,我终于找到了一篇非常具…...
ETL、ELT和反向ETL都有什么不同?怎么选择?
数据处理是现代企业中不可或缺的一部分。随着数据量的不断增长,如何高效地处理、转换和加载数据变得尤为重要。本文将介绍三种常见的数据处理方式:ETL、ELT和反向ETL,帮助读者更好地理解和选择适合自己业务需求的方式。 一、ETL 定义&#…...
linux 中文实用型手册 基于RHEL(红帽系)
硬件系统 Updated by wangjing on 2024-10-28 at 02:36:57 in Tongzhou District, Beijing. 硬件信息 机器型号 dmidecode | grep "Product Name"CPU型号 cat /proc/cpuinfo |grep "model name" | uniqWWWCPU详情 lscpuCPU个数 cat /proc/cpuinfo |grep &q…...
Hash表算法
哈希表 理论知识(本文来自于代码随想录摘抄)什么是哈希常见的三种哈希结数组:set:map:其他常用方法或者技巧(自己总结的) 练习题和讲解有效的字母移位词349. 两个数组的交集1. 两数之和454. 四数相加 II15. 三数之和 总…...
MySQL企业常见架构与调优经验分享
文章目录 一、选择 PerconaServer、MariaDB 还是 MYSQL二、常用的 MYSQL 调优策略三、MYSOL 常见的应用架构分享四、MYSOL 经典应用架构 观看学习课程的笔记,分享于此~ 课程:MySQL企业常见架构与调优经验分享 mysql官方优化文档 调优MySQL参数 一、选择 …...
C++引用类型变量
引用变量的主要用途是用作函数的形参。这样函数将使用原始数据,而不是副本。除指针之外,引用也为处理大型结构提供了一种非常方便的途径。 再C中使用&符号标识引用。也就是说C给&符号赋予了另一个含义,将其用来声明引用。 引用的声…...
《C++23 新特性:现代软件开发的变革力量》
在软件开发的快速演进中,C作为一种强大且广泛应用的编程语言,不断推陈出新以适应日益复杂的开发需求。C23 的到来,为现代软件开发带来了诸多新的机遇和挑战。它的新特性不仅影响着开发者的编程习惯,也在代码效率、可维护性以及软件…...
Educational Codeforces Round 88 E. Modular Stability
题目链接 Educational Codeforces Round 88 E. Modular Stability 思路 对于任意的非负整数 x x x,我们要满足 x % a % b x % b % a x \% a \% b x \% b \% a x%a%bx%b%a。因为 a < b a < b a<b,所以只有 b b b为 a a a的倍数时才满足条件…...
Android中SurfaceView与GLSurfaceView 的关系
SurfaceView 与 GLSurfaceView 的关系 在 Android 开发中,SurfaceView 和 GLSurfaceView 是实现自定义渲染效果的关键组件。它们提供了不同的渲染方式,适用于不同的应用场景。我们将通过以下几个方面详细说明 SurfaceView 和 GLSurfaceView 的特点及实现…...
numpy——数学运算
一、标量——矢量 import numpy as npa 3.14 b np.array([[9, 5], [2, 7]])print(a) print(b)# ---------- 四则运算 ---------- print(a b) # np.add print(a - b) # np.subtract print(a * b) # np.multiply print(a / b) # np.divide 二、矢量——矢量 import nump…...
【工具】Charles对360浏览器抓包抓包
Charles 和 switchy sharp 配合,可以对 Chrome 进行抓包也可以配合对360安全浏览器抓包。 本文以Windows 电脑中的配置为例,介绍如何实现抓包。(Mac中操作基本一致) 1.安装Charles 可根据自己的电脑下载对应的版本:…...
【HarmonyOS】判断应用是否已安装
【HarmonyOS】判断应用是否已安装 前言 在鸿蒙中判断应用是否已安全,只是通过包名是无法判断应用安装与否。在鸿蒙里新增了一种判断应用安装的工具方法,即:canOpenLink。 使用该工具函数的前提是,本应用配置了查询标签querySch…...
UE5 学习系列(二)用户操作界面及介绍
这篇博客是 UE5 学习系列博客的第二篇,在第一篇的基础上展开这篇内容。博客参考的 B 站视频资料和第一篇的链接如下: 【Note】:如果你已经完成安装等操作,可以只执行第一篇博客中 2. 新建一个空白游戏项目 章节操作,重…...
【Redis技术进阶之路】「原理分析系列开篇」分析客户端和服务端网络诵信交互实现(服务端执行命令请求的过程 - 初始化服务器)
服务端执行命令请求的过程 【专栏简介】【技术大纲】【专栏目标】【目标人群】1. Redis爱好者与社区成员2. 后端开发和系统架构师3. 计算机专业的本科生及研究生 初始化服务器1. 初始化服务器状态结构初始化RedisServer变量 2. 加载相关系统配置和用户配置参数定制化配置参数案…...
鸿蒙中用HarmonyOS SDK应用服务 HarmonyOS5开发一个医院挂号小程序
一、开发准备 环境搭建: 安装DevEco Studio 3.0或更高版本配置HarmonyOS SDK申请开发者账号 项目创建: File > New > Create Project > Application (选择"Empty Ability") 二、核心功能实现 1. 医院科室展示 /…...
2.Vue编写一个app
1.src中重要的组成 1.1main.ts // 引入createApp用于创建应用 import { createApp } from "vue"; // 引用App根组件 import App from ./App.vue;createApp(App).mount(#app)1.2 App.vue 其中要写三种标签 <template> <!--html--> </template>…...
【论文阅读28】-CNN-BiLSTM-Attention-(2024)
本文把滑坡位移序列拆开、筛优质因子,再用 CNN-BiLSTM-Attention 来动态预测每个子序列,最后重构出总位移,预测效果超越传统模型。 文章目录 1 引言2 方法2.1 位移时间序列加性模型2.2 变分模态分解 (VMD) 具体步骤2.3.1 样本熵(S…...
Element Plus 表单(el-form)中关于正整数输入的校验规则
目录 1 单个正整数输入1.1 模板1.2 校验规则 2 两个正整数输入(联动)2.1 模板2.2 校验规则2.3 CSS 1 单个正整数输入 1.1 模板 <el-formref"formRef":model"formData":rules"formRules"label-width"150px"…...
sipsak:SIP瑞士军刀!全参数详细教程!Kali Linux教程!
简介 sipsak 是一个面向会话初始协议 (SIP) 应用程序开发人员和管理员的小型命令行工具。它可以用于对 SIP 应用程序和设备进行一些简单的测试。 sipsak 是一款 SIP 压力和诊断实用程序。它通过 sip-uri 向服务器发送 SIP 请求,并检查收到的响应。它以以下模式之一…...
Xen Server服务器释放磁盘空间
disk.sh #!/bin/bashcd /run/sr-mount/e54f0646-ae11-0457-b64f-eba4673b824c # 全部虚拟机物理磁盘文件存储 a$(ls -l | awk {print $NF} | cut -d. -f1) # 使用中的虚拟机物理磁盘文件 b$(xe vm-disk-list --multiple | grep uuid | awk {print $NF})printf "%s\n"…...
安宝特案例丨Vuzix AR智能眼镜集成专业软件,助力卢森堡医院药房转型,赢得辉瑞创新奖
在Vuzix M400 AR智能眼镜的助力下,卢森堡罗伯特舒曼医院(the Robert Schuman Hospitals, HRS)凭借在无菌制剂生产流程中引入增强现实技术(AR)创新项目,荣获了2024年6月7日由卢森堡医院药剂师协会࿰…...
PHP 8.5 即将发布:管道操作符、强力调试
前不久,PHP宣布了即将在 2025 年 11 月 20 日 正式发布的 PHP 8.5!作为 PHP 语言的又一次重要迭代,PHP 8.5 承诺带来一系列旨在提升代码可读性、健壮性以及开发者效率的改进。而更令人兴奋的是,借助强大的本地开发环境 ServBay&am…...
