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

时间:2020-01-09 10:39:57  来源:igfitidea点击:

df和du命令从Linux,macOS和许多其他类似Unix的操作系统使用的Bash shell中报告磁盘空间使用情况。这些命令使我们可以轻松地确定正在用尽系统存储空间的内容。

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

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

输入df并在Bash终端窗口中按Enter开始。我们会看到很多类似于以下屏幕截图的输出。不带任何选项使用df将显示所有已挂载文件系统的可用空间和已用空间。乍一看,它看起来似乎很坚不可摧,但是它很容易理解。

df

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

  • Fileystem:此文件系统的名称。

  • 1K块:此文件系统上可用的1K块数。

  • 已使用:此文件系统上已使用的1K块数。

  • 可用:此文件系统上未使用的1K块数。

  • 使用百分比:此文件系统中使用的空间量(以百分比表示)。

  • File:文件系统名称,如果在命令行上指定。

  • 挂载于:文件系统的挂载点。

我们可以使用-B(块大小)选项,用更有用的输出替换1K块计数。要使用此选项,请键入" df",一个空格,然后键入-B和K,M,G,T,P,E,Z或者Y列表中的字母。这些字母代表千克,兆, giga,tera,peta,exa,zeta和yotta值(以1024为单位)。

例如,要查看磁盘使用率(以兆字节为单位),请使用以下命令。请注意,B和M之间没有空格。

df -BM

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

df -h

如果我们需要查看以inode数量表示的信息,请使用-i(inodes)选项。索引节点是Linux文件系统用于描述文件和存储有关它们的元数据的数据结构。在Linux上,索引节点保存每个文件和目录的数据,例如名称,修改日期,硬盘驱动器上的位置等。这对大多数人都不会有用,但是系统管理员有时必须引用此类信息。

df -i

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

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

df -T

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

df -x squashfs

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

df -x squashfs --total

通过使用-t选项,我们可以要求df仅包括特定类型的文件系统。

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选项,并提供以逗号分隔的所需列名列表。确保不要在逗号分隔的列表中包含任何空格。

  • 来源:文件系统的名称。

  • fstype:文件系统的类型。

  • itotal:文件系统的大小,以inode为单位。

  • iused:inode中文件系统上使用的空间。

  • iavail:文件系统上inode中的可用空间。

  • ipcent:文件系统上已用空间的百分比(以inode为单位)。

  • size:文件系统的大小,默认为1K块。

  • used:文件系统上使用的空间,默认为1K块。

  • avail:文件系统上的可用空间,默认为1K块。

  • pcent:文件系统上已用空间的百分比,以inode为单位,默认情况下为1K块。

  • file:文件系统名称(如果在命令行上指定)。

  • 目标:文件系统的安装点。

让我们让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并按Enter键与输入long命令具有相同的效果。要使该别名成为永久别名,请将其添加到.bashrc或者.bash_aliases文件中。

我们一直在寻找方法来改进df的输出,以使其显示的信息符合要求。如果我们想采取相反的方法并让'df'返回所有信息,则可以使用-a(all)选项和--output选项,如下所示。 -a(all)选项要求df'包含每个文件系统,并且使用--output选项而不用逗号分隔的列列表会导致df`包含每个列。

df -a --output

通过less命令从df输出输出是检查此输出可能产生的大量输出的便捷方法。

df -a --output | less

找出占用磁盘空间的内容

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

df -h -t ext4

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

du

输出格式非常简单。每行显示目录的大小和名称。默认情况下,大小以1K块显示。要强制" du"使用其他块大小,请使用" -B"(块大小)选项。要使用此选项,请像上面对df所做的那样,键入" du",一个空格,然后键入" -B"以及K,M,G,T,P,E,Z和Y列表中的字母。 。要使用1M块,请使用以下命令:

du -BM

就像df一样,du拥有人类可读的选项-h,它根据每个目录的大小使用一系列块大小。

du -h

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

du -h -s *

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

du -sm Pictures/* | sort -nr

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

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