Views
FHS
Вступление.
В отличие от других ОС, в линуксе существует строгий стандарт на расположение файлов и каталогов. Называется этот стандарт Filesystem Hierarchy Standard или сокращенно FHS. В этом стандарте описаны все основные каталоги и файлы, которые присутствуют в любой инсталляции линукса.
Следование общим правилам расположения файлов позволяет избежать беспорядка и путаницы.
Основные каталоги, которые присутствуют в линуксе и их предназначение:
/home
Каталог с домашними папками пользователей системы.
В этом каталоге создаются домашние папки пользователей вида /home/username. Обычно, домашнюю папку пользователя в числе прочих действий создает скрипт /usr/bin/useradd. Обратите внимание, что домашняя папка пользователя root находится не здесь, а в корне.
/root
Домашняя папка суперпользователя root. Она расположена отдельно от всех остальных домашних папок по соображениям безопасности и стабильности.
/usr/local
/usr/local/bin
/usr/local/sbin
/usr/local/lib
/usr/local/include
/usr/local/share
...
Отдельная иерархия для установки случайных программ, которые не входят в дистрибутив. Установка программ в отдельное место позволяет гарантировать, что основная инсталляция не будет случайно испорчена или затерта новыми файлами. В нормально сопровождаемой системе /usr/local обычно пуст.
/opt
Отдельная папка для установки случайных программ. Отличие от иерархии /usr/local состоит в том, что в /opt обычно лежат программы, которые совсем не следуют FHS и занимают одну директорию /opt/programname, в то время как в /usr/local файлы программ раскладываются по папкам bin,lib,include, то есть точно также, как это происходит в основной системе.
/proc
Это точка монтирования виртуальной файловой системы proc. С помощью этой файловой системы ядро сообщает множество полезной информации о текущем состоянии и функционировании системы. Содержимое этой папки не занимает места на диске, а содержимое директорий и файлов возникает в момент обращения к ним и таким образом отражает текущее актуальное состояние.
/initrd
Опциональная папка, в которую монтируется текущий имидж initrd. Для работы эта папка не нужна и используется исключительно в информационных целях.
/mnt
Здесь расположены точки монтирования тех файловых систем, которые используются не постоянно, а периодически. Например для просмотра содержимого cdrom или флоппи-дисковода.
/bin
/usr/bin
~/bin
В этих каталогах лежат исполняемые файлы программ, которые доступны пользователям. Эти папки обычно указаны в переменной окружения PATH, что позволяет вызывать их без указания пути. Для поиска точного пути к программе в этих папках можно использовать команду which.
/var
Здесь обычно лежат изменяющиеся данные.
/var/www
Здесь обычно лежит web-содержимое, раздаваемое http сервером apache.
/var/ftp
Аналогичо для ftp сервера.
/var/spool/mail
Здесь лежат основные почтовые ящики ("inbox") всех пользователей. Почтовый ящик пользователя обычно имеет вид /var/spool/mail/username
/tmp
Временные файлы. В современных дистрибутивах содержат минимум информации по соображенниям безопасности. Основной каталог с временными файлами находитсЯ по адресу /home/username/tmp, то есть, у каждого пользователя он свой.
/lib
Минимально необходимый набор библиотек.
/lib/modules/kernel-version
Модули ядра kernel-version.
/usr/lib
Библиотеки.
/usr/include
Заголовочные файлы для сборки программ.
/usr/share/doc
Документация к программам.
/sbin
/usr/sbin
Программы суперпользователя. Обычно входят в переменную PATH пользователя root.