Linux System Directories

  1. / - The root directory, where everything begins

  2. /bin - Contains binaries (programs) that must be present for the system to boot and run

  3. /boot - Contains the Linux kernel, initial RAM disk image (for drivers needed at boot time), and the boot loader.

    • Interesting files:

    • /boot/grub/grub.conf or menu.lst, which are used to configure the boot loader

    • /boot/vmlinuz, the Linux kernel

  4. /dev - This is a special directory that contains device nodes. “Everything is a file” also applies to devices. Here is where the kernel maintains a list of all the devices it understands.

  5. /etc - The /etc directory contains all of the system-wide configuration files. It also contains a collection of shell scripts that start each of the system services at boot time. Everything in this directory should be readable text.

    • Interesting files: While everything in /etc is interesting, here are some of my all-time favorites:

    • /etc/crontab, a file that defines when automated jobs will run

    • /etc/fstab, a table of storage devices and their associated mount points

    • /etc/passwd, a list of the user account

  6. /home - In normal configurations, each user is given a directory in /home. Ordinary users can write files only in their home directories. This limitation protects the system from errant user activity.

  7. /lib - Contains shared library files used by the core system programs. These are similar to DLLs in Windows.

  8. /lost+found - Each formatted partition or device using a Linux file system, such as ext3 will have this directory. It is used in the case of a partial recovery from a filesystem corruption event. Unless something really bad has happened to your system, this directory will remain empty.

  9. /media - On modern Linux systems the /media directory will contain the mount points for removable media such as USB drives, CD-ROMs, etc. that are mounted automatically at insertion.

  10. /mnt - On older Linux systems, the /mnt directory contains mount points for removable devices that have been mounted manually.

  11. /opt - The /opt directory is used to install “optional” software. This is mainly used to hold commercial software products that may be installed on your system.

  12. /proc - The /proc directory is special. It’s not a real filesystem in the sense of files stored on your hard drive. Rather, it is a virtual filesystem maintained by the Linux kernel. The “files” it contains are peepholes into the kernel itself. The files are readable and will give you a picture of how the kernel sees your computer.

  13. /root - This is the home directory for the root account.

  14. /sbin - This directory contains “system” binaries. These are programs that perform vital system tasks that are generally reserved for the superuser.

  15. /tmp - The /tmp directory is intended for storage of temporary, transient files created by various programs. Some configurations cause this directory to be emptied each time the system is rebooted.

  16. /usr - The /usr directory tree is likely the largest one on a Linux system. It contains all the programs and support files used by regular users

  17. /usr/bin - /usr/bin contains the executable programs installed by your Linux distribution. It is not uncommon for this directory to hold thousands of programs.

  18. /usr/lib - The shared libraries for the programs in /usr/bin

  19. /usr/local - The /usr/local tree is where programs that are not included with your distribution but are intended for system-wide use are installed. Programs compiled from source code are normally installed in /usr/local/bin. On a newly installed Linux system, this tree exists, but it will be empty until the system administrator puts something in it.

  20. /usr/sbin - Contains more system administration programs

  21. /usr/share - /usr/share contains all the shared data used by programs in /usr/bin. This includes things like default configuration files, icons, screen backgrounds, sound files, etc.

  22. /usr/share/doc - Most packages installed on the system will include some kind of documentation. In /usr/share/doc, we will find documentation files organized by package.

  23. /var - With the exception of /tmp and /home, the directories we have looked at so far remain relatively static; that is, their contents don’t change. The /var directory tree is where data that is likely to change is stored. Various databases, spool files, user mail, etc. are located here.

  24. /var/log - /var/log contains log files, records of various system activity. These are very important and should be monitored from time to time. The most useful one is /var/log/ messages. Note that for security reasons on some systems, you must be the superuser to view log files.

Relevant Book:

The Linux Command Line - A Complete Introduction

Disclaimer: This is a personal blog that might come in handy when I suffer from Dementia in future.