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 default
               cache 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 default
               cache 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的缩写,可以用来显示系统里所有可用块设备的信息。这些信息包括:

  1. 设备名称
  2. UUID:文件系统的通用唯一识别码(Universally Unique Identifier)
  3. TYPE:文件系统类型
  4. LABEL:设备标签
  5.  PARTUUID:分区UUID(Universally Unique Identifier)
  6. PARTLABEL:分区标签
  7. SEC_TYPE:安全文件系统类型
  8. ……

2.3  blkid命令格式

 blkid [选项] [设备名]

2.4 blkid命令选项说明

2.4.1 常规选项 

选项说明
-c <file>读取<file>而不是从默认缓存文件中读取(-c /dev/null 表示没有缓存)
-d不对非打印字符进行编码
-h打印用法消息并退出
-g垃圾回收 BLKID 缓存
-o <format>

输出格式。可以是以下之一:

  1. value
  2. device
  3. export
  4. full

默认值: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个块设备。

设备名称如下:

  1. /dev/sda1
  2. /dev/sda2
  3. /dev/sda3
  4. /dev/sda4
  5. /dev/sda5
  6. /dev/sda6
  7. /dev/sdb

文件系统类型有:

  1. ext4
  2. swap
  3. 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 ~] 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/904057.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

华为手机卸载系统应用的方法

摘要&#xff1a; 1.手机环境&#xff1a;手机需要开启开发者模式并使用usb连接电脑&#xff0c;并选择文件传输模式 2.电脑环境&#xff1a;使用鸿蒙工具箱进行傻瓜操作或安装adb工具进行命令卸载 3.鸿蒙工具箱和adb工具本质都是使用adb shell pm uninstall -k --user 0 xx…

聊聊我在新加坡的近况

我是 2022 年 4 月初过来新加坡的&#xff0c;然后两个月后就把老婆孩子们也接了过来。时至今日&#xff0c;已经两年半有余了。 22 年 8 月初的时候&#xff0c;写过一篇文章「聊聊我在新加坡的生活和工作体验」&#xff0c;没想到成了一篇热门文章&#xff0c;在知乎上不知不…

C语言笔记(指针题目)例题+图解

本文分为两部分 &#xff0c;第一部分为数组、字符串、字符指针在sizeof和strlen中的辨析&#xff0c;第二部分是一些笔试题目。若有错误&#xff0c;请批评指正。 目录 1.第一部分 1.1.数组名的使用 1.1.1一维整型数组在sizeof中的使用 1.1.2一维字符数组在sizeof中的使用…

ADC开启

ADC性能参数&#xff1a; 1.分辨率 用LSB表示&#xff1a; LSBVref/2^N 2.失调误差 3.增益误差 4.微分非线性误差 微分非线性&#xff1a;指的是数字输出每增加“1”时&#xff0c;输出模拟量的变化值与LSB的差距。 DNL &#xff08;2.2-1&#xff09;LSB 1.2LSB 5.积分非…

深度学习案例:带有一个隐藏层的平面数据分类

该案例来自吴恩达深度学习系列课程一《神经网络和深度学习》第三周编程作业&#xff0c;作业内容是设计带有一个隐藏层的平面数据分类。作业提供的资料包括测试实例&#xff08;testCases.py&#xff09;和任务功能包&#xff08;planar_utils.py&#xff09;&#xff0c;下载请…

学习threejs,使用粒子实现下雪特效

&#x1f468;‍⚕️ 主页&#xff1a; gis分享者 &#x1f468;‍⚕️ 感谢各位大佬 点赞&#x1f44d; 收藏⭐ 留言&#x1f4dd; 加关注✅! &#x1f468;‍⚕️ 收录于专栏&#xff1a;threejs gis工程师 文章目录 一、&#x1f340;前言1.1 ☘️THREE.Points简介1.11 ☘️…

在Excel中如何快速筛选非特定颜色

Excel中的自动筛选是个非常强大的工具&#xff0c;不仅可以筛选内容&#xff0c;而且可以筛选颜色&#xff0c;例如筛选A列红色单元格。但是有时希望筛选除了红色之外的单元格&#xff08;下图右侧所示&#xff09;&#xff0c;其他单元格的填充色不固定&#xff0c;有几种颜色…

llama.cpp基础知识与原理导读

llama.cpp 是一个轻量化的 C++ 实现,专注于 Meta 的 LLaMA 模型的推理和部署。该项目致力于在不依赖庞大的深度学习框架(如 PyTorch、TensorFlow 等)的情况下,实现对 LLaMA 模型的高效运行,特别是在资源受限的设备上(如个人电脑和手机)。以下是 llama.cpp 的主要工作原理…

【Android14 ShellTransitions】(八)播放动画

书接上回&#xff0c;话说当WMCore部分走到了Transition.onTransactionReady&#xff0c;计算完参与动画的目标&#xff0c;构建出TransitionInfo后&#xff0c;接下来就把这个包含了动画参与者的TransitionInfo发给了WMShell&#xff0c;然后就该播放动画了&#xff0c;这部分…

ELK + Filebeat + Spring Boot:日志分析入门与实践(二)

目录 一、环境 1.1 ELKF环境 1.2 版本 1.3 流程 二、Filebeat安装 2.1 安装 2.2 新增配置采集日志 三、logstash 配置 3.1 配置输出日志到es 3.2 Grok 日志格式解析 3.2 启动 logstash ​3.3 启动项目查看索引 一、环境 1.1 ELKF环境 springboot项目&#xff1a;w…

C#实现word和pdf格式互转

1、word转pdf 使用nuget&#xff1a; Microsoft.Office.Interop.Word winform页面&#xff1a; 后端代码&#xff1a; //using Spire.Doc; //using Spire.Pdf; using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using Sy…

成都睿明智科技有限公司抖音电商服务的领航者

在这个短视频风起云涌的时代&#xff0c;抖音电商以其独特的魅力迅速崛起&#xff0c;成为无数商家争夺流量与销量的新战场。在这片红海之中&#xff0c;如何脱颖而出&#xff0c;实现销售额的飞跃&#xff1f;今天&#xff0c;就让我们一同走进成都睿明智科技有限公司&#xf…

力扣hot100-->递归/回溯

目录 递归/回溯 1. 17. 电话号码的字母组合 2. 22. 括号生成 3. 39. 组合总和 4. 46. 全排列 5. 78. 子集 递归/回溯 1. 17. 电话号码的字母组合 中等 给定一个仅包含数字 2-9 的字符串&#xff0c;返回所有它能表示的字母组合。答案可以按 任意顺序 返回。 给出数字到…

快速遍历包含合并单元格的Word表格

Word中的合并表格如下&#xff0c;现在需要根据子类&#xff08;例如&#xff1a;果汁&#xff09;查找对应的品类&#xff0c;如果这是Excel表格&#xff0c;那么即使包含合并单元格&#xff0c;也很容易处理&#xff0c;但是使用Word VBA进行查找&#xff0c;就需要一些技巧。…

js 获取当前时间与前一个月时间

// 获取当前时间的毫秒数 var currentTimeMillis new Date().getTime();// 获取前一个月的Date对象 var dateLastMonth new Date(); dateLastMonth.setMonth(dateLastMonth.getMonth() - 1);// 获取前一个月的毫秒数 var timeMillisLastMonth dateLastMonth.getTime();conso…

C++之多态的深度剖析

目录 前言 1.多态的概念 2.多态的定义及实现 2.1多态的构成条件 2.1.1重要条件 2.1.2 虚函数 2.1.3 虚函数的重写/覆盖 2.1.4 选择题 2.1.5 虚函数其他知识 协变&#xff08;了解&#xff09; 析构函数的重写 override 和 final关键字 3. 重载&#xff0c;重写&…

【linux网络编程】| socket套接字 | 实现UDP协议聊天室

前言&#xff1a;本节内容将带友友们实现一个UDP协议的聊天室。 主要原理是客户端发送数据给服务端。 服务端将数据再转发给所有链接服务端的客户端。 所以&#xff0c; 我们主要就是要实现客户端以及服务端的逻辑代码。 那么&#xff0c; 接下来开始我们的学习吧。 ps:本节内容…

【PTA】4-2 树的同构【数据结构】

给定两棵树 T1​ 和 T2​。如果 T1​ 可以通过若干次左右孩子互换就变成 T2​&#xff0c;则我们称两棵树是“同构”的。例如图1给出的两棵树就是同构的&#xff0c;因为我们把其中一棵树的结点A、B、G的左右孩子互换后&#xff0c;就得到另外一棵树。而图2就不是同构的。 图一…

「Mac畅玩鸿蒙与硬件13」鸿蒙UI组件篇3 - TextInput 组件获取用户输入

在鸿蒙应用开发中,TextInput 组件用于接收用户输入,适用于文本、密码等多种输入类型。本文详细介绍鸿蒙 TextInput 组件的使用方法,包括输入限制、样式设置、事件监听及搜索框应用,帮助你灵活处理鸿蒙应用中的用户输入。 关键词 TextInput 组件用户输入输入限制事件监听搜索…

单元测试详解

&#x1f345; 点击文末小卡片 &#xff0c;免费获取软件测试全套资料&#xff0c;资料在手&#xff0c;涨薪更快 为什么需要单元测试&#xff1f; 从产品角度而言&#xff0c;常规的功能测试、系统测试都是站在产品局部或全局功能进行测试&#xff0c;能够很好地与用户的需…