https://www.linux.com/training-tutorials/5-essential-tools-linux-development/