上一篇
linux下如何查看存储
- Linux
- 2025-07-27
- 4
nux下查看存储可用
df -h
、
du -sh /path
、
lsblk
或
fdisk -l
等命令
Linux系统中,查看存储信息是一项基础且重要的任务,它帮助用户了解磁盘空间的使用情况、分区布局以及设备状态,以下是详细的操作指南和常用命令解析:
核心命令详解
df
——统计文件系统级容量
- 功能:显示已挂载的文件系统的总容量、可用空间及挂载点,支持通过不同选项过滤或调整输出格式。
df -h
以人类可读的单位(如GB/MB)展示数据,适合快速浏览;df -T
额外显示文件系统类型(ext4, xfs等);df -a
包含特殊设备如tmpfs的临时文件系统信息。 - 典型输出示例:执行
df -h
后,可能看到类似如下结果:
|文件系统|容量|已用|可用|已用百分比|挂载点|
|—|—|—|—|—|—|
|/dev/sda2 |462G|350G|112G |76% |/ |
|/dev/sda1 |200M|50M |150M |25% |/boot/efi | - 适用场景:快速评估整体存储余量,定位占满的分区,若发现根目录(/)使用率过高,需进一步用
du
排查具体目录。
du
——递归计算目录占用空间
- 功能:深度统计指定路径下所有子目录和文件的总大小,常用参数包括
-h
(人性化单位)、-s
(仅显示总和)、--max-depth=1
(限制层级避免过于琐碎)。du -sh /home/
可列出家目录下各用户的存储消耗排名。 - 实战技巧:结合排序工具高效定位大文件:
du -ah /var/log | sort -nr | head -10
能找出日志中最大的前10个条目,此方法常用于清理老旧日志释放空间。
lsblk
——可视化块设备拓扑结构
- 功能:以树状结构呈现物理磁盘、逻辑卷与分区的关系,并标注设备名、大小、挂载点等元数据,无参数直接运行即可获取概览;添加
-f
显示文件系统类型,对多路径映射场景特别有用。 - 典型输出片段:
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT sda 8:0 0 465.8G 0 disk ├─sda1 8:1 0 200M 0 part /boot/efi ├─sda2 8:2 0 462.6G 0 part / └─sda3 8:3 0 3.4G 0 part [SWAP]
- 优势:直观展示LVM卷管理下的复杂结构,比传统文本列表更易理解存储架构。
fdisk
与parted
——底层分区管理双雄
- fdisk:传统MBR分区表工具,适用于兼容性要求高的场景,执行
fdisk -l /dev/sda
列出该盘的所有主/扩展分区及起始扇区位置,注意其不支持GPT格式磁盘。 - parted:现代化替代品,支持GPT、RAID等多种特性,如
sudo parted /dev/sdb print
不仅显示分区尺寸,还能识别文件系统标签(如swap、raid),两者互补覆盖绝大多数分区查看需求。
mount
&/proc/mounts
——动态挂载监控
- 实时性:前者显示当前活动的挂载配置(含手动临时挂载),后者读取内核维护的只读快照,对比两者差异有助于排查umount失败导致的残留条目问题。
- 安全提示:修改
/etc/fstab
后务必先用mount -v
测试验证,再重启生效,错误配置可能导致系统无法启动。
辅助工具扩展能力边界
blkid
——UUID精准识别
- 当需要自动化脚本处理设备标识时,
blkid
提供的全局唯一ID比设备节点路径更可靠,云服务器环境中通过UUID而非/dev/sda1
来定义启动盘,避免硬件变更导致的路径漂移问题。
lshw
——硬件级详细信息采集
- 运行
lshw -class disk
可获取厂商型号、序列号等物理特性数据,这对硬件维保和资产审计非常重要,相比纯软件层面的统计,它能揭示SSD剩余寿命预测等高级指标。
lsof
——打开文件关联分析
- 某些情况下进程持续写入隐藏文件造成空间泄漏,此时
lsof +L1
结合正则表达式过滤,可定位到具体哪个进程持有被删除但未释放的句柄。
典型工作流建议
在实际运维中,推荐采用分阶段诊断策略:先用df -h
锁定紧张的分区 → 对该分区执行du -x --max-depth=3 /path | sort -hr
定位热点目录 → 如果涉及大量小文件,改用find /path -type f -exec ls -l {} + | sort -k7nr
量化分布情况 → 最后用lsblk
确认是否因快照或分层存储导致实际可用空间小于预期,这种由宏观到微观的方式能高效解决问题。
FAQs
Q1:为什么执行df命令后看到的空间总和小于实际硬盘标称容量?
A: 这是由于两部分因素导致的正常现象:①厂商按十进制(1GB=10^9字节)计算容量,而Linux使用二进制(1GiB=2^30字节)进行报告;②部分预留空间用于坏道屏蔽和紧急恢复用途,并未完全开放给用户使用,例如一块标注500GB的机械硬盘,在系统中通常显示约465GB可用空间。
Q2:如何安全删除由du定位的大文件夹而不损坏系统?
A: 遵循三步骤原则:①确认路径不在关键目录(如/etc, /var);②先移动至临时位置观察影响:mv suspect_dir /tmp/backup_$(date +%Y%m%d)
;③确认无误后彻底清除:rm -rf /tmp/backup_
,对于包含活跃进程的文件,应先终止相关