====== Ubuntu - Filesystem - File Systems ======
The Linux filesystem is responsible for storing your system data and managing them. A filesystem can be defined as the mechanism behind data storing and retrieval.
The entire Linux installation resolves around the **/** point. It is called the root of the file system and is essentially the starting point of your system. It contains several directories, most bearing some historical significance.
{{:ubuntu:linux_file_system.jpg?800|}}
----
===== /bin =====
It contains the binaries, or executables of the various programs installed in your machine.
In many systems, this doesn’t exist as a real directory but serves as a symlink to the **/usr/bin** directory.
----
===== /boot =====
All essential files required for the system startup are located here.
You should not experiment with the contents of this directory unless you know what you’re doing. Else, you might corrupt the system itself and disrupt functionality.
----
===== /dev =====
The **/dev** directory contains the device files of your system.
These are the file representations of your USB drives, hard-disk drives, Webcam, and so on.
----
===== /etc =====
Historically, the **/etc** directory was used for keeping various miscellaneous files. Today, however, it is a standard convention to store the system-wide configuration files in this directory.
Information like your username/password, network credentials, mount-point of partitions is stored here.
----
===== /home =====
This is the personal directory of the each user.
It can house multiple sub-directories based on the number of users in your machine.
Say you’re user “peter”, then you’ll be allocated the directory /home/peter. When logged in, you’ll be presented with the /home/peter directory inside your terminal.
It is also denoted as :~$ in the Bash shell.
----
===== /lib =====
System libraries are located here.
These are the snippets of code used by your applications to perform some task.
Their example includes code snippets that draw windows or send files.
----
===== /media =====
This directory is the mount-point of plug and play devices such as external storage.
It is a relatively newer addition to the Linux file system.
----
===== /mnt =====
The old and grumpy Unix admins used this directory to mount on-demand devices or partitions manually.
Although used infrequently, it remains in the Linux filesystem due to its historical importance.
----
===== /opt =====
Stands for optional and meant to hold optional system files.
Admins often use it to host third-party applications that they installed from source.
----
===== /proc =====
It hosts the process files, kernel modules, and similar dynamic data.
You should not interfere with this else you may render your system obsolete.
----
===== /root =====
Like **/home** but for the superuser of the system.
It is the directory you’ll be presented with when you switch to the root account.
----
===== /run =====
This is used for holding temporary data used by Linux system processes.
Don’t mess here unless you know what you’re up for.
----
===== /sbin =====
Like **/bin** but holds only system essential binaries.
Various everyday used utilities like ls, cd, cp, etc are located here.
Do not manipulate them.
----
===== /usr =====
A ‘use it for all kind’ location where various information is stored.
They can include binaries, libraries, icons, manuals, and so on.
----
===== /srv =====
The server directory.
It contains the source files of web apps and houses other communication protocols.
----
===== /sys =====
Another virtual directory, such as **/dev**.
It contains sensitive information and shouldn’t be experimented unless the user knows what he’s up to.
----
===== /tmp =====
It is used for holding temporary values that will be deleted during system reboot.
----
===== /var =====
The original purpose of this directory was to host all variable files.
Nowadays, it contains several sub-directories for storing things like logs, caches, and such.
----
There might be some additional directories in your root. It is usually subject to the specific Linux distribution and can vary across systems.
----