Storage Usage
Start by running this to see which root path is taking up the most space.
du -cha --max-depth=1 / | grep -E "^[0-9\.]*[MG]"The [MG] limits the lines to be either MBs or GBs. If your disk is big enough add add T as well for TBs.
The command might return some errors on /proc, /sys, and /dev since they are not real files on disk. However, it should still provide valid output for the rest of the directories in root. After finding the biggest directory, rerun the command again narrow down the search.
For example, if /var takes up unnecessary space, run this next.
du -cha --max-depth=1 /var | grep -E "^[0-9\.]*[MG]"Commands
# 10 largest files in /var
du -ah /var | sort -n -r | head -n 10
# mount disk usage and availability
df -h
# storage usage visualization
ncduUnlinked Storage Hogging
Display pid of resources that processes are holding onto even if the origin is deleted.
lsof | grep deleted | awk '{print $2}'Applications using unlinked files can be printed using lsof +L1. Removing those files using their ids and killing the processes holding them.
# Extract the processes
lsof | grep deleted | awk '{print $2}' > ids#!/bin/bash
input="./ids"
while IFS= read -r line
do
kill -9 "$line"
done < "$input"Recursive Delete
To delete a specific file recursively from current directory and all sub directories
find . -name "*.bak" -type f -delete
# run this first just to be safe
# it will list all files to be deleted
find . -name "*.bak" -type fMake sure that -delete is the last argument of the command. If you put it before the -name *.bak argument, it will delete everything.
Site Permissions
Site permissions when popping up a new site.
sudo chown -R www-data:www-data loc/
sudo chmod -R 774 loc/Manual Fonts
For a single user place fonts in:
~/.local/share/fontsFor system-wide fonts place them in:
/usr/local/share/fonts
# don't touch this
# it's only for pacman
/usr/share/fonts/Tar
Compress a file into zst. You need zstd installed.
tar acf files.tar.zst files/Decompress a file from zst
tar axf files.tar.zstSpecific Sized Files
Create a file with a specific size. Write the size as 5M or 10G.
truncate -s <size> <file.txt>Binary Executables
To run binary executables from the terminal without having to specify the full path, you can add the directory containing the executable to the PATH environment variable. This can be done mainly in two ways.
First by adding the path of the executable into your respective shell's config file.
# bash
echo "export PATH=$PATH:/path/to/executable" >> ~/.bashrc
# fish
echo "set -gx PATH $PATH /path/to/executable" >> ~/.config/fish/config.fishSecond by moving the executable into a directory that is already in the PATH variable. Like /usr/local/bin. This is the recommended way.
sudo mv /path/to/executable /usr/local/bin