每日一个Linux命令解析——lsblk(linux ls-l命令详解)
lsblk:lsblk 是 Linux 系统中用于显示块设备信息的命令。块设备包括硬盘、光驱、U 盘等。该命令输出块设备的层次结构以及它们的分区和挂载信息,帮助管理员了解系统中各设备的使用情况。
一、语法
lsblk [options] [<device> ...]
二、选项
- -D, --discard:打印丢弃功能信息
- -E, --dedup <column>:按指定的 <column> 列去重输出
- -I, --include <list>:仅显示具有指定主设备号的设备
- -J, --json:以 JSON 格式输出
- -O, --output-all:输出所有列
- -P, --pairs:使用键值对 key="value" 的输出格式
- -S, --scsi:输出 SCSI 设备信息
- -T, --tree[=<column>]:以树状格式输出
- -a, --all:显示所有设备
- -b, --bytes:以字节为单位打印大小,而不是可读格式
- -d, --nodeps:不显示从属设备或持有设备
- -e, --exclude <list>:排除指定主设备号的设备(默认:RAM 磁盘)
- -f, --fs:输出文件系统信息
- -i, --ascii:仅使用 ASCII 字符
- -l, --list:以列表格式输出
- -M, --merge:将子树的父设备分组(适用于 RAID、Multi-path)
- -m, --perms:输出权限信息
- -n, --noheadings:不输出列标题
- -o, --output <list>:指定输出列
- -p, --paths:打印完整的设备路径
- -r, --raw:使用原始输出格式
- -s, --inverse:逆向显示依赖关系
- -t, --topology:输出拓扑信息
- -w, --width <num>:指定输出宽度(字符数)
- -x, --sort <column>:按指定 <column> 列排序
- -z, --zoned:打印分区模型
- --sysroot <dir>:使用指定的目录作为系统根目录
- -h, --help:显示帮助信息
- -V, --version:显示版本信息
三、可用的输出列:
- NAME:设备名称
- KNAME:内核设备名称
- PATH:设备节点的路径
- MAJ:MIN:主设备号:次设备号
- FSAVAIL:文件系统可用空间
- FSSIZE:文件系统总大小
- FSTYPE:文件系统类型
- FSUSED:文件系统已用空间
- FSUSE%:文件系统使用百分比
- FSROOTS:已挂载的文件系统根目录
- FSVER:文件系统版本
- MOUNTPOINT:设备挂载点
- MOUNTPOINTS:设备挂载的所有位置
- LABEL:文件系统标签
- UUID:文件系统 UUID
- PTUUID:分区表标识符(通常为 UUID)
- PTTYPE:分区表类型
- PARTTYPE:分区类型代码或 UUID
- PARTTYPENAME:分区类型名称
- PARTLABEL:分区标签
- PARTUUID:分区 UUID
- PARTFLAGS:分区标志
- RA:设备的预读大小
- RO:只读设备
- RM:可移动设备
- HOTPLUG:可移除或热插拔设备(USB、PCMCIA 等)
- MODEL:设备型号
- SERIAL:磁盘序列号
- SIZE:设备大小
- STATE:设备状态
- OWNER:所有者用户名
- GROUP:所属组名
- MODE:设备节点的权限
- ALIGNMENT:对齐偏移
- MIN-IO:最小 I/O 大小
- OPT-IO:最优 I/O 大小
- PHY-SEC:物理扇区大小
- LOG-SEC:逻辑扇区大小
- ROTA:旋转设备
- SCHED:I/O 调度程序名称
- RQ-SIZE:请求队列大小
- TYPE:设备类型
- DISC-ALN:丢弃对齐偏移
- DISC-GRAN:丢弃粒度
- DISC-MAX:最大丢弃字节数
- DISC-ZERO:丢弃数据是否归零
- WSAME:写入相同最大字节数
- WWN:唯一存储标识符
- RAND:增加随机性
- PKNAME:内核父设备名称
- HCTL:SCSI 的主机:通道:目标:LUN
- TRAN:设备传输类型
- SUBSYSTEMS:去重的子系统链
- REV:设备修订版
- VENDOR:设备供应商
- ZONED:分区模型
- DAX:支持 DAX 的设备
四、示例
显示所有块设备信息:lsblk
显示设备挂载情况:lsblk -f
以树状显示设备层次结构:lsblk -t
显示详细设备信息:lsblk -o NAME,MAJ:MIN,RM,SIZE,RO,TYPE,MOUNTPOINT
以 JSON 格式输出:lsblk -J
五、注意
- lsblk会列出很多loop设备,Loop 设备 (loop):这是 Linux 中的一种虚拟设备,用于将文件当作块设备使用。通常用于挂载磁盘镜像文件或类似的文件系统。Snap:Snap 是一种软件包管理工具,它可以让应用程序及其依赖项封装在一起,并在不同的 Linux 发行版上独立运行。Snap 包中的应用程序是以一种隔离的方式运行的。
- 这个设备目前使用率较小,可以选择删除。使用apt autoremove --purge snapd -y删除会清爽很多。
- 硬盘持久化挂载时可以使用分区名称也可以使用UUID,推荐使用UUID,这时候可以赢blkid或lsblk来查看UUID。