Команди `df` та `du` є інструментами командного рядка Bash, які застосовуються в операційних системах Linux, macOS та інших Unix-подібних системах для моніторингу використання дискового простору. Завдяки цим командам користувачі можуть легко з’ясувати, які ресурси пам’яті використовуються системою.
Аналіз загального, доступного та зайнятого місця на диску
Bash надає дві основні команди для роботи з дисковим простором. Команда `df` (скорочення від “disk file systems” або “disk free”) призначена для перегляду доступного та використаного дискового простору. Команда `du` (скорочення від “disk usage”) дозволяє дізнатися, які саме файли та директорії займають місце на диску.
Для початку роботи з `df`, введіть команду в терміналі Bash і натисніть Enter. Результат відобразить інформацію про всі змонтовані файлові системи. Хоча вигляд може здатися складним, його досить легко зрозуміти.
df
Кожен рядок виводу складається з шести основних стовпців:
Файлова система | Назва файлової системи. |
1K-блоки | Загальна кількість 1K-блоків, доступних у цій файловій системі. |
Використано | Кількість 1K-блоків, що використовуються файловою системою. |
Доступно | Кількість 1K-блоків, доступних для використання. |
Викор.% | Відсоток використаного простору у файловій системі. |
Змонтовано | Точка монтування файлової системи. |
Для відображення інформації про дисковий простір у зручнішому форматі, можна застосувати параметр `-B` (розмір блоку). Після `-B` потрібно вказати літеру, що представляє одиницю вимірювання: K (кіло), M (мега), G (гіга), T (тера), P (пета), E (екса), Z (зета) або Y (йотта), кожна з яких кратна 1024.
Наприклад, для виведення даних у мегабайтах, скористайтесь командою, де між B та M немає пробілу:
df -BM
Параметр `-h` (human-readable) змушує `df` використовувати найбільш відповідні одиниці вимірювання для кожної файлової системи. Як видно у виводі, розміри можуть бути подані в гігабайтах, мегабайтах або навіть кілобайтах.
df -h
Для отримання інформації про кількість індексів, використовуйте параметр `-i` (inodes). Inode – це структура даних, що застосовується файловими системами Linux для опису файлів та зберігання метаданих, таких як ім’я, дата модифікації, місцезнаходження на жорсткому диску. Ця інформація може бути корисною для системних адміністраторів.
df -i
За замовчуванням, `df` надає дані про всі змонтовані файлові системи, що може захаращувати вивід. Наприклад, записи `/dev/loop` – це псевдофайлові системи, що дозволяють монтувати файли як розділи. Якщо ви використовуєте метод фіксації Ubuntu для встановлення програм, ви можете мати багато таких записів. Оскільки вони не є фактичними файловими системами, їх доступний простір завжди дорівнює 0.
Щоб виключити певні типи файлових систем, потрібно знати їхній тип. Параметр `-T` (тип друку) додає стовпець з типом файлової системи у вихідні дані.
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 /dev/sda1
У назвах файлових систем можна використовувати символи підстановки, де `*` означає будь-яку кількість символів, а `?` – будь-який окремий символ. Наприклад, для перегляду інформації про всі розділи на першому диску, використайте:
df /dev/sda*
Також можна запросити `df` надати інформацію про декілька іменованих файлових систем. Наприклад, для перегляду розмірів файлових систем `/dev` та `/run`, з підсумковим результатом:
df -h --total /dev /run
Для додаткового налаштування відображення можна вказати, які стовпці слід включити, використовуючи параметр `–output` та список імен стовпців, розділених комами. Не включайте пробіли між іменами стовпців.
Джерело | Ім’я файлової системи. |
fstype | Тип файлової системи. |
itotal | Розмір файлової системи в inodes. |
iused | Використаний простір у inodes. |
iavail | Доступний простір у inodes. |
ipcent | Відсоток використаного простору у inodes. |
size | Розмір файлової системи, за замовчуванням у 1K блоках. |
використано | Використаний простір, за замовчуванням у 1K блоках. |
avail | Доступний простір, за замовчуванням у 1K блоках. |
pcent | Відсоток використаного простору у відсотках. |
file | Ім’я файлової системи, якщо вказано в командному рядку. |
target | Точка монтування файлової системи. |
Наприклад, для виведення інформації про перший розділ на першому диску з розмірами у читабельному форматі та стовпцями 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` і натискання Enter виконає довгу команду. Для того, щоб псевдонім був постійним, додайте його до файлу `.bashrc` або `.bash_aliases`.
Для отримання повного виводу `df`, включаючи усі файлові системи та стовпці, використовуйте параметри `-a` (усі) і `–output` без списку стовпців.
df -a --output
Для перегляду великого обсягу виводу зручно використовувати команду `less`, передаючи їй результат `df` через конвеєр:
df -a --output | less
Аналіз використання дискового простору
Для аналізу того, що займає місце на диску, спершу використайте команду `df` для перевірки використання простору на конкретному розділі.
df -h -t ext4
У даному випадку, на першому розділі першого жорсткого диску використовується 78% дискового простору. Для перегляду розмірів папок, можна використовувати команду `du`. Якщо запустити команду `du` без параметрів, буде виведено список усіх каталогів та підкаталогів у поточній директорії. Якщо це зробити з домашньої папки, список може бути дуже довгим.
du
Формат виводу `du` дуже простий. Кожен рядок показує розмір та назву каталогу. За замовчуванням розмір виводиться у 1K блоках. Для відображення розміру у інших блоках, використовуйте параметр `-B`, так само як і для `df`.
du -BM
Аналогічно `df`, команда `du` також підтримує параметр `-h`, що дозволяє відображати розміри в найбільш підходящих одиницях.
du -h
Параметр `-s` (підсумувати) дозволяє отримати підсумок для кожного каталогу без відображення його підкаталогів. Наприклад, для отримання підсумкової інформації про всі каталоги в поточному робочому каталозі, використовуйте:
du -h -s *
Для сортування папок за розміром від найбільшої до найменшої, використовуйте:
du -sm Pictures/* | sort -nr
Застосовуючи різні параметри для `df` та `du`, можна легко визначити, скільки місця використовується на жорсткому диску та які саме файли та папки займають найбільше місця. Це дозволить вам прийняти обґрунтоване рішення щодо переміщення даних, додавання нового жорсткого диску або видалення непотрібних файлів. Для отримання детальної інформації про всі параметри команди `df`, та для команди `du` зверніться до сторінок керівництва Linux.