The FreeBSD directory hierarchy is fundamental to obtaining an overall understanding of the system. The most important concept to grasp is that of the root directory, “/”. This directory is the first one mounted at boot time and it contains the base system necessary to prepare the operating system for multi-user operation. The root directory also contains mount points for other file systems that are mounted during the transition to multi-user operation.
A mount point is a directory where additional file systems can be grafted onto a
parent file system (usually the root file system). This is further described in Section 3.5. Standard mount points include /usr, /var, /tmp, /mnt, and /cdrom. These directories are usually referenced to entries in the
file /etc/fstab. /etc/fstab is a
table of various file systems and mount points for reference by the system. Most of the
file systems in /etc/fstab are mounted automatically at boot
time from the script rc(8) unless they
contain the noauto
option. Details can be found in Section 3.6.1.
A complete description of the file system hierarchy is available in hier(7). For now, a brief overview of the most common directories will suffice.
Directory | Description |
---|---|
/ | Root directory of the file system. |
/bin/ | User utilities fundamental to both single-user and multi-user environments. |
/boot/ | Programs and configuration files used during operating system bootstrap. |
/boot/defaults/ | Default bootstrapping configuration files; see loader.conf(5). |
/dev/ | Device nodes; see intro(4). |
/etc/ | System configuration files and scripts. |
/etc/defaults/ | Default system configuration files; see rc(8). |
/etc/mail/ | Configuration files for mail transport agents such as sendmail(8). |
/etc/namedb/ | named configuration files; see named(8). |
/etc/periodic/ | Scripts that are run daily, weekly, and monthly, via cron(8); see periodic(8). |
/etc/ppp/ | ppp configuration files; see ppp(8). |
/mnt/ | Empty directory commonly used by system administrators as a temporary mount point. |
/proc/ | Process file system; see procfs(5), mount_procfs(8). |
/rescue/ | Statically linked programs for emergency recovery; see rescue(8). |
/root/ | Home directory for the root account. |
/sbin/ | System programs and administration utilities fundamental to both single-user and multi-user environments. |
/tmp/ | Temporary files. The contents of /tmp are usually NOT preserved across a system reboot. A memory-based file system is often mounted at /tmp. This can be automated using the tmpmfs-related variables of rc.conf(5) (or with an entry in /etc/fstab; see mdmfs(8)). |
/usr/ | The majority of user utilities and applications. |
/usr/bin/ | Common utilities, programming tools, and applications. |
/usr/include/ | Standard C include files. |
/usr/lib/ | Archive libraries. |
/usr/libdata/ | Miscellaneous utility data files. |
/usr/libexec/ | System daemons & system utilities (executed by other programs). |
/usr/local/ | Local executables, libraries, etc. Also used as the default destination for the FreeBSD ports framework. Within /usr/local, the general layout sketched out by hier(7) for /usr should be used. Exceptions are the man directory, which is directly under /usr/local rather than under /usr/local/share, and the ports documentation is in share/doc/port. |
/usr/obj/ | Architecture-specific target tree produced by building the /usr/src tree. |
/usr/ports/ | The FreeBSD Ports Collection (optional). |
/usr/sbin/ | System daemons & system utilities (executed by users). |
/usr/share/ | Architecture-independent files. |
/usr/src/ | BSD and/or local source files. |
/usr/X11R6/ | X11R6 distribution executables, libraries, etc (optional). |
/var/ | Multi-purpose log, temporary, transient, and spool files. A memory-based file system is sometimes mounted at /var. This can be automated using the varmfs-related variables of rc.conf(5) (or with an entry in /etc/fstab; see mdmfs(8)). |
/var/log/ | Miscellaneous system log files. |
/var/mail/ | User mailbox files. |
/var/spool/ | Miscellaneous printer and mail system spooling directories. |
/var/tmp/ | Temporary files. The files are usually preserved across a system reboot, unless /var is a memory-based file system. |
/var/yp/ | NIS maps. |