Если перешли с Windows, файловая система Linux может показаться вам совершенно чужой. Диск C:\ и буквы дисков ушли и их заменил слеш / и директории со страшно звучащими названиями, в основном состоящие из трех букв.
Существует стандарт Filesystem Hierarchy Standard (FHS), который определяет структуру файловых систем в Linux и других UNIX-подобных операционных систем. Впрочем, файловые системы Linux также содержат некоторые директории, которые пока что не были определены данным стандартом.
/ – корневая директория
Все в вашей системе Linux находится в директории /, также известной как корневая директория. Может показаться, что директория / чем-то похожа на директорию C:\ в Windows — строго говоря, это не так, потому что в Linux нет букв дисков. В то время, как другая разметка находилась бы в D:\ в Windows, эта же другая разметка появилась бы в другой папке в директории / на Linux.
/bin – необходимые пользовательские бинарные файлы
Директория /bin содержит необходимые пользовательские бинарные файлы (программы), которые должны существовать, когда система работает в режиме одного пользователя. Приложения, такие как Firefox, хранятся в /usr/bin, а самые важные системные программы и утилиты, такие как bash-консоль, хранятся в /bin. Директория /usr может храниться на другой разметке — помещение этих файлов в директорию /bin создает уверенность в том, что у системы будут эти важные утилиты, даже если не подключены другие файловые системы. Директория /sbin похожа на нее: она содержит необходимые бинарники для сиситемного администрирования.
/boot – статические файлы для загрузки
Директория /boot содержит файлы, требуемые для загрузки системы — например, файлы загрузчика GRUB и ваши ядра Linux хранятся здесь. Хотя там не находятся файлы настройки загрузчиков системы — они находится в /etc вместе с другими конфигурационными файлами.
/cdrom – точка монтирования для CD-ROM
Директория /cdrom не является частью вышеупомянутого стандартна FHS, но вы все-таки найдете её в Ubuntu и других дистрибутивах. Это временное место для CD-дисков, подключенных к вашей системе. Тем не менее, стандартным местоположением для временных медиаустройств является директория /media
/dev – файлы устройств
Linux представляет устройства как файлы, и директория /dev содержит некоторые специальные файлы, которые представляют устройства. Это не совсем такие файлы, какими мы привыкли их видеть, но они представляются как файлы — например, /dev/sda представляет первый SATA-диск вашей системой. Если вы хотите его разметить иначе, но вам нужно открыть редактор разметок и попросить его отредактировать /dev/sda.
Эта директория также содержит псевдоустройства, которые представляют собой виртуальные устройства, не имеющие отношения к оборудованию. Например, /dev/random генерирует случайные числа, а /dev/null — это специальное устройство, которое не производит вывода данных и автоматически удаляет все входные данные — когда вы просите команду произвести вывод в /dev/null, на практике вывода не производится.
/etc – конфигурационные файлы
Директория /etc содержит конфигурационные файлы, которые можно отредактировать вручную с помощью текстового редактора. Учтите, что директория /etc/ содержит важные системные файлы, а конфигурационные файлы конкретных пользователей хранятся у них в домашних папках.
/home – домашние папки пользователей
Директория /home содержит домашние папки всех пользователей. Например, если ваше имя пользователя — bob, то у вас есть домашняя папка в /home/bob. Эта папка содержит пользовательские файлы с данными и относящиеся к этому пользователю файлы настроек. У каждого пользователя есть доступ к записи только в совей домашней папке, а для изменения других файлов в системе нужно стать root-пользователем или редактировать права на файлы специально.
/lib – необходимые общие библиотеки
Директория /lib содержит библиотеки, требуемые бинарникам, которые находятся в папках /bin и /sbin. Библиотеки, которые нужны бинарникам из папки /usr/bin, находятся в директории /usr/lib.
/lost+found – восстановленные файлы
В каждой файловой системе Linux есть директория lost+found. Если происходит крах системы, при следующей загрузке будет произведена проверка файловой системы. Все найденные поврежденные файлы помещаются в директорию lost+found, чтобы вы могли попытаться восстановить так много данных, как это возможно.
/media – съемные медиаустройства
Директория /media содержит поддиректории, куда монтируются медиаустройства, подключаемые к компьютеру. Например, если вы вставляете CD-диск в вашу Linux-систему, в директории /media автоматически создастся папка для него. Вы можете получить доступ к содержанию CD, войдя в эту директорию.
/mnt – временные точки монтирования
Если говорить о прошлом, то раньше в директорию /mnt системные администраторы монтировали временные файловые системы при их использовании. Например, если вы монтируете разметку с Windows, чтобы провести восстановление файлов, вы можете примонтировать её в /mnt/windows. Впрочем, вы можете монтировать другие файловые системы куда угодно.
/opt – дополнительные пакеты
Директория /opt содержит поддиректории для дополнительных пакетов с ПО. Она часто используется проприетарным ПО, которое не соблюдает стандартную иерархию файловой системы — например, проприетарная программа может отправить свои файлы /opt/application, когда вы устанавливаете её.
/proc – файлы ядра и процессов
Директория /proc похожа на директорию /dev, потому что она не содержит стандартных файлов. Она содержит специальные файлы, которые представляют систему и информацию о процессах.
/root – домашняя папка root
Директория /root — домашняя директория пользователя root. Вместо того, чтобы находиться в /home/root, она размещена в /root. Нужно различать эту директорию с /, которая является системной корневой директорией.
/run – неизменные файлы приложений
Директория /run — достаточно новая, и она предоставляет приложениям стандартное место для хранения переходных файлов, таких как ID процессов и сокеты. Их нельзя хранить в /tmp, потому что файлы в /tmp могут быть удалены.
/sbin – бинарные файлы системного администрирования
Директория /sbin похожа на директорию /bin. Она содержит необходимые бинарные файлы, которые скорее всего будет использовать пользователь root для администрирования системы.
/selinux – виртуальная файловая система SELinux
Если ваш дистрибутив Linux использует SELinux для безопаности (например, это могут быть дистрибутивы Fedora и Red Hat), директория /selinux хранит специальные файлы, которые используются SELinux’ом. Она похожа на /proc. Ubuntu не использует SELinux, поэтому нахождение этой папки в Ubuntu похоже на баг.
/srv – сервисные данные
Директория /srv содержит данные для сервисов, предоставленные системы. Если вы использовали HTTP-сервер Apache для работы с веб-сайтом, скорее всего, вы храните файлы вашего сайта в директории /srv.
/tmp – временные данные
Приложения хранят временные файлы в директории /tmp. Обычно эти файлы удаляются, когда система перезапускается, и могут быть удалены в любое время такими утилитами, как tmpwatch.
/usr – пользовательские бинарные файлы и данные только для чтения
Директория /usr содержит приложения и файлы, используемые пользователями. Например, не необходимые для работы системы приложения хранятся в директории /ur/bin вместо директории /bin, а не необходимые бинарники для системного администрирования хранятся в директории /usr/sbin вместо директории /sbin. Библиотеки для каждого приложения хранятся в директории /usr/lib. Директории /usr также содержит и другие папки — например, независимые от архитектуры файлы, такие как графика, хранятся в /usr/share.
В директорию /usr/local обычно устанавливаются приложения, скомпилированные локально — благодаря этому они не засоряют остальную систему.
/var – изменяющиеся данные
Директория /var — записываемый аналог директории /usr, где обычно должны быть файлы только для чтения. Лог-файлы и все остальное, что должно быть записано в /usr во время обычной операции, записывается в директорию /var. Например, вы можете найти файлы логов в /var/log.