# Linux File System Hierarchy (FSH)

FSH stands for File System Hierarchy in Linux and is a standard in the Linux ecosystem in which all Linux distributions can have the same folder structure making it easy to develop, package and maintain the Linux software

![Linux File System Heirarchy](https://cdn.hashnode.com/res/hashnode/image/upload/v1681921806742/a4d79d5e-22ae-4b9f-a336-58dca04241af.png align="center")

**Let's dive in deeper to understand what all the above directories are:**

**/**

* The base of the Linux directory (Forward Slash)
    
* The starting point of the FSH
    
* In Linux, everything is treated as files
    

**/bin**

* Contains executable files that are used to run various system commands & utilities
    
* These executables can be executed by regular users
    
* Example: cp, mv, cat, ls, etc
    

**/boot**

* Stores files related to the booting process of the Linux system
    
* Example: Boot loader config files, kernel images, etc
    

**/dev**

* Contains device files
    
* Used to interact with various devices in system such as disks, partitions, printers, and other hardware devices
    

**/etc**

* Stores configuration files for system wide settings, applications, services, and daemons
    
* Example: /etc/passwd, /etc/hosts, /etc/fstab and etc
    

**/home**

* Stores home directories of all regular users of the system
    
* Example: /home/&lt;username&gt;
    

**/lib**

* Used to store important shared libraries
    

**/media**

* Used as a mount point for mounting removable media like CDs, DVDs, USB drives and other external devices
    

**/mnt**

* Mnt stands for mount point
    
* Mount point for temporarily mounting file systems, devices, or network shares
    

**/opt**

* Directory used for installing optional or add-on software packages which are part of the base system
    
* Example: third party softwares
    

**/proc**

* Proc stands for process
    
* Virtual file system which is used to interact with the kernel to get the system process information, system resources, hardware config and etc in real time
    
* Example: /proc/cpuinfo, /proc/meminfo
    

**/root**

* Home directory for the root user where root users config files, personal files and settings are stored
    

**/sbin**

* Stores system executable or binaries
    
* These binaries are reserved to be executed by system admins
    

**/tmp**

* Tmp stands for temporary
    
* Used to store temporary files that are created and used by various programs and processes by the system
    
* Tmp folder is cleaned after every reboot
    

**/usr**

* Usr stands for Unix System Resources
    
* Used to store user related files, libraries, etc
    
* Example: /usr/bin, /usr/sbin, /usr/local and etc
    

**/var**

* Var stands for variables files
    
* Used to store files that are expected to grow/shrink over time
    
* Example: Log files, spool files, temporary files
    

---

Hope I was able to make a good understanding of the concept. Thank you.

> Please let me know in the comment section about any corrections/mistakes, am open to improvements and suggestions.
> 
> Please do follow me for more such content related to DevOps world
> 
> Cheers, Vish. Happy Learning!!!
