15 things you need to know about the Linux Directory Structure

Know the important Linux top level directories

Linux Directory Structure

In the second chapter of our ‘Learn Linux’ series, today we learn about the Linux Directory structure. Every operating systems have certain hierarchy of directory for organizing the files as a way to help users keep track of where something can be found.

Take a look at the File Manager shown below. Each folder serves a defined purpose, most importantly the Security. Linux is typically safer than Microsoft Windows just because of the way Linux works within these system directories. Let’s take a look at each one of these directories.

1. Root /

Root directory is the beginning point for the file system hierarchy. Every single file and directory starts from the root directory. As the name suggests, only the root user has write privilege under this directory. But it’s important to note that “/” is not related to “/root” in anyway. All the below listed directories reside in the Root Directory.

Linux Directory Structure
Linux Directory Structure

2. User Binaries /bin

bin directory
bin directory in Manjaro Linux

The “bin” directory is home to all the executable programs. In Linux, the executables are termed as “Binaries”. All commands used by the users of the computer are located here.

3. System Binaries s/bin

sbin directory
sbin directory Eg. Manjaro Linux

s/bin directory also contains binary commands just like /bin directory. The only difference is the Linux commands located under this directory are used by system administrator. Obviously system admin uses it for system maintenance purpose.

4. Boot Loader /boot

As the name of the folder indicates, /boot folder contains boot loader related files including the important kernel, initrd, vmlinux, grub files, etc..

5. System configuration files /etc

etc directory
etc directory

This is the the place where all the configuration files required by all programs are stored. Each program will have a config file that is used to control the operation of a program including start or stop of the program. It is not an executable binary.

6. Home /home

Home directory has all users personal files. Inside it, each user account of the system will have a individual directory for instance “kiran” in my system.

home directory
home directory

7. System Libraries /lib /lib64

System Libraries /lib
System Libraries

This folder contains library files that are needed to boot the system and run the commands in the the binaries located under /bin and /sbin directories.

8. Devices /dev

/dev contains the files that are used by the USB devices attached to the computer.

9. Mount directory /mount

This is a temporary mount directory which is typically used by the system administrators for mounting the different file systems.

10. Optional add-on Apps /opt

/opt is for the installation of add-on application software packages. It is typically used for third-party software, which implies they are already pre-compiled.

11. Process Information /proc

The proc file system is a pseudo-file system which is used as an interface to kernel data structures. This file system stores text information about system resources.

12. Root /root

When a user sign in as the root user, there will be a separate home directory created.

13. Temporary space /tmp

Tmp directory is a temporary folder that will be periodically deleted. In fact, some Linux distributions cleanup during each boot. The directory is used by the system programs for temporarily storing the data. For example, when you extract an archive, the contents are first extracted to the /tmp directory, and are then moved to the location you provided.

14. User folder /usr

This folder is home to all user related programs, libraries, and documentation. The sub-directories in /usr relate to those described in this article.

15. Variable data /var

Variable data like system log files reside here. These files get constantly modified depending on ongoing user and system tasks.


Hi there! I’m Kiran Kumar, founder of FOSSLinux.com. I’m an avid Linux lover, and enjoys hands-on with new promising distros. Currently, I’m using Linux Mint as a daily driver and run several other distros such as Fedora, Solus, Ubuntu, Debian, and some new ones on my test PC and virtual machines. I have a day job as an Engineer, and this website is one of my favorite past time activities especially during Winter ;). When I’m not writing for FOSSLinux, I’m seen biking and hiking on scenic trails. Hope you enjoy using this website as much as I do writing for it. Feedback from readers is something that inspires me to do more, and spread my love for Linux. If you find time, drop me an email or feedback from ‘Contact’ page. Or simply leave a comment below if you found this article useful. Have a good day!

Leave a Reply

Be the First to Comment!

Notify of