Поиск по сайту:

Как просмотреть свободное место на диске и использование диска из терминала Linux


Команды df и du сообщают об использовании дискового пространства из оболочки Bash, используемой в Linux, macOS и многих других Unix-подобных операционных системах. Эти команды позволяют легко определить, что занимает системное хранилище.

Просмотр общего, доступного и используемого дискового пространства

Bash содержит две полезные команды, связанные с дисковым пространством. Чтобы узнать доступное и используемое дисковое пространство, используйте df (дисковые файловые системы, иногда называемые свободными от диска). Чтобы узнать, что занимает используемое дисковое пространство, используйте du (использование диска).

Введите df и нажмите Enter в окне терминала Bash, чтобы начать. Вы увидите много вывода, похожего на скриншот ниже. Использование df без каких-либо параметров отобразит доступное и используемое пространство для всех смонтированных файловых систем. На первый взгляд это может показаться непонятным, но понять его довольно просто.

df

Каждая строка дисплея состоит из шести столбцов.

  • Fileystem: имя этой файловой системы.
  • 1K-Blocks: количество блоков по 1K, доступных в этой файловой системе.
  • Использовано : количество блоков размером 1 КБ, использованных в этой файловой системе.
  • Доступно: количество блоков размером 1 КБ, которые не используются в этой файловой системе.
  • Использовать%: объем пространства, используемого в этой файловой системе, указанный в процентах.
  • Файл – имя файловой системы, если оно указано в командной строке.
  • Смонтировано: точка подключения файловой системы.

Вы можете заменить количество блоков размером 1 КБ на более полезный вывод, используя параметр -B (размер блока). Чтобы использовать эту опцию, введите df, пробел, а затем -B и букву из списка K, M, G, T, P, E, Z или Y. Эти буквы представляют значения килограмм, мега, гига, тера, пета, экса, дзета и йотта по шкале, кратной 1024.

Например, чтобы увидеть данные об использовании диска в мегабайтах, вы должны использовать следующую команду. Обратите внимание, что между буквами B и M нет пробела.

df -BM

Параметр -h (удобочитаемый) указывает df использовать наиболее подходящую единицу измерения для размера каждой файловой системы. В следующем выводе обратите внимание, что есть файловые системы с гигабайтными, мегабайтными и даже килобайтными размерами.

df -h

Если вам нужно просмотреть информацию, представленную в виде количества инодов, используйте параметр -i (иноды). Инод — это структура данных, используемая файловыми системами 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

Мы можем попросить 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 и укажите список имен необходимых столбцов, разделенных запятыми. Убедитесь, что в списке, разделенном запятыми, нет пробелов.

  • источник: имя файловой системы.
  • fstype: тип файловой системы.
  • всего: размер файловой системы в инодах.
  • используется: пространство, используемое в файловой системе в индексных дескрипторах.
  • iavail: доступное место в файловой системе в inodes.
  • ipcent: процент используемого пространства файловой системы в inodes в процентах.
  • размер – размер файловой системы, по умолчанию в блоках по 1 КБ.
  • используется: пространство, используемое в файловой системе, по умолчанию в блоках по 1 КБ.
  • доступно: доступное пространство в файловой системе, по умолчанию в блоках по 1 КБ.
  • процент: процент используемого пространства в файловой системе в индексных дескрипторах, по умолчанию в блоках по 1 КБ.
  • файл – имя файловой системы, если оно указано в командной строке.
  • target: точка монтирования файловой системы.

Давайте попросим df сообщить о первом разделе на первом диске с удобочитаемыми числами и со столбцами source, fstype, size, used, avail и pcent:

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

Длинные команды — идеальные кандидаты для превращения в псевдоним. Мы можем создать псевдоним dfc (для df custom), введя следующее и нажав Enter:

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

Ввод dfc и нажатие клавиши ввода будут иметь тот же эффект, что и ввод длинной команды. Чтобы сделать этот псевдоним постоянным, добавьте его в файл .bashrc  или .bash_aliases.

Мы искали способы улучшить вывод df, чтобы отображаемая информация соответствовала вашим требованиям. Если вы хотите использовать противоположный подход и заставить df возвращать всю возможную информацию, вы можете использовать параметр -a (все) и --output, как показано ниже. Опция -a (все) запрашивает df включить все файловые системы, а при использовании опции --output без список столбцов, разделенных запятыми, приводит к тому, что df включает каждый столбец.

df -a --output

Передача вывода из df через команду less — это удобный способ просмотреть большой объем вывода, который может быть получен.

df -a --output | less

Выяснение того, что занимает используемое дисковое пространство

Давайте проведем небольшое расследование и выясним, что занимает место на этом ПК. Мы начнем с одной из наших команд df.

df -h -t ext4

На первом разделе первого жесткого диска занято 78% дискового пространства. Мы можем использовать команду du, чтобы показать, в каких папках содержится больше всего данных. Ввод команды du без параметров отобразит список всех каталогов и подкаталогов ниже каталога, в котором была введена команда du. Если вы сделаете это из своей домашней папки перечисление будет очень длинным.

du

Выходной формат очень прост. Каждая строка показывает размер и имя каталога. По умолчанию размер отображается в блоках по 1 КБ. Чтобы заставить 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, легко узнать, сколько места на жестком диске используется, и узнать, что занимает это пространство. Затем вы можете принять взвешенное решение о перемещении некоторых данных в другое хранилище, добавлении еще одного жесткого диска к компьютеру или удалении избыточных данных.

Эти команды имеют множество опций. Здесь мы описали наиболее полезные параметры, но вы можете увидеть полный список параметров для команды df и команды du на справочных страницах Linux.

RELATED: Best Linux Laptops for Developers and Enthusiasts