Linux File Hierarchy Structure



Linux File Hierarchy Structure

The Linux File Hierarchy Structure or the Filesystem Hierarchy Standard (FHS) defines the directory structure and directory contents in Unix-like operating systems. It is maintained by the Linux Foundation.
§  In the FHS, all files and directories appear under the root directory /, even if they are stored on different physical or virtual devices.
§  Some of these directories only exist on a particular system if certain subsystems, such as the X Window System, are installed.
§  Most of these directories exist in all UNIX operating systems and are generally used in much the same way; however, the descriptions here are those used specifically for the FHS, and are not considered authoritative for platforms other than Linux.




1. / (Root): Primary hierarchy root and root directory of the entire file system hierarchy.
§  Every single file and directory starts from the root directory
§  Only root user has the right to write under this directory
§  /root is root user’s home directory, which is not same as /

2. /bin: Essential command binaries that need to be available in single user mode; for all users, e.g., cat, ls, cp.
§  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 e.g. ps, ls, ping, grep, cp

3. /boot: Boot loader files, e.g., kernels, initrd.
§  Kernel initrd, vmlinux, grub files are located under /boot
§  Example: initrd.img-2.6.32-24-generic, vmlinuz-2.6.32-24-generic

4. /dev: Essential device files, e.g., /dev/null.
§  These include terminal devices, usb, or any device attached to the system.
§  Example: /dev/tty1, /dev/usbmon0

5. /etc: Host-specific system-wide configuration files.
§  Contains configuration files required by all programs.
§  This also contains startup and shutdown shell scripts used to start/stop individual programs.
§  Example: /etc/resolv.conf, /etc/logrotate.conf.

6. /home: Users’ home directories, containing saved files, personal settings, etc.
§  Home directories for all users to store their personal files.
§  example: /home/kishlay, /home/kv

7. /lib: Libraries essential for the binaries in /bin/ and /sbin/.
§  Library filenames are either ld* or lib*.so.*
§  Example: ld-2.11.1.so, libncurses.so.5.7


8. /media: Mount points for removable media such as CD-ROMs (appeared in FHS-2.3).
§  Temporary mount directory for removable devices.
§  Examples, /media/cdrom for CD-ROM; /media/floppy for floppy drives; /media/cdrecorder for CD writer

9. /mnt: Temporarily mounted filesystems.
§  Temporary mount directory where sysadmins can mount filesystems.

10. /opt: Optional application software packages.
§  Contains add-on applications from individual vendors.
§  Add-on applications should be installed under either /opt/ or /opt/ sub-directory.


11. /sbin: Essential system binaries, e.g., fsck, init, route.
§  Just like /bin, /sbin also contains binary executables.
§  The linux commands located under this directory are used typically by system administrator, for system maintenance purpose.
§  Example: iptables, reboot, fdisk, ifconfig, swapon



12. /srv: Site-specific data served by this system, such as data and scripts for web servers, data offered by FTP servers, and repositories for version control systems.
§  srv stands for service.
§  Contains server specific services related data.
§  Example, /srv/cvs contains CVS related data.


13. /tmp: Temporary files. Often not preserved between system reboots, and may be severely size restricted.
§  Directory that contains temporary files created by system and users.
§  Files under this directory are deleted when system is rebooted.

14. /usr: Secondary hierarchy for read-only user data; contains the majority of (multi-)user utilities and applications.
§  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
§  /usr/src holds the Linux kernel sources, header-files and documentation.



15. /proc: Virtual filesystem providing process and kernel information as files. In Linux, corresponds to a procfs mount. Generally automatically generated and populated by the system, on the fly.
§  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/uptime

16. /var: Contains variable data like system logging files, mail and printer spool directories, and transient and temporary files. Some portions of /var are not shareable between different systems. For instance, /var/log, /var/lock, and /var/run. Other portions may be shared, notably /var/mail, /var/cache/man, /var/cache/fonts, and /var/spool/news.’/var’ contains variable data, i.e. files and
directories the system must be able to write to during operation, whereas /usr should only contain static data.

17. /lost+found : Every partition has a lost+found in its upper directory. Files that were saved during failures are here, for e.g ext2/ext3 fsck recovery.

18. /sys: Modern Linux distributions include a /sys directory as a virtual filesystem (sysfs, comparable to /proc , which is a procfs), which stores and allows modification of the devices connected to the system, whereas many traditional UNIX and Unix-like operating systems use /sys as a symbolic link to the kernel source tree.

19. /run:  directory is now used as a temporary file storage system (tmpfs). Applications can now use /run the same way they use the /var/run directory. Runtime data for processes started since the last boot. This includes process ID files and lock files , among other things. The contents of this directory are recreated on reboot.(This directory consolidates /var/run and /var/lock from older versions of Red Hat Enterprise Linux.)

No comments:

Post a Comment