Во всех Unix-подобных ОС (FreeBSD, Linux, с некоторыми изменениями в Android и MacOS X) используется традиционная схема именования каталогов, которая описывается стандартом Filesystem Hierarchy Standard. В целом структура каталогов представляет из себя дерево с единым корнем, обозначаемым /.
В корневом каталоге находятся следующие подкаталоги:
"Базовые" каталоги, которые для правильного старта системы должны быть доступны в момент загрузки ядра:
/etc – конфигурационные файлы;
/bin – минимальный набор утилит пользователя, необходимых для запуска системы;
/sbin – минимальный набор утилит администратора, необходимых для запуска системы;
/lib – динамические библиотеки для утилит из /bin и /sbin. В Linux в каталоге /lib/modules размещаются модули ядра;
/dev – каталог, содержащий набор специальных файлов устройств – точек доступа к драйверам;
/tmp – каталог для временных файлов;
Дополнительные каталоги:
/root – «домашний» каталог администратора (пользователя root).
/usr – основной каталог, содержащий программы, библиотеки, файлы документации и пр.;
/var – каталог для данных большого и часто меняющегося размера – лог-файлов, баз данных, временных файлов печати и почты и пр.;
/opt – каталог для установки коммерческих программ;
/home – каталог для размещения «домашних» каталогов пользователей.
Виртуальные файловые системы в каталогах /proc и /sys предоставляют доступ к переменным ядра ОС, оформленным в виде виртуальных файлов.
Имя каталога /usr произошло от слова User (пользователь) в те времена, когда диски были маленькими и полный комплект программ на них не входил. Каждому пользователю приходилось создавать свой рабочий набор программ на отдельном диске, который и подключался в каталог /usr. В большинстве современных Unix-подобных ОС все стандартные программы размещаются именно в каталоге /usr (Android, скорее, исключение).
В каталоге /usr находятся следующие подкаталоги:
/usr/bin, /usr/sbin, /usr/lib – по аналогии с каталогами в корне;
/usr/include – заголовочные файлы для компиляторов языков C и C++ ;
/usr/share – документация, шрифты, программы на скриптовых языках и другие неизменяемые данные, которые могут быть использованы через сетевую файловую систему с любой версией программ и для любой архитектуры процессора;
/usr/local – каталог для установки программ, не включенных в основную поставку системы. Название получил в то время, когда разработчики Unix'а активно экспериментировали с сетевыми файловыми системами. Считалось, что каталог /usr может быть подключен по сети для всех компьютеров в локальной сети, а /usr/local – расположен на локальном диске. В /usr/local находятся стандартные подкаталоги etc, bin, sbin, lib.
Каталог /var предназначен для хранения больших объемов данных. Иногда его располагают на отдельном большом разделе диска. В /var можно отметить следующие подкаталоги:
/var/log – лог-файлы;
/var/mail – почтовые ящики пользователей;
/var/tmp – общедоступный каталог для временных файлов. В некоторых системах /tmp размещается на маленьком разделе диска, в этом случае /var/tmp - это каталог в котором можно размещать большие временные файлы.
В зависимости от используемой ОС, стадии загрузки системы и прав доступа программе могут быть доступны только некоторые из перечисленных каталогов. Существуют только два элемента файловой системы, которые доступны всегда - каталог /tmp и файл управляющего терминала /dev/tty.