Файловая структура *nix-систем серьезно отличается от структуры в Windows и заслуживает отдельного внимания.
Начнем с базовых понятий:
- Файловая структура представляет собой дерево
- В узлах этого дерева находятся директории — файлы специального типа
- В листьях дерева расположены файлы
В отличии от Windows, в Linux вас не будут спрашивать куда устанавливать программное обеспечение (ПО), где хранить временные файлы, какие файлы будут являть настройками и т.д.
В Linux после выполнения какого-то действия, особенно, связанного с установкой программного обеспечения, операционная система не сообщит ничего о том куда установлено ПО, где находятся конфигурационное файлы, как запускать ПО и т.п.
Структура каталогов Linux достаточно жёсткая и имеет иерархическую структуру, т.е. все каталоги сводятся к единому каталогу root directory (обозначается этот каталог как / — косая черта из правого угла в нижний левый).
Прежде ем начинать работу с Linux хорошо иметь представление о том, что за каталоги находятся в структуре Linux и какое назначение имеет каждый их них.
В Linux есть FHS (англ. Filesystem Hierarchy Standard) — базовый стандартизированный набор каталогов. За каждым каталогом закреплена какая-то особая роль: за нас подумали и решили какие каталоги нам необходимы, т.е. как разработчик операционной системы решил — так мы и видим каталоги:
- / — Корневой каталог (root directory) в котором находятся все остальные каталоги, содержит всю файловую иерархию.
- /bin — Основные исполняемые файлы. Утилиты, необходимые операционной системе (cat, ls, cp)
- /boot — Информация необходимая для загрузки операционной системы. Загрузочные файлы (в том числе файлы загрузчика, ядро, initrd, System.map)
- /dev — Устройства, которые представлены в виде файлов (например, /dev/null, /dev/zero)
- /etc — Общесистемные конфигурационные файлы (настройки самой системы и настройки служб системы)
- /home — Содержит домашние каталоги пользователей, которые в свою очередь содержат персональные настройки и данные пользователя
- /lib — Основные библиотеки необходимые для бинарных файлов, необходим для работы программ из /bin и /sbin
- /media — Точки монтирования для сменных носителей, таких как CD-ROM, DVD-ROM (впервые описано в FHS-2.3)
- /mnt — Содержит временно монтируемые файловые системы. Временное монтирование блочных устройств
- /opt — Дополнительное программное обеспечение
- /proc — Содержит информацию о всех процессах операционной системы. Утилиты работающие с процессами берут информацию из этого каталога. Этот каталог это виртуальная файловая система, представляющая состояние ядра операционной системы и запущенных процессов в виде файлов
- /root — Домашний каталог для пользователя root
- /run — Информация о системе с момента её загрузки, в том числе данные, необходимые для работы демонов (pid-файлы, UNIX-сокеты и т.д.)
- /sbin — Системные исполняемые файлы. Основные системные программы для администрирования и настройки системы (например, init, iptables, ifconfig)
- /srv — Данные для сервисов, предоставляемых системой (например, www или ftp)
- /sys — Содержит информацию об устройствах, драйверах, а так же некоторых свойствах ядра
- /tmp — Временные файлы
- /usr — Содержит вторичную иерархию для данных пользователя и его бинарных и системных файлов
- /var — Изменяемые файлы, такие как файлы логов, регистрации, временные почтовые файлы, файлы спулеров
Самые часто используемые каталоги
- /etc — файлы настроек
- /var/log — логи
- /home/<user_name> — домашний каталог пользователя