Linux Directory Structure (File System Structure) Explained

Print Friendly, PDF & Email

Have you wondered why certain programs are located under /bin, or /sbin, or /usr/bin, or /usr/sbin? For example,the less command is located under the /usr/bin directory. Why not /bin, or /sbin, or /usr/sbin? What is the different between all these directories?

In this article, I will review the Linux filesystem structures and explain the meaning of individual high-level directories.

/ – Root

Every single file and directory starts from the root directory.
Only root user has write privilege under this directory.
Please note that /root is root user’s home directory,
which is not same as /.

/bin – User Binaries

Contains binary executables.
Common linux commands you need to use in
single-user modes are located under this directory.
Commands used by all the users of the system are
located here.

For example: ps, ls, ping, grep, cp.

/sbin – System Binaries

Just like /bin, /sbin also contains binary executables.
But, the linux commands located under this directory
are used typically by system aministrator, for system
maintenance purpose.

For example: iptables, reboot, fdisk, ifconfig, swapon

/etc – Configuration Files

Contains configuration files required by all programs.
This also contains startup and shutdown shell scripts used to start/stop individual programs.

For example: /etc/resolv.conf, /etc/logrotate.conf

/dev – Device Files

Contains device files.
These include terminal devices, usb, or any device attached to the system.

For example: /dev/tty1, /dev/usbmon0

/proc – Process Information

Contains information about system process.
This is a pseudo filesystem contains information about running process. For example: /proc/{pid}
directory contains information about the process with that particular pid.
This is a virtual filesystem with text information about system resources. For example: /proc/

For example: cat /proc/cpuinfo will give detailed information about your CPU

/var – Variable Files

var stands for variable files.
Content of the files that are expected to grow can be found under this directory.
This includes — system log files (/var/log); packages and database files (/var/lib); emails (/var/
); print queues (/var/spool); lock files (/var/lock); temp files needed across reboots (/var/tmp);

/tmp – Temporary Files

Directory that contains temporary files created by system and users.
Files under this directory are deleted when system is rebooted.

/usr – User Programs

Contains binaries, libraries, documentation, and source-code for second level programs.
/usr/bin contains binary files for user programs. If you can’t find a user binary under /bin, look
under /usr/bin. For example: at, awk, cc, less, scp

/usr/sbin contains binary files for system administrators. If you can’t find a system binary under /sbin, look under /usr/sbin.
For example: atd, cron, sshd, useradd, userdel

/usr/lib contains libraries for /usr/bin and /usr/sbin

/usr/local contains users programs that you install from source. For example, when you install
apache from source, it goes under /usr/local/apache2

/home – Home Directories

Home directories for all users to store their personal files.

For example: /home/john, /home/nikita

/boot – Boot Loader Files

Contains boot loader related files.
Kernel initrd, vmlinux, grub files are located under /boot

For example: initrd.img-2.6.32-24-generic, vmlinuz-2.6.32-24-generic

/lib – System Libraries

Contains library files that supports the binaries located under /bin and /sbin
Library filenames are either ld* or lib*.so.*

For example:,

/opt – Optional add-on Applications

opt stands for optional.
Contains add-on applications from individual vendors. Add-on applications should be installed under either /opt/ or /opt/sub-directory.

/mnt – Mount Directory

Temporary mount directory where sysadmins can mount filesystems.

/media – Removable Media Devices

Temporary mount directory for removable devices. This can be changes and will differ from distribution to distribution.

For examples, /media/cdrom for CD-ROM; /media/floppy for floppy drives; /media/cdrecorder
for CD writer

/srv – Service Data

srv stands for service.
Contains server specific services related data.

For example, /srv/cvs contains CVS related data.

Share and Enjoy !

0 0

Add a comment

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.