In Linux (Debian, Ubuntu, CentOS, etc.), there are several universal tools for this.

The main tool for disk space analysis is, of course, df.

The most common usage:

df -h 
It shows the total space on each mounted disk ("Size" column), used space in megabytes/gigabytes and percentages ("Used" and "Use%" columns), and how much free space is left ("Avail" column).
[root@server ~]# df -h
Filesystem      Size  Used Avail Use% Mounted on
/dev/xvda3       58G  6.3G   48G  12% /
tmpfs           2.0G     0  2.0G   0% /dev/shm
/dev/xvda1      194M  117M   68M  64% /boot

Another very important usage:

df -i
The "-i" argument indicates the need to display statistics for inodes. In simple terms, it shows how many files and folders can be created on the disk (Inodes), how many are already created (IUsed, IUse%), and how many more can be created (IFree):
[root@server ~]# df -i
Filesystem      Inodes  IUsed   IFree IUse% Mounted on
/dev/xvda3     3726848 309625 3417223    9% /
tmpfs           181859      1  181858    1% /dev/shm
/dev/xvda1       51200     62   51138    1% /boot

How to find which folder takes up the most space?

To do this, you can use the ncdu utility for analyzing space usage by individual folders.

Alternatively, you can do it manually (get a list of all subfolders starting from the current location, sorted in descending order of their size in megabytes):

du -shm * | sort -nr
Or, without sorting and normalizing the units of measurement, which can be more convenient in some cases:
du -sh * | sort -nr