如何查看linux系统的空间

在Linux系统中,管理磁盘空间是系统维护的重要环节,及时了解空间使用情况可避免因磁盘满载导致服务异常,本文将详细介绍多种查看Linux系统空间的方法,涵盖文件系统、目录、块设备及内存等维度的分析工具,并通过实例和表格帮助读者快速掌握操作技巧。

如何查看linux系统的空间

使用df命令查看文件系统磁盘使用情况

df(disk free)是Linux中最常用的磁盘空间查看命令,主要用于显示文件系统的整体磁盘使用量,包括已用空间、可用空间、使用率及挂载点等信息。

基本语法与常用选项

df [选项] [文件或目录]

常用选项包括:

  • -h--human-readable:以人类可读格式显示(如K、M、G);
  • -T--print-type:显示文件系统类型(如ext4、xfs、nfs等);
  • -i--inodes:显示inode使用情况而非块使用量;
  • -x--exclude-type:排除指定文件系统类型(如-x tmpfs忽略临时文件系统)。

示例输出与解读

执行df -hT后,输出示例如下:

Filesystem     Type      Size  Used Avail Use% Mounted on
/dev/sda1      ext4       50G   20G   28G  42% /
tmpfs          tmpfs      2G     0    2G   0% /dev/shm
/dev/sdb1      xfs        100G  35G   65G  35% /data

各列含义:

  • Filesystem:文件系统名称(如/dev/sda1为物理分区,tmpfs为内存虚拟文件系统);
  • Type:文件系统类型;
  • Size:总空间大小;
  • Used:已用空间;
  • Avail:可用空间;
  • Use%:使用率(超过80%需警惕);
  • Mounted on:挂载点(如根目录/、数据盘/data)。

特殊场景:查看inode使用情况

inode是Linux中用于存储文件元数据的结构,大量小文件可能耗尽inode导致磁盘“已满”,通过df -i可检查inode使用率:

df -i

若某分区Use%接近100%,需清理小文件或优化文件存储策略。

使用du命令分析目录/文件占用空间

du(disk usage)用于递归统计指定目录或文件的磁盘占用空间,适合定位具体的大文件或目录。

基本语法与常用选项

du [选项] [文件或目录]

常用选项:

  • -h:人类可读格式;
  • -s--summarize:仅显示总计大小,不递归子目录;
  • --max-depth=N:限制递归深度(如--max-depth=1仅统计一级子目录);
  • -a--all:统计所有文件,而不仅仅是目录。

示例与技巧

  1. 查看当前目录总大小

    du -sh

    输出示例:2G .(当前目录占用1.2GB)。

    如何查看linux系统的空间

  2. 查看指定目录下各子目录大小

    du -h --max-depth=1 /var/log

    输出示例:

    2G    /var/log/journal
    800M    /var/log/apt
    4.0K    /var/log/lost+found

    可快速定位占用空间最大的子目录(如journal目录)。

  3. 查找Top10大文件
    结合sorthead命令:

    du -ah /home | sort -hr | head -n 10

    -h按人类可读排序,-r降序,head -n 10显示前10条结果。

使用lsblk命令查看块设备信息

lsblk(list block devices)用于显示磁盘分区的结构信息,包括磁盘名称、大小、挂载点、文件系统类型等,适合了解物理磁盘与分区的对应关系。

基本语法与选项

lsblk [选项]

常用选项:

  • -f:显示文件系统信息(如UUID、Label);
  • -d:仅显示磁盘设备,不显示分区;
  • -o NAME,SIZE,FSTYPE,MOUNTPOINT:自定义输出列(设备名、大小、文件系统类型、挂载点)。

示例输出

执行lsblk -f后:

NAME   FSTYPE   MOUNTPOINT  SIZE RO
sda             256G  0
├─sda1  ext4     /          50G  0
├─sda2  swap     [SWAP]     8G   0
└─sda3  xfs      /data      198G 0
sdb             512G  0
└─sdb1  ext4     /backup    512G 0
  • NAME:设备名(sda/sdb为磁盘,sda1/sdb1为分区);
  • FSTYPE:文件系统类型(无值表示未格式化);
  • MOUNTPOINT:挂载点([SWAP]表示交换分区)。

使用free命令查看内存与交换空间使用情况

虽然free主要用于内存监控,但交换空间(swap)作为磁盘空间的特殊用途,也属于系统空间管理的一部分。

基本语法与选项

free [选项]

常用选项:

如何查看linux系统的空间

  • -h:人类可读格式;
  • -m:以MB为单位显示;
  • -s N:每N秒刷新一次(如free -s 3每3秒更新)。

示例输出

free -h
              total        used        free      shared  buff/cache   available
Mem:          7.7G        2.1G        4.3G        256M        1.3G        5.2G
Swap:         2.0G          0B        2.0G
  • Mem:物理内存(total总内存,used已用,free空闲,buff/cache缓存);
  • Swap:交换空间(当物理内存不足时,部分数据临时写入磁盘)。

使用ncdu工具交互式分析磁盘空间

ncdu(NCurses Disk Usage)是一个交互式磁盘分析工具,支持通过键盘导航、删除文件,比du更直观,适合快速定位和清理大文件。

安装与使用

  1. 安装(以Ubuntu为例):

    sudo apt install ncdu
  2. 扫描目录

    ncdu /var/log

    进入交互界面后,通过上下键选择目录,按Enter进入子目录,按d删除文件(需确认),按q退出。

  3. 查看结果
    界面显示目录大小、占用百分比,并按大小排序,便于快速定位“空间大户”。

各命令适用场景对比

命令 主要用途 适用场景 常用选项
df 查看文件系统整体使用情况 监控磁盘使用率、排查空间不足 -h, -T, -i
du 统计目录/文件具体占用空间 定位大文件、清理冗余数据 -sh, --max-depth, -a
lsblk 查看块设备与分区结构 了解磁盘布局、挂载关系 -f, -d, -o
free 查看内存与交换空间使用情况 内存管理、swap空间规划 -h, -m, -s
ncdu 交互式磁盘空间分析 可视化定位大文件、快速清理 无(直接接目录路径)

相关问答FAQs

Q1:为什么df显示的已用空间和du汇总的目录大小不一致?
A:主要有以下原因:

  1. 保留块(Reserved Blocks):文件系统会为root用户预留一定比例的空间(如5%),df的已用空间包含这部分,而du仅统计普通用户占用的空间;
  2. 挂载点重叠:若子目录被单独挂载(如/home挂载到独立分区),du /会统计/home的总大小,但df中和/home是两个独立的文件系统;
  3. 文件状态du统计时,若文件正在被写入或删除,可能因缓存延迟导致统计偏差;
  4. inode占用:若inode耗尽,df会显示空间已满,但du可能统计不到具体文件(因文件无法创建)。

Q2:如何自动清理不必要的文件释放空间?
A:可通过以下脚本定期清理常见冗余文件:

#!/bin/bash
# 清理日志文件(保留最近7天)
find /var/log -type f -name "*.log" -mtime +7 -exec rm -f {} ;
# 清理包管理器缓存(apt/yum)
command -v apt >/dev/null && sudo apt clean
command -v yum >/dev/null && sudo yum clean all
# 清理临时文件(/tmp中超过30天未访问)
find /tmp -type f -atime +30 -exec rm -f {} ;
echo "清理完成"

将脚本保存为clean_space.sh,添加执行权限(chmod +x clean_space.sh),并通过crontab -e设置定时任务(如每月1日执行:0 0 1 * * /path/to/clean_space.sh)。

原创文章,发布者:酷番叔,转转请注明出处:https://cloud.kd.cn/ask/16774.html

(0)
酷番叔酷番叔
上一篇 4小时前
下一篇 3小时前

相关推荐

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

联系我们

400-880-8834

在线咨询: QQ交谈

邮件:HI@E.KD.CN

关注微信