1. Overview

In this tutorial, we’ll discuss how we can clean a Linux system of unused files and directories to free up disk space. First, we’ll see how to carry out the clean-up process manually. We’ll make use of tools such as du and ncdu. Apart from that, we’ll also go over removing unused dependencies.

Finally, we’ll take a look at system cleaning tools such as Bleachbit if we’re on a graphical environment.

2. Cleaning Up the System Manually

Manually cleaning up our system can be time consuming. However, it gives us a lot of control over what’s being removed and kept.

In this section, we’ll go over the different steps to clean up our Linux system.

2.1. Check for Largest Directories and Files With du

du is a disk usage utility that displays the size and free space information of attached disks.

It’s pretty straightforward to use. By default, it recursively shows the size of files and directories in the current directory:

$ du | sort -nr
10039072	.
5231636	./Downloads
3103376	./GitHub
2836848	./GitHub/books
1460532	./GitHub/books/_
1376280	./GitHub/books/.git

Now, we’ll list the top ten largest directories in our root directory:

$ du -k | sort -nr | head -n10

Here’s the output:

10039460 /home
6259300  /usr
902400   /var
67024    /boot
34816    /opt
8712     /etc
1052     /run
572      /root
20       /mnt
16       /lost+found

As we can see, /home takes the most space out of all the directories. The /home directory is where we typically store our user data. So, we might need to investigate it further to find the unnecessary files and directories that take up a lot of space.

Using du is good for a general overview of the file sizes. However, going through a lot of files can be cumbersome. Therefore, we might need to use something that makes this process much easier, like ncdu.

2.2. Find out the Disk Usage With ncdu

ncdu is a command-line TUI utility that lets us analyze the disk space used by files in a more readable format.

By default, it doesn’t ship with most Linux distributions. However, it should be available in the package repository of our distribution and we can install it through a package manager using the package name ncdu.

Once, ncdu is installed, we simply type the command followed by the path that we want to analyze:

$ ncdu /home/hey
ncdu utility

We can navigate through the file system using the arrow keys, <L> to enter a directory, <H> to go back, and <D> to delete a file or a directory.

2.3. Remove Cached Files

Some programs are written in a way that they perform faster. For that reason, these programs might cache files that might take a lot of space. These cached files are safe to remove because they can be created by the program when required.

Most of the time, programs store cache contents in the ~/.cache directory. Therefore, we can use ncdu to remove the largest, unnecessary directories and files inside this directory.

Apart from that, our package manager also caches the installation packages, even after the installation. For instance, the apt package manager caches these packages inside the /var/cache/apt/archives directory. We can safely remove these packages after the installation process.

2.4. Remove Old Logs

System and application logs can take a huge amount of space depending on how long the system has been running. Sometimes, a Linux server is configured to store logs for an indefinite amount of time. Therefore, it’s obvious that the size of these files will increase over time.

The location of the system logs directory depends on the distribution we’re using. For instance, on Ubuntu, the logs are stored in the /var/log — specifically inside /var/log/syslog.

Let’s take a look at the /var/log directory, where our system stores logs:

$ du -sh /var/log
1.7G /var/log

The safest way to delete the log files is to leave the current log file and delete the old ones.

2.5. Remove Temporary Files

As the name suggests, temporary files are those that are removed once we reboot our system. But what if we plan on keeping our system up 24/7? For a long-running system, these temporary files will pile up and will take a lot of space.

By default, temporary files are stored inside the /tmp directory. We can use ncdu to remove the unnecessary files under this directory. However, we should avoid deleting files that we aren’t sure of because it might break the current session of our system.

2.6. Remove Unused Dependencies

Most distributions come with a package manager. This package manager is responsible for the management of packages and their dependencies. Most package managers, like apt, yum, and pacman, are quite good at removing dependencies that are not in use.

However, there are scenarios when our package manager decides to keep orphaned dependencies. For instance, the make dependencies often become unnecessary after building a package. Therefore, we might want to remove them.

We can use apt on Ubuntu-based distributions to remove the unused dependencies:

$ apt-get autoremove

Similarly, we can use dnf on Fedora and RHEL:

$ dnf autoremove

On Arch-based distributions, we can use pacman to retrieve the unused packages first and, then, remove them.

$ pacman -Rsn $(pacman -Qdtq)

3. Bleachbit

Bleachbit is a disk cleaner utility for Linux that has a GTK-based front-end.

Bleachbit Utiilty

By default, it doesn’t ship with distributions. So, we might need to install it from the package repository using a package manager.

Bleachbit runs in two modes: user mode and root mode. In the user mode, we can clean up our home directory. In the root mode, we can clean up our whole system.

Once launched, we can check the required options from the list to clean. By default, Bleachbit runs in user mode. However, for root mode, we can simply launch it as root in the terminal:

$ sudo bleachbit

5. Conclusion

In this article, we discussed how we can clean up our Linux system. First, we took a manual approach because it’s safer and gives us more control.

Finally, we covered the Bleachbit utility as an GUI-based alternative to the manual approach.