How to get a list of directory sizes in Linux

In Windows, when I need a list of directories, showing their size, I use Total Commander. In the shell on Linux how do we do this?

Say you need a list of all the home directories and the total size of each.
Do the following:

cd /home
du -sck * | sort +0nr

du is the utility for showing file sizes
-s means summarise - so don't show the subdirectories - just show the total size of each directory
-c means give a grand total
-k means show the numbers as counts of kilobytes, so for example, a 186MB directory, will show up as 186000
* means show everything

We then pipe to the sort utility, which sorts the directory list by size.
Remove r to list in ascending order.

If you want to see the sizes in MB, the command is:

du -sc --block-size=M * | sort +0nr

Finally, if you don't want to see some directories, you can exclude them by name or pattern:

Exclude directory called 'dir1': du -sck --exclude=dir1 * | sort +0nr

Exclude directories with names that start with 'abc': du -sck --exclude=abc* * | sort +0nr