4.15. Important Directories
You already know about /home, where user files are stored. As a system administrator and programmer, several other directories will be important to you. Here are a few, along with their contents:
The most essential Unix commands, such as ls.
Other commands. The distinction between /bin and /usr/bin is arbitrary; it was a convenient way to split up commands on early Unix systems that had small disks.
Very common commands used by the superuser for system administration.
Commands used less often by the superuser for system administration.
Location where the kernel and other files used during booting are sometimes stored.
Files used by subsystems such as networking, NFS, and mail. Typically, these contain tables of network services, disks to mount, and so on. Many of the files here are used for booting the system or individual services of it and will be discussed elsewhere in this book.
Administrative files, such as log files, used by various utilities.
Temporary storage for files being printed, sent by UUCP, and so on.
Standard libraries, such as libc.a. When you link a program, the linker always searches here for the libraries specified in -l options.
The X Window System distribution. Contains the libraries used by X clients, as well as fonts, sample resources files, and other important parts of the X package. This directory is usually a symbolic link to /usr/X11R6/lib/X11.
Standard location of include files used in C programs, such as <stdio.h>.
Location of sources to programs built on the system.
Programs and datafiles that have been added locally by the system administrator.
Sample startup files you can place in home directories for new users.
This directory contains the so-called device files, the interface between the filesystem and the hardware (e.g., /dev/modem represents your modem in the system).
Just as /dev is the interface between the filesystem and the hardware devices, /proc is the interface between the filesystem and the running processes, the CPU, and memory. The files here (which are not real files, but rather virtual files generated on the fly when you view them) can give you information about the environment of a certain process, the state and configuration of the CPU, how your I/O ports are configured, and so forth.
The /opt directory is often used for larger software packages. For example, it is quite likely that you will find the KDE Desktop Environment in /opt/kde3 (or /opt/kde4, once version 4 is out), the office productivity suite OpenOffice in /opt/OpenOffice.org, and the Firefox web browser in /opt/firefox.