Linux! Man, this operating system (OS) is amazing! Instead of having virtually no control over the system (like MAC OS), we have access to everything! I hate in Windows that I cannot delete Internet Explorer and Microsoft Edge...And trust me, I've tried.
Linux, it's time to shine! Being able to edit anything we feel like can be amazing, but can also break the entire computer. So, be aware and wise about the changes made!
Background:
Open source is the whole reason the internet works. From the server in your house to the FBI's website, there's sure to be a piece of open source software somewhere in the mix of it. The term
open source means to make a piece of software, then freely give it to the world! This has came the norm for the software development industry; and we're all very grateful for this. It's led to the invention of so many fantastic revolutions in the tech industry.
All hail to the king and chief Linus Torvalds! This wonderful man gave us the start of all Linux based operating systems today. Linus starting working on a MINIX (mini unix) system, which was a free operating system at the time with little features. However, he started to customize it for his own liking. Then, he realized that maybe all people would love to start working on his new operating system. In fact, Linux coming from Linus's MINIX system.
In Linux, everything is stored in files. From processes, to keyboard inputs; it's all in files! Which, can make for some really fun and interesting manipulations of the OS. So, being able to manipulate the operating system, understanding where different items live is very important for creating a good environment to work inside of.
The System:

At the very top, is the root. The root is at the very top of the hierarchical structure. Inside of root are a myriad of directories: a few of which will be talked about.
Bin:
Bin is simply short for
binary. Inside of this file are the binary executable programs that make up the operating systems commands. Commands such as ping, cat, kill and every other command in then (that are not alias's) are inside of this folder. Typically, we don't want to alter these. But, if installing something, put the binary compilation of the file into the
bin directory.
Dev:
Dev is short for
devices , where all of the system drivers are stored at. This includes system input and output and more. These are a lot more of the bare bones of the system. This also
A really interesting folder, inside of the folder dev, is the input folder. This folder maintains all of the user input from the keyboard and the mouse!
Remember: everything inside of the Linux operating system is just a file at the end of the day.
Etc:
Etc is a very interesting folder. Even though it does do many cool things, like the devices file, it's a pretty easy and usual spot to edit. The etc folder holds configuration files for items such as MySQL, SSH and other programs. If you want to directly change the configuration files, this is where to do that.
Proc:
Again, another amazing thing about the Linux OS! Proc is short for
process , which is a program currently running on the computer. Every process is simply a file. All of the processes directories are given using a unique value, known as the process id, or the PID. These aren't a great thing to alter, but it's pretty sweet that everything is a file that is accessible to the user.
If you're curious, using the
ps -a command will display all currently ran processes. To get a more vivid understanding of the processes being ran, run the
top command.
Home:
This is where most users will spend their time on the Linux operating system; in the home.
The next level holds each individual user, in their own individual folder. One level into a single user will then start to show the documents, desktop and more that the average user is used to seeing!
A Few Others:
• Media: Where external items hooked to the OS are stored at, such as thumb sticks, CD's.
• Lib: Where extra libraries being used by programs on the operating system are stored at.
• Tmp: Where temporary files being created by the operating system are being stored at. This is cleared every time the operating system is rebooted.
• Boot: Holds the kernels information for booting the operating system. Most Linux's distros, that aren't really old, use the grub boot loader.
Fun/Conclusion
Now, trying running this command...
sudo cat dev/input/mouse1 | hexdump -C
This gives a hexdump of the input coming in from the mouse! This can be done with the mouse, keyboard and so much more.
At the end of the day, the more we know about the environment that we work in, the more successful we are going to be. So, diving into where the configurations are stored at, libraries are stored at can save us all much googling and stress.