如何在Linux和Unix上使用Duf查看磁盘使用情况
查看Linux和Unix中磁盘使用情况的最常用的应用程序是du。
Du,代表磁盘使用情况,被广泛用来找出哪些文件和目录占据了最大的磁盘空间。
还存在许多其他命令行和图形工具来完成此任务。
我们已经介绍了其中一些内容,并在过去将其发布在我们的教程 中。
今天,我们将再一个名为duf的磁盘使用情况检查器。
Duf是一个命令行实用程序,用于查找Linux和类似Unix的系统中的磁盘使用情况。
它以漂亮的表格列和用户友好的布局显示磁盘使用情况的详细信息。
我们甚至还可以获取JSON格式的磁盘使用情况输出。
如果输出超出屏幕的可见部分,它将自动调整终端的宽度。
我们可以按总大小,文件系统类型,已用和可用空间,安装点和索引节点对结果进行排序。
也可以从输出中显示,隐藏和排除特定的设备详细信息。
Duf是磁盘使用量/可用空间的缩减。
它是用Go编程语言编写的开放源代码应用程序,并已获得MIT许可。
它可以在GNU/Linux,BSD和Mac OS下运行。
在Linux上安装Duf
目前,Duf已打包为基于Arch,基于DEB和基于RPM的Linux操作系统。
Duf在AUR中可用。
如果我们使用的是Arch Linux或者任何其他的arch变体,则可以使用AUR帮助程序来安装它,例如Yay。
$yay -S duf
在基于Deb的系统(例如Debian,Ubuntu,Linux Mint)上,从发行版页面下载.deb二进制安装文件,然后使用系统的软件包管理器进行安装。
$sudo apt install gdebi
$sudo gdebi duf_0.3.1_linux_amd64.deb
在基于RPM的系统(例如RHEL,CentOS,Fedora)上,下载.rpm二进制文件并使用以下命令进行安装:
$sudo rpm -Uvh duf_0.3.1_linux_amd64.rpm
我们也可以从源代码构建它。
确保在系统上安装了GO语言。
Git克隆duf存储库:
$git clone https://github.com/muesli/duf.git
上面的命令将在名为“ duf”的本地目录中克隆duf在线存储库的内容。
转到该目录:
$cd duf
使用以下命令编译并安装它:
$go build
在Linux和Unix上使用Duf查看磁盘使用情况
使用duf查找磁盘空间使用情况很容易!
我们所要做的就是只运行'duf'命令,而没有如下所示的任何选项:
$duf
输出示例:
╭──────────────────────────────────────────────────────────────────────────────────────────╮ │ 1 local device │ ├────────────┬────────┬────────┬───────┬───────────────────────────────┬──────┬────────────┤ │ MOUNTED ON │ SIZE │ USED │ AVAIL │ USE% │ TYPE │ FILESYSTEM │ ├────────────┼────────┼────────┼───────┼───────────────────────────────┼──────┼────────────┤ │/ │ 457.4G │ 412.1G │ 22.1G │ [######..] 90.1% │ ext4 │ /dev/sda1 │ ╰────────────┴────────┴────────┴───────┴───────────────────────────────┴──────┴────────────╯ ╭───────────────────────────────────────────────────────────────────────────────────────────────────╮ │ 7 special devices │ ├────────────────┬────────┬────────┬────────┬───────────────────────────────┬──────────┬────────────┤ │ MOUNTED ON │ SIZE │ USED │ AVAIL │ USE% │ TYPE │ FILESYSTEM │ ├────────────────┼────────┼────────┼────────┼───────────────────────────────┼──────────┼────────────┤ │ /dev │ 3.8G │ 0B │ 3.8G │ │ devtmpfs │ udev │ │ /dev/shm │ 3.8G │ 235.3M │ 3.6G │ [#...................] 6.0% │ tmpfs │ tmpfs │ │ /run │ 787.0M │ 1.8M │ 785.2M │ [....................] 0.2% │ tmpfs │ tmpfs │ │ /run/lock │ 5.0M │ 4.0K │ 5.0M │ [....................] 0.1% │ tmpfs │ tmpfs │ │ /run/snapd/ns │ 787.0M │ 1.8M │ 785.2M │ [....................] 0.2% │ tmpfs │ tmpfs │ │ /run/user/1000 │ 787.0M │ 238.2M │ 548.8M │ [##..............] 30.3% │ tmpfs │ tmpfs │ │ /sys/fs/cgroup │ 3.8G │ 0B │ 3.8G │ │ tmpfs │ tmpfs │ ╰────────────────┴────────┴────────┴────────┴───────────────────────────────┴──────────┴────────────╯
从上面的输出中可以看到,Duf以表格列的格式列出了以下详细信息:
- 已安装设备的总数,
- 挂载点
- 根分区的总大小,
- 已用磁盘空间和可用磁盘空间的总大小,
- 总磁盘使用量百分比
- 文件系统类型,
- 文件系统名称等
要显示所有详细信息,包括伪,重复和不可访问的文件系统,请运行:
$duf --all
输出示例:
╭───────────────────────────────────────────────────────────────────────────────────────────────────────────────────╮ │ 24 local devices │ ├────────────────────────────────┬────────┬────────┬───────┬───────────────────────────────┬──────────┬─────────────┤ │ MOUNTED ON │ SIZE │ USED │ AVAIL │ USE% │ TYPE │ FILESYSTEM │ ├────────────────────────────────┼────────┼────────┼───────┼───────────────────────────────┼──────────┼─────────────┤ │/ │ 457.4G │ 412.1G │ 22.1G │ [######..] 90.1% │ ext4 │ /dev/sda1 │ │ /run/snapd/ns/multipass.mnt │ 0B │ 0B │ 0B │ │ nsfs │ nsfs │ │ /snap/bashtop/128 │ 23.1M │ 23.1M │ 0B │ [######] 100.0% │ squashfs │ /dev/loop0 │ │ /snap/bashtop/134 │ 23.1M │ 23.1M │ 0B │ [######] 100.0% │ squashfs │ /dev/loop1 │ │ /snap/chromium/1298 │ 162.1M │ 162.1M │ 0B │ [######] 100.0% │ squashfs │ /dev/loop2 │ │ /snap/chromium/1320 │ 162.0M │ 162.0M │ 0B │ [######] 100.0% │ squashfs │ /dev/loop3 │ │ /snap/core/9804 │ 96.6M │ 96.6M │ 0B │ [######] 100.0% │ squashfs │ /dev/loop4 │ │ /snap/core/9993 │ 97.1M │ 97.1M │ 0B │ [######] 100.0% │ squashfs │ /dev/loop6 │ │ /snap/core18/1880 │ 55.0M │ 55.0M │ 0B │ [######] 100.0% │ squashfs │ /dev/loop15 │ │ /snap/core18/1885 │ 55.4M │ 55.4M │ 0B │ [######] 100.0% │ squashfs │ /dev/loop5 │ │ /snap/gifcurry/8 │ 149.0M │ 149.0M │ 0B │ [######] 100.0% │ squashfs │ /dev/loop7 │ │ /snap/gnome-3-26-1604/100 │ 140.8M │ 140.8M │ 0B │ [######] 100.0% │ squashfs │ /dev/loop16 │ │ /snap/gnome-3-26-1604/98 │ 140.8M │ 140.8M │ 0B │ [######] 100.0% │ squashfs │ /dev/loop8 │ │ /snap/gnome-3-28-1804/116 │ 160.2M │ 160.2M │ 0B │ [######] 100.0% │ squashfs │ /dev/loop14 │ │ /snap/gnome-3-28-1804/128 │ 161.5M │ 161.5M │ 0B │ [######] 100.0% │ squashfs │ /dev/loop10 │ │ /snap/gnome-3-34-1804/33 │ 255.6M │ 255.6M │ 0B │ [######] 100.0% │ squashfs │ /dev/loop9 │ │ /snap/gnome-3-34-1804/36 │ 255.6M │ 255.6M │ 0B │ [######] 100.0% │ squashfs │ /dev/loop11 │ │ /snap/gnome-system-monitor/145 │ 2.2M │ 2.2M │ 0B │ [######] 100.0% │ squashfs │ /dev/loop17 │ │ /snap/gnome-system-monitor/148 │ 2.2M │ 2.2M │ 0B │ [######] 100.0% │ squashfs │ /dev/loop18 │ │ /snap/gtk-common-themes/1502 │ 54.9M │ 54.9M │ 0B │ [######] 100.0% │ squashfs │ /dev/loop12 │ │ /snap/gtk-common-themes/1506 │ 62.1M │ 62.1M │ 0B │ [######] 100.0% │ squashfs │ /dev/loop13 │ │ /snap/multipass/2531 │ 220.0M │ 220.0M │ 0B │ [######] 100.0% │ squashfs │ /dev/loop19 │ │ /snap/multipass/2604 │ 220.0M │ 220.0M │ 0B │ [######] 100.0% │ squashfs │ /dev/loop20 │ │ /sys/fs/fuse/connections │ 0B │ 0B │ 0B │ │ fusectl │ fusectl │ ╰────────────────────────────────┴────────┴────────┴───────┴───────────────────────────────┴──────────┴─────────────╯ ╭─────────────────────────────────────────────────────────────────────────────────╮ │ 1 FUSE device │ ├─────────────────────┬──────┬──────┬───────┬──────┬─────────────────┬────────────┤ │ MOUNTED ON │ SIZE │ USED │ AVAIL │ USE% │ TYPE │ FILESYSTEM │ ├─────────────────────┼──────┼──────┼───────┼──────┼─────────────────┼────────────┤ │ /run/user/1000/gvfs │ 0B │ 0B │ 0B │ │ fuse.gvfsd-fuse │ gvfsd-fuse │ ╰─────────────────────┴──────┴──────┴───────┴──────┴─────────────────┴────────────╯ ╭────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╮ │ 32 special devices │ ├─────────────────────────────────┬────────┬────────┬────────┬───────────────────────────────┬─────────────┬─────────────┤ │ MOUNTED ON │ SIZE │ USED │ AVAIL │ USE% │ TYPE │ FILESYSTEM │ ├─────────────────────────────────┼────────┼────────┼────────┼───────────────────────────────┼─────────────┼─────────────┤ │ /dev │ 3.8G │ 0B │ 3.8G │ │ devtmpfs │ udev │ │ /dev/hugepages │ 0B │ 0B │ 0B │ │ hugetlbfs │ hugetlbfs │ │ /dev/mqueue │ 0B │ 0B │ 0B │ │ mqueue │ mqueue │ │ /dev/pts │ 0B │ 0B │ 0B │ │ devpts │ devpts │ │ /dev/shm │ 3.8G │ 224.1M │ 3.6G │ [#...................] 5.7% │ tmpfs │ tmpfs │ │ /proc │ 0B │ 0B │ 0B │ │ proc │ proc │ │ /proc/sys/fs/binfmt_misc │ 0B │ 0B │ 0B │ │ binfmt_misc │ binfmt_misc │ │ /run │ 787.0M │ 1.8M │ 785.2M │ [....................] 0.2% │ tmpfs │ tmpfs │ │ /run/lock │ 5.0M │ 4.0K │ 5.0M │ [....................] 0.1% │ tmpfs │ tmpfs │ │ /run/snapd/ns │ 787.0M │ 1.8M │ 785.2M │ [....................] 0.2% │ tmpfs │ tmpfs │ │ /run/user/1000 │ 787.0M │ 238.2M │ 548.8M │ [##..............] 30.3% │ tmpfs │ tmpfs │ │ /sys │ 0B │ 0B │ 0B │ │ sysfs │ sysfs │ │ /sys/fs/bpf │ 0B │ 0B │ 0B │ │ bpf │ none │ │ /sys/fs/cgroup │ 3.8G │ 0B │ 3.8G │ │ tmpfs │ tmpfs │ │ /sys/fs/cgroup/blkio │ 0B │ 0B │ 0B │ │ cgroup │ cgroup │ │ /sys/fs/cgroup/cpu,cpuacct │ 0B │ 0B │ 0B │ │ cgroup │ cgroup │ │ /sys/fs/cgroup/cpuset │ 0B │ 0B │ 0B │ │ cgroup │ cgroup │ │ /sys/fs/cgroup/devices │ 0B │ 0B │ 0B │ │ cgroup │ cgroup │ │ /sys/fs/cgroup/freezer │ 0B │ 0B │ 0B │ │ cgroup │ cgroup │ │ /sys/fs/cgroup/hugetlb │ 0B │ 0B │ 0B │ │ cgroup │ cgroup │ │ /sys/fs/cgroup/memory │ 0B │ 0B │ 0B │ │ cgroup │ cgroup │ │ /sys/fs/cgroup/net_cls,net_prio │ 0B │ 0B │ 0B │ │ cgroup │ cgroup │ │ /sys/fs/cgroup/perf_event │ 0B │ 0B │ 0B │ │ cgroup │ cgroup │ │ /sys/fs/cgroup/pids │ 0B │ 0B │ 0B │ │ cgroup │ cgroup │ │ /sys/fs/cgroup/rdma │ 0B │ 0B │ 0B │ │ cgroup │ cgroup │ │ /sys/fs/cgroup/systemd │ 0B │ 0B │ 0B │ │ cgroup │ cgroup │ │ /sys/fs/cgroup/unified │ 0B │ 0B │ 0B │ │ cgroup2 │ cgroup2 │ │ /sys/fs/pstore │ 0B │ 0B │ 0B │ │ pstore │ pstore │ │ /sys/kernel/config │ 0B │ 0B │ 0B │ │ configfs │ configfs │ │ /sys/kernel/debug │ 0B │ 0B │ 0B │ │ debugfs │ debugfs │ │ /sys/kernel/security │ 0B │ 0B │ 0B │ │ securityfs │ securityfs │ │ /sys/kernel/tracing │ 0B │ 0B │ 0B │ │ tracefs │ tracefs │ ╰─────────────────────────────────┴────────┴────────┴────────┴───────────────────────────────┴─────────────┴─────────────╯
从输出中排除特定设备的详细信息
有时,我们可能想从输出中排除一些细节。
例如,以下命令将排除特殊设备的详细信息(例如'/run/lock','/sys/fs/bpf')。
$duf --hide-special
仅显示本地设备的磁盘使用情况详细信息,例如:从输出中消除特殊设备:
╭──────────────────────────────────────────────────────────────────────────────────────────╮ │ 1 local device │ ├────────────┬────────┬────────┬───────┬───────────────────────────────┬──────┬────────────┤ │ MOUNTED ON │ SIZE │ USED │ AVAIL │ USE% │ TYPE │ FILESYSTEM │ ├────────────┼────────┼────────┼───────┼───────────────────────────────┼──────┼────────────┤ │/ │ 457.4G │ 412.0G │ 22.1G │ [######..] 90.1% │ ext4 │ /dev/sda1 │ ╰────────────┴────────┴────────┴───────┴───────────────────────────────┴──────┴────────────╯
其他受支持的选项是:
- '-隐藏本地'
- '-隐藏网络'
- '-隐藏保险丝'
- '-隐藏循环'
- '-隐藏绑定'
排序输出
我们可以显示按各种参数排序的磁盘使用情况详细信息,例如:
- 'mountpoint',
- 'size' ,
- 'used' ,
- 'avail' ,
- 'usage' ,
- 'inodes',
- 'inodes_used',
- 'inodes_avail',
- 'inodes_usage',
- 'type' ,
- “filesystem”等
例如,要按大小对输出进行排序,请使用以下命令:
$duf --sort size
按文件系统对输出进行排序:
$duf --sort filesystem
显示或者隐藏特定列
类似于从输出中排除某些设备详细信息,我们还可以在输出中显示或者隐藏特定的列。
以下命令将仅显示“ mountpoint”,“ size”和“ usage”列的输出:
$duf --output mountpoint,size,usage
输出示例:
╭─────────────────────────────────────────────────────╮ │ 1 local device │ ├────────────┬────────┬───────────────────────────────┤ │ MOUNTED ON │ SIZE │ USE% │ ├────────────┼────────┼───────────────────────────────┤ │/ │ 457.4G │ [######..] 90.1% │ ╰────────────┴────────┴───────────────────────────────╯ ╭─────────────────────────────────────────────────────────╮ │ 7 special devices │ ├────────────────┬────────┬───────────────────────────────┤ │ MOUNTED ON │ SIZE │ USE% │ ├────────────────┼────────┼───────────────────────────────┤ │ /dev │ 3.8G │ │ │ /dev/shm │ 3.8G │ [#...................] 6.9% │ │ /run │ 787.0M │ [....................] 0.2% │ │ /run/lock │ 5.0M │ [....................] 0.1% │ │ /run/snapd/ns │ 787.0M │ [....................] 0.2% │ │ /run/user/1000 │ 787.0M │ [##..............] 30.3% │ │ /sys/fs/cgroup │ 3.8G │ │ ╰────────────────┴────────┴───────────────────────────────╯
支持的选项列表为:
- 'mountpoint',
- '尺寸' ,
- '用过的' ,
- “有效”,
- '用法' ,
- 'inodes',
- 'inodes_used',
- 'inodes_avail',
- 'inodes_usage',
- '类型' ,
- '文件系统' 。
显示索引节点详细信息
如果要列出索引节点信息而不是块使用情况,请运行以下命令:
$duf --inodes
以JSON格式显示磁盘使用情况输出
代替以表格列格式显示输出,我们可以以JSON格式显示输出。
为此,请运行:
$duf --json
输出示例:
[ { "device": "sysfs", "device_type": "special", "mount_point": "/sys", "fs_type": "sysfs", "type": "sysfs", "opts": "rw,nosuid,nodev,noexec,relatime", "total": 0, "free": 0, "used": 0, "inodes": 0, "inodes_free": 0, "inodes_used": 0, "blocks": 0, "block_size": 4096 }, . . . { "device": "binfmt_misc", "device_type": "special", "mount_point": "/proc/sys/fs/binfmt_misc", "fs_type": "binfmt_misc", "type": "binfmt_misc", "opts": "rw,nosuid,nodev,noexec,relatime", "total": 0, "free": 0, "used": 0, "inodes": 0, "inodes_free": 0, "inodes_used": 0, "blocks": 0, "block_size": 4096 } ]
获得帮助
要显示duf实用程序的帮助部分,请运行:
$duf --help
输出示例:
Usage of duf: -all include pseudo, duplicate, inaccessible file systems -hide-binds hide bind mounts (default true) -hide-fuse hide fuse devices -hide-local hide local devices -hide-loops hide loop devices (default true) -hide-network hide network devices -hide-special hide special devices -inodes list inode information instead of block usage -json output all devices in JSON format -output string output fields: mountpoint, size, used, avail, usage, inodes, inodes_used, inodes_avail, inodes_usage, type, filesystem -sort string sort output by: mountpoint, size, used, avail, usage, inodes, inodes_used, inodes_avail, inodes_usage, type, filesystem (default "mountpoint") -width uint max output width