Linux Structure#

Filesystem Hierarchy Standard layout. The operator uses this map to know where binaries, configuration, user data, and runtime state live on any Linux distribution.

Directory hierarchy#

Directory

Description

/

Primary hierarchy root and root directory of the entire file system.

/bin

Essential command binaries needed in single-user mode, for all users (cat, ls, cp).

/boot

Boot loader files, kernels, initrd.

/dev

Device files (/dev/null, /dev/sda1, /dev/tty, /dev/random).

/etc

Host-specific system-wide configuration.

/etc/opt

Configuration for add-on packages stored in /opt.

/etc/sgml, /etc/xml

Catalogs for SGML / XML processing software.

/etc/X11

X Window System v11 configuration.

/home

Users’ home directories.

/lib

Libraries essential for binaries in /bin and /sbin.

/lib<qual>

Alternative format essential libraries (optional).

/media

Mount points for removable media (CD-ROMs, USB).

/mnt

Temporarily mounted filesystems.

/opt

Optional application software packages.

/proc

Virtual filesystem exposing process and kernel information as files (procfs).

/root

Home directory for the root user.

/run

Run-time variable data since last boot (logged-in users, running daemons).

/sbin

Essential system binaries (fsck, init, route).

/srv

Site-specific data served by this system (web, FTP, VCS).

/sys

Devices, drivers, and kernel features.

/tmp

Temporary files (not preserved across reboots, may be size-limited).

/usr

Secondary hierarchy for read-only user data (utilities, applications).

/usr/bin

Non-essential command binaries.

/usr/include

Standard include files.

/usr/lib

Libraries for /usr/bin and /usr/sbin.

/usr/local

Tertiary hierarchy for local data, specific to this host.

/usr/sbin

Non-essential system binaries (network-service daemons).

/usr/share

Architecture-independent (shared) data.

/usr/src

Source code (including kernel source).

/var

Variable files (logs, spool, temp mail).

/var/cache

Application cache data.

/var/lib

Persistent state (databases, package metadata).

/var/lock

Lock files for resources currently in use.

/var/log

Log files.

/var/mail

Mailbox files.

/var/opt

Variable data from packages in /opt.

/var/run

Run-time variable data since boot.

/var/spool

Spool for tasks waiting (print queues, outgoing mail).

/var/spool/mail

Deprecated mailbox location.

/var/tmp

Temporary files preserved between reboots.

Important file locations#

/boot/vmlinuz       Linux kernel file
/dev/had            first IDE HDD device file
/dev/hdc            IDE CDROM device file
/dev/null           pseudo device
/etc/bashrc         system defaults and aliases used by bash
/etc/crontab        cron run commands on a predefined time interval
/etc/exports        filesystem available on the network
/etc/fstab          disk drive info and mount points
/etc/group          security group information
/etc/grub.conf      grub bootloader configuration
/etc/init.d         service startup scripts
/etc/lilo.conf      lilo bootloader configuration
/etc/hosts          IPs and corresponding hostnames
/etc/hosts.allow    hosts allowed access to services
/etc/hosts.deny     hosts denied access to services
/etc/inittab        INIT process and run-level interactions
/etc/issue          pre-login message
/etc/modules.conf   configuration files for system modules
/etc/mtab           currently mounted blocks
/etc/motd           message of the day
/etc/passwd         system users (password hash redacted)
/etc/printcap       printer information
/etc/profile        bash shell defaults
/etc/profile.d      application script, executed after login
/etc/rc.d           run-level specific script information
/etc/rc.d/init.d    run-level initialisation script
/etc/resolv.conf    DNS servers used by the system
/etc/securetty      terminal list where root login is possible
/etc/shadow         system users with password hash
/etc/skel           script that populates new user home dir
/etc/termcap        ASCII terminal behavior definitions
/etc/X11            X-window configuration files
/usr/bin            normal user executable commands
/usr/bin/X11        binaries of X windows system
/usr/include        files used by C programs
/usr/share          shared man, info files
/usr/lib            libraries required for compilation
/usr/sbin           super-user commands for sysadmin
/proc/cpuinfo       CPU information
/proc/filesystems   filesystems currently in use
/proc/interrupts    current interrupts
/proc/ioports       I/O addresses used by devices
/proc/meminfo       memory usage info
/proc/modules       currently loaded kernel modules
/proc/mount         mounted filesystem info
/proc/stat          detailed system statistics
/proc/swaps         swap file info
/version            Linux version
/var/log/auth*      authorization login attempts
/var/log/lastlog    last boot
/var/log/messages   syslog daemon messages
/var/log/wtmp       login time and duration per user

References#