Утилиты df, du и ncdu
За что отвечают эти команды
Команда df позволяет определить занятое место на диске. С помощью команды du можно посмотреть размер файлов. А утилита ncdu позволяет быстро определить, что занимает больше всего места на диске. Так как все эти команды используются для определения занимаемого места на диске, то я решил их объединить в одну статью.
Команда df
Первая команда, которой нужно воспользоваться, чтобы быстро получить информацию о занятом месте на диске — это команда df. Её удобно использовать с опцией -h, чтобы смотреть информацию в удобном для человека виде:
$ df -h
Filesystem Size Used Avail Use% Mounted on
tmpfs 97M 980K 96M 1% /run
/dev/sda2 16G 6,3G 8,6G 43% /
tmpfs 485M 0 485M 0% /dev/shm
tmpfs 5,0M 0 5,0M 0% /run/lock
tmpfs 97M 4,0K 97M 1% /run/user/1000
- Корневой раздел, в который у нас примонтирован дисковый раздел
/dev/sda2, занимает 43% дискового пространства.
Кроме этого, создавая файлы, мы занимаем индексные дескрипторы (
inode
) на файловой системе. Чтобы посмотреть информацию по занятым индексным дескрипторам воспользуемся опцией -i:
$ df -i
Filesystem Inodes IUsed IFree IUse% Mounted on
tmpfs 124059 659 123400 1% /run
/dev/sda2 1048576 123545 925031 12% /
tmpfs 124059 1 124058 1% /dev/shm
tmpfs 124059 3 124056 1% /run/lock
tmpfs 24811 25 24786 1% /run/user/1000
- У меня занято только 12% inode на корневом разделе.
Команда du
Следующая команда у нас высчитывает сколько места на диске занимает определенный каталог или файл. Это команда du. С опцией -h она покажет информацию в удобном для человека виде. Например, посмотрим сколько весит скачанный deb пакет веб сервера apache2:
$ du -h apache2_2.4.52-1ubuntu4_amd64.deb
96K apache2_2.4.52-1ubuntu4_amd64.deb
Или сколько весит домашний каталог пользователя alex:
$ du -h /home/alex/
4,0K /home/alex/.cache
12K /home/alex/.ssh
8,0K /home/alex/.config/htop
8,0K /home/alex/.config/procps
20K /home/alex/.config
4,0K /home/alex/.local/share/nano
8,0K /home/alex/.local/share
12K /home/alex/.local
22M /home/alex/
При этом, помимо информации о самом каталоге /home/alex/, мы видим все подкаталоги, которые находятся в нём. Если нам не нужна эта информация то используем опцию -s:
$ du -hs /home/alex/
22M /home/alex/
А если нам нужна информация по каждому файлу, то воспользуемся опцией -a:
$ du -ha /home/alex/
12K /home/alex/.bash_history
4,0K /home/alex/.profile
4,0K /home/alex/.cache
4,0K /home/alex/.bash_logout
***
22M /home/alex/
Команда ncdu
Для поиска того, что больше всего занимает места на диске, можно воспользоваться утилитой ncdu. Её нужно вначале установить:
$ sudo apt install ncdu
Начнём наш анализ от корня:
$ sudo ncdu /
3,0 GiB [##########] /usr
2,0 GiB [###### ] swap.img
1,3 GiB [#### ] /snap
1,0 GiB [### ] /var
246,1 MiB [ ] /boot
21,5 MiB [ ] /home
6,2 MiB [ ] /etc
984,0 KiB [ ] /run
64,0 KiB [ ] /tmp
60,0 KiB [ ] /root
***
Видим что больше всего занимает каталог /usr. Стрелочками можем выбрать каталог, и нажмём enter чтобы перейти в него:
2,3 GiB [##########] /lib
280,0 MiB [# ] /src
235,5 MiB [# ] /share
145,6 MiB [ ] /bin
32,1 MiB [ ] /sbin
12,0 MiB [ ] /include
3,1 MiB [ ] /libexec
64,0 KiB [ ] /local
4,0 KiB [ ] /lib64
4,0 KiB [ ] /libx32
4,0 KiB [ ] /lib32
4,0 KiB [ ] /games
Тут мы видим, что больше всего места занимает каталог /lib, перейдем в него:
926,8 MiB [##########] /modules
850,4 MiB [######### ] /firmware
236,2 MiB [## ] /x86_64-linux-gnu
75,4 MiB [ ] /snapd
71,4 MiB [ ] /python3
63,4 MiB [ ] /gcc
23,9 MiB [ ] /python3.10
19,0 MiB [ ] /udev
18,4 MiB [ ] /debug
10,3 MiB [ ] /systemd
***
И таким образом находим самые большие каталоги в системе. Для выхода из утилиты используется клавиша q.
Если понравилась статья, подпишись на мой канал в VK или Telegram .