如何从 Linux 终端查看可用磁盘空间和磁盘使用情况如何从 Linux 终端查看可用磁盘空间和磁盘使用情况如何从 Linux 终端查看可用磁盘空间和磁盘使用情况如何从 Linux 终端查看可用磁盘空间和磁盘使用情况
  • 文章
  • 正则表达式
    • 工具
  • 登录
找到的结果: {phrase} (显示: {results_count} 共: {results_count_total})
显示: {results_count} 共: {results_count_total}

加载更多搜索结果...

搜索范围
模糊匹配
搜索标题
搜索内容
发表 admin at 2025年2月28日
类别
  • 未分类
标签

如何从 Linux 终端查看可用磁盘空间和磁盘使用情况

df 和 du 命令报告 Linux、macOS 和许多其他类 Unix 操作系统上使用的 Bash shell 中的磁盘空间使用情况。这些命令可让您轻松识别什么正在用尽系统的存储空间。

查看总磁盘空间、可用磁盘空间和已用磁盘空间

Bash 包含两个与磁盘空间相关的有用命令。要找出可用和已用磁盘空间,请使用 df(磁盘文件系统,有时称为无磁盘)。要发现什么占用了已用磁盘空间,请使用 du(磁盘使用情况)。

在 Bash 终端窗口中键入 df 并按回车键开始。你会看到很多类似于下面截图的输出。使用不带任何选项的 df 将显示所有已安装文件系统的可用空间和已用空间。乍一看,它可能看起来难以理解,但它很容易理解。

df

显示的每一行由六列组成。

  • Fileystem:此文件系统的名称。
  • 1K-Blocks:此文件系统上可用的 1K 块数。
  • 已用:已在此文件系统上使用的 1K 块数。
  • 可用:此文件系统上未使用的 1K 块数。
  • 使用百分比:此文件系统中使用的空间量,以百分比形式给出。
  • 文件:文件系统名称(如果在命令行中指定)。
  • 挂载于:文件系统的挂载点。

您可以使用 -B(块大小)选项将 1K 块计数替换为更有用的输出。要使用此选项,请键入 df, 一个空格,然后键入 -B 和 K、M、G、T、P、E、Z 或Y. 这些字母代表 kilo、mega、giga、tera、peta、exa、zeta 和 yotta 值,取自 1024 比例的倍数。

例如,要查看以兆字节为单位的磁盘使用情况,您可以使用以下命令。注意 B 和 M 之间没有空格。

df -BM

-h(人类可读)选项指示 df 对每个文件系统的大小使用最适用的单位。在下一个输出中,请注意有千兆字节、兆字节甚至千字节大小的文件系统。

df -h

如果您需要查看以 inode 数量表示的信息,请使用 -i(inodes)选项。 inode 是 Linux 文件系统用来描述文件和存储文件元数据的数据结构。在 Linux 上,inode 保存每个文件和目录的名称、修改日期、在硬盘上的位置等数据。这对大多数人没有用,但系统管理员有时必须参考此类信息。

df -i

除非被告知不要这样做,否则 df 将提供有关所有已安装文件系统的信息。这会导致大量输出的混乱显示。例如,列表中的 /dev/loop 条目是伪文件系统,允许将文件挂载为分区。如果您使用新的 Ubuntu snap 安装应用程序的方法,您可以获得很多这样的应用程序。这些上的可用空间将始终为 0,因为它们不是真正的文件系统,所以我们不需要看到它们。

我们可以告诉 df 排除特定类型的文件系统。为此,我们需要知道我们希望排除的文件系统类型。 -T(打印类型)选项将为我们提供该信息。它指示 df 在输出中包含文件系统的类型。

df -T

/dev/loop 条目都是 squashfs 文件系统。我们可以使用以下命令排除它们:

df -x squashfs

这为我们提供了更易于管理的输出。要获得总数,我们可以添加 --total 选项。

df -x squashfs --total

我们可以要求 df 只包含特定类型的文件系统,方法是使用 -t(类型)选项。

df -t ext4

如果我们想查看一组文件系统的大小,我们可以按名称指定它们。 Linux 中的驱动器名称是按字母顺序排列的。第一个驱动器称为 /dev/sda ,第二个驱动器称为 /dev/sdb ,依此类推。分区已编号。所以 /dev/sda1 是驱动器 /dev/sda 上的第一个分区。我们通过将文件系统的名称作为命令参数传递,告诉 df 返回有关特定文件系统的信息。我们来看第一个硬盘的第一个分区。

df /dev/sda1

请注意,您可以在文件系统名称中使用通配符,其中 * 代表任何一组字符,? 代表任何单个字符。所以要查看第一个驱动器上的所有分区,我们可以使用:

df /dev/sda*

我们可以要求 df 报告一组命名文件系统。他我们正在请求 /dev 和 /run 文件系统的大小,我们想要一个总数。

df -h --total /dev /run

为了进一步自定义显示,我们可以告诉 df 要包含哪些列。为此,请使用 --output 选项并提供所需列名称的逗号分隔列表。确保不要在逗号分隔列表中包含任何空格。

  • source:文件系统的名称。
  • fstype:文件系统的类型。
  • itotal:文件系统的大小(以 inode 为单位)。
  • 已用:在 inode 中文件系统上已用的空间。
  • iavail:文件系统中 inode 的可用空间。
  • ipcent:文件系统中 inode 中已用空间的百分比,以百分比表示。
  • 大小:文件系统的大小,默认为 1K 块。
  • 已用:文件系统上使用的空间,默认为 1K 块。
  • avail:文件系统上的可用空间,默认为 1K 块。
  • pcent:文件系统中 inode 中已用空间的百分比,默认情况下以 1K 块为单位。
  • 文件:文件系统名称(如果在命令行中指定)。
  • 目标:文件系统的挂载点。

让我们让 df 报告第一个驱动器上的第一个分区,其中包含人类可读的数字,以及列 source、fstype、size、used、avail 和 pcent:

df -h /dev/sda1 --output=source,fstype,size,used,avail,pcent

长命令是转换为别名的完美候选者。我们可以通过键入以下内容并按 Enter 来创建别名 dfc(用于 df custom):

alias dfc="df -h /dev/sda1 --output=source,fstype,size,used,avail,pcent"

键入 dfc 并按回车键与键入长命令具有相同的效果。要使此别名永久化,请将其添加到您的 .bashrc 或 .bash_aliases 文件中。

我们一直在寻找改进 df 输出的方法,以便它显示的信息符合您的要求。如果您想采用相反的方法并让 df 返回所有可能的信息,可以使用 -a (all) 选项和 --output选项如下所示。 -a(全部)选项要求 df 包含每个文件系统,并使用 --output 选项 without以逗号分隔的列列表导致 df 包含每一列。

df -a --output

将 df 的输出通过 less 命令进行管道传输是查看其可能产生的大量输出的便捷方式。

df -a --output | less

找出占用已用磁盘空间的内容

让我们做一些调查,找出什么占用了这台 PC 上的空间。我们将从我们的 df 命令之一开始。

df -h -t ext4

第一个硬盘驱动器的第一个分区使用了 78% 的磁盘空间。我们可以使用 du 命令来显示哪些文件夹保存的数据最多。发出不带任何选项的 du 命令将显示发出 du 命令的目录下的所有目录和子目录的列表。如果您从主文件夹执行此操作清单会很长。

du

输出格式非常简单。每行显示目录的大小和名称。默认情况下,大小以 1K 块显示。要强制 du 使用不同的块大小,请使用 -B(块大小)选项。要使用此选项,请键入 du、一个空格,然后是 -B 和 K、M、G、T、P、E、Z 和Y,正如我们在上面对 df 所做的那样。要使用 1M 块,请使用以下命令:

du -BM

就像 df 一样,du 有一个人类可读的选项 -h,它根据每个目录的大小使用一定范围的块大小.

du -h

-s(汇总)选项给出每个目录的总数,而不显示每个目录中的子目录。以下命令要求 du 以摘要格式返回当前工作目录下所有目录 (*) 的人类可读数字信息。

du -h -s *

到目前为止,图片文件夹包含最多的数据。我们可以要求 du 按大小从大到小对文件夹进行排序。

du -sm Pictures/* | sort -nr

通过细化 df 和 du 返回的信息,可以很容易地找出有多少硬盘空间正在使用,并发现占用该空间的内容。然后,您可以做出明智的决定,将一些数据移动到其他存储设备、向您的计算机添加另一个硬盘驱动器或删除冗余数据。

这些命令有很多选项。我们在这里描述了最有用的选项,但您可以在 Linux 手册页中查看 df 命令和 du 命令选项的完整列表。

Linux Commands
Files tar · pv · cat · tac · chmod · grep · diff · sed · ar · man · pushd · popd · fsck · testdisk · seq · fd · pandoc · cd · $PATH · awk · join · jq · fold · uniq · journalctl · tail · stat · ls · fstab · echo · less · chgrp · chown · rev · look · strings · type · rename · zip · unzip · mount · umount · install · fdisk · mkfs · rm · rmdir · rsync · df · gpg · vi · nano · mkdir · du · ln · patch · convert · rclone · shred · srm · scp · gzip · chattr · cut · find · umask · wc
Processes alias · screen · top · nice · renice · progress · strace · systemd · tmux · chsh · history · at · batch · free · which · dmesg · chfn · usermod · ps · chroot · xargs · tty · pinky · lsof · vmstat · timeout · wall · yes · kill · sleep · sudo · su · time · groupadd · usermod · groups · lshw · shutdown · reboot · halt · poweroff · passwd · lscpu · crontab · date · bg · fg · pidof · nohup · pmap
Networking netstat · ping · traceroute · ip · ss · whois · fail2ban · bmon · dig · finger · nmap · ftp · curl · wget · who · whoami · w · iptables · ssh-keygen · ufw · arping · firewalld

RELATED: Best Linux Laptops for Developers and Enthusiasts

©2015-2025 艾丽卡 support@alaica.com