zzxworld

Linux 查看磁盘空间大小和使用情况的命令

Linux 查看磁盘空间大小和使用情况的命令

在 Windows 系统上可以直观的通过查看盘符来了解系统的磁盘空间大小和而使用情况。Linux 上可以通过各种命令来满足类似的需求。本文就总结了几个类似的常用命令。

fdisk

fdisk 本身是 Linux 下的一个磁盘分区工具。通过它的 -l 命令选项,可以了解系统硬盘的分区和格式信息。命令使用方式如下:

sudo fdisk -l

如果使用的是 root 账号,sudo 不是必须的。

这个命令的输出示例如下:

zzxworld@debian:~$ sudo fdisk -l
Disk /dev/sda: 20 GiB, 21474836480 bytes, 41943040 sectors
Disk model: VBOX HARDDISK
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: dos
Disk identifier: 0x5eb6d65a

Device     Boot    Start      End  Sectors  Size Id Type
/dev/sda1  *        2048 39942143 39940096   19G 83 Linux
/dev/sda2       39944190 41940991  1996802  975M  5 Extended
/dev/sda5       39944192 41940991  1996800  975M 82 Linux swap / Solaris

lsblk

lsblk 命令用来列出可用的「块」设备信息。这包括了硬盘,闪存等存储设备。使用它不需要提供任何选项:

lsblk

这个命令的输出示例如下:

zzxworld@debian:~$ lsblk
NAME   MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT
sda      8:0    0   20G  0 disk
├─sda1   8:1    0   19G  0 part /
├─sda2   8:2    0    1K  0 part
└─sda5   8:5    0  975M  0 part [SWAP]
sr0     11:0    1 1024M  0 rom

它在 NAME 字段中提供了分区的从属关系。MOUNTPOINT 中提供了挂载信息。

df

df 命令是 Disk free 的缩写,用来查看磁盘的空间信息。它的使用方式如下:

df -hl

命令的输出示例如下:

zzxworld@debian:~$ df -hl
Filesystem      Size  Used Avail  Use% Mounted on
udev            976M     0  976M    0% /dev
tmpfs           199M  520K  198M    1% /run
/dev/sda1        19G  2.3G   16G   13% /
tmpfs           992M     0  992M    0% /dev/shm
tmpfs           5.0M     0  5.0M    0% /run/lock
tmpfs           199M     0  199M    0% /run/user/1000

各字段的解释如下:

字段英文 字段中文
Filesystem 文件系统
Size 容量
Used 已用
Avail 可用
Use% 已用百分比
Mounted on 挂载点

blockdev

blockdev 是一个区块设备控制命令,使用它的 --report 选项也可以查看磁盘信息。命令的使用方式如下:

sudo blockdev --report

以下是输出示例:

zzxworld@debian:~$ sudo blockdev --report
RO    RA   SSZ   BSZ   StartSec            Size   Device
rw   256   512  4096          0     21474836480   /dev/sda
rw   256   512  4096       2048     20449329152   /dev/sda1
rw   256   512  1024   39944190            1024   /dev/sda2
rw   256   512  4096   39944192      1022361600   /dev/sda5
rw   256   512   512          0      1073741312   /dev/sr0

du

du 命令严格意义上来说并不能查看磁盘信息,不过它能作为以上磁盘工具命令的补充。在需要深入了解某个分区文件系统下具体的文件大小时,这个命令能提供很好的帮助。

比如要了解 /var 目录的大小:

zzxworld@debian:~$ sudo du -hs /var
834M    /var

可以看到,我当前系统中的 /var 目录占用了有 834M 的空间。除了查看目录的总占用空间,还可以查看其子目录和文件的具体大小:

❯ sudo du -hs /var/*
[sudo] password for zzxworld: 
7.6G    /var/cache
24K     /var/db
4.0K    /var/empty
4.0K    /var/games
4.8G    /var/lib
4.0K    /var/local
0       /var/lock
2.0G    /var/log
0       /var/mail
16K     /var/named
4.0K    /var/opt
0       /var/run
8.0K    /var/spool
116K    /var/tmp

使用建议

上面虽然列出了好几个可以查看磁盘信息的命令,但大多数时候,我们只需要使用 df 搭配 du 命令即可。df 用来了解整体的磁盘分区和使用情况;du 来跟进细节即可。