Как просмотреть использование диска с помощью Duf в Linux и Unix
Наиболее часто используемое приложение для просмотра использования диска в Linux и Unix — du. du означает disk usage и широко используется для определения того, какие файлы и каталоги занимают больше всего дискового пространства. Существует также множество альтернативных командной строки и графических инструментов для выполнения этой задачи. Некоторые из них мы уже рассмотрели и разместили здесь (ссылки приведены в конце) в нашем блоге. Сегодня мы рассмотрим еще одну программу проверки использования диска под названием duf.
Что такое Дуф?
Duf — это утилита командной строки для определения использования диска в Linux и Unix-подобных системах. Он отображает подробную информацию об использовании диска в удобной табличной форме и удобном для пользователя виде. Вы даже можете получить данные об использовании диска в формате JSON.
Если вывод превышает видимую часть экрана, ширина терминала автоматически регулируется. Вы можете сортировать результаты по общему размеру, типу файловой системы, используемому и свободному пространству, точке монтирования и индексным дескрипторам. Также можно показать, скрыть и исключить из вывода определенные сведения об устройстве.
Duf — это сокращение от disk usage/free. Она также считается лучшей альтернативой традиционной команде df
.
Duf — приложение с открытым исходным кодом, написанное на языке программирования Go и выпущенное под лицензией MIT. Он работает под GNU/Linux, BSD и Mac OS.
Установите Duf в Linux
В настоящее время Duf упакован для операционных систем Linux на базе Arch, DEB и RPM.
Duf доступен в AUR. Если вы используете Arch Linux или любые его варианты Arch, вы можете установить его с помощью вспомогательных программ AUR, например, Paru или Yay.
paru -S duf
Или,
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
Установить Duf из исходников
Мы также можем собрать и установить duf из исходного кода. Убедитесь, что в вашей системе установлен язык GO.
Git клонирует репозиторий duf:
git clone https://github.com/muesli/duf.git
Приведенная выше команда клонирует содержимое онлайн-репозитория duf в локальный каталог с именем «duf». Перейдите в этот каталог:
cd duf
Скомпилируйте и установите его с помощью команды:
go build
Просмотр использования диска с помощью Duf в Linux и Unix
Узнать использование дискового пространства с помощью 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 в Linux и Unix
Как вы можете видеть в приведенном выше выводе, 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 │
╰────────────┴────────┴────────┴───────┴───────────────────────────────┴──────┴────────────╯
Другие поддерживаемые параметры:
--hide-local
--hide-network
--hide-fuse
--hide-loops
--hide-binds
Сортировка вывода
Мы можем отображать сведения об использовании диска, отсортированные по различным параметрам, таким как:
точка монтирования
,размер
,используется
,доступен
,использование
,иноды
,inodes_used
,inodes_avail
,inodes_usage
,тип
,файловая система
и т. д.
Например, чтобы отсортировать выходные данные по размеру, используйте следующую команду:
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 │ │
╰────────────────┴────────┴───────────────────────────────╯
Список поддерживаемых опций:
точка монтирования
,размер
,используется
,доступен
,использование
,иноды
,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
Ресурс:
- Репозиторий Duf на GitHub
Связанное чтение:
- Некоторые хорошие альтернативы команде «du»
- Filelight – визуализируйте использование диска в вашей системе Linux
- Как проверить использование дискового пространства в Linux с помощью Ncdu
- Agedu – узнайте ненужное дисковое пространство в Linux
- Duc – набор инструментов для проверки и визуализации использования диска
- Учебное пособие по команде df с примерами для начинающих
- Как составить список файловых систем в Linux с помощью Lfs
Изображение Picsaf Com от Pexels.