lsblk
针对lsblk(list block devices)命令,这里为你总结一个面向实操的精简指南。
核心用法
lsblk 用于列出系统中所有可用的或指定的块设备(如硬盘、分区)信息,默认以树状结构展示。它从 sysfs 文件系统读取数据,非常高效。
最常用选项速查
日常查看
lsblk:显示所有设备(树状,不含空设备)。lsblk -a:显示所有设备,包括空设备和内存盘。lsblk -f:显示文件系统信息(类型、标签、UUID、挂载点等),非常常用。lsblk -m:显示权限信息(属主、组、模式)。lsblk -t:显示磁盘拓扑信息(调度器、扇区大小等)。
脚本与格式化
lsblk -l:以列表格式输出,无树状关系。lsblk -o +UUID:指定输出列。加号+在默认列基础上追加,也可直接指定列表。lsblk -J:以 JSON 格式输出,便于脚本处理。lsblk -P:输出键="值"对。lsblk -n:不打印表头。lsblk -b:大小以字节为单位。
设备筛选
lsblk -e 7,11:排除主设备号为 7 和 11 的设备(如 loop 和 sr0)。lsblk -d /dev/sda:只显示sda设备本身,不显示其分区等依赖项。lsblk --filter 'TYPE=="part"':仅显示分区类型的设备。lsblk --filter 'MOUNTPOINT!=""':仅显示已挂载的设备。
其他
lsblk -p:显示完整的设备路径。lsblk --sort SIZE:按指定列排序(自动启用列表格式)。
实用示例组合
# 查看所有设备的文件系统信息,以列表形式,带完整路径
lsblk -flp
# 查看指定磁盘 sda 的拓扑结构和分区表
lsblk -t /dev/sda
# 为脚本生成简洁的已挂载分区信息(名称和挂载点)
lsblk -lno NAME,MOUNTPOINT
# 使用 JSON 输出,筛选出符合条件的分区
lsblk -J --filter 'TYPE=="part" && FSTYPE=="ext4"'
提示:在脚本中使用时,为避免默认输出格式变化带来的问题,请始终通过
-o明确指定所需列,并使用-l或-r固定格式。如果遇到设备信息不全,可先执行udevadm settle。