В любой ОС есть каталоги с системными файлами, которые лучше не трогать без лишней надобности. Но если в Windows папки с системой просто лежат в сторонке, то в Linux все наоборот: ты работаешь внутри уже заданной структуры каталогов, причем во многие из них можно и нужно заглядывать.
Одна из причин такой организации в том, что файлами в Linux могут быть не только данные на диске, но и порты, процессы и другие сущности. Как ты можешь догадаться, читать и писать в них теми же средствами, что и при работе с обычными файлами, иногда очень удобно.
РЕКОМЕНДУЕМ:
Полезные инструменты для работы в консоли Linux
Слеши «не в ту сторону» вряд ли тебя смутят, но гораздо более непривычно после Windows то, что пути полностью виртуальны и никак не связаны с дисками. Данные по разным путям могут быть на разных разделах, на разных носителях или даже на разных компьютерах.
Структура каталогов в Linux
Итак, давай посмотрим на структуру каталогов, которую ты увидишь почти в любом Linux:
- <strong>/</strong> — корневая папка, или, как ее еще называют, root directory — папка, в которой хранится все остальное содержимое файловой системы;
- <strong>/<wbr />bin</strong> (от слова binary) — здесь лежат двоичные исполняемые файлы со всеми основными командами;
- <strong>/<wbr />boot</strong> — здесь расположен загрузчик и ядро ОС (файлы vmlinuz — это как раз оно и есть);
- <strong>/<wbr />dev</strong> — файлы в этой папке — это порты и устройства. Работая с этими файлами, приложения и драйверы могут обмениваться информацией напрямую с оборудованием. Впрочем, некоторые файлы — это не настоящие устройства, а виртуальные. Например, знаменитый /<wbr />dev/<wbr />null принимает любую информацию и ничего с ней не делает, а /<wbr />dev/<wbr />random генерирует случайные числа;
- <strong>/<wbr />etc</strong> — в этой папке содержатся общесистемные файлы конфигурации (тогда как пользовательские файлы конфигурации находятся в домашнем каталоге каждого пользователя). Если ты администратор системы, то сюда придется часто заглядывать при настройке разных программ;
- <strong>/<wbr />home</strong> — в этой папке содержатся домашние каталоги пользователей Linux. Например, если твое имя пользователя — xakep, твоя домашняя папка будет называться /<wbr />home/<wbr />xakep/;
- <strong>/<wbr />lib</strong> — папка для хранения библиотек, необходимых исполняемым файлам в папках bin и sbin;
- <strong>/<wbr />lost+found</strong> — в эту папку сохраняются восстановленные в случае системного сбоя файлы;
- <strong>/<wbr />media</strong> — в некоторых системах дополнительный каталог, где отображаются все смонтированные в системе съемные носители информации. В старых ОС может называться /<wbr />cdrom;
- <strong>/<wbr />mnt</strong> — папка, содержащая временные точки монтирования: сюда монтируются файловые системы для временного использования;
- <strong>/<wbr />opt</strong> — каталог содержит подкаталоги для дополнительных пакетов программного обеспечения. Обычно используется проприетарным ПО, которое не подчиняется стандартной иерархии файловой системы Linux;
- <strong>/<wbr />proc</strong> — каталог со специальными файлами, которые предоставляют информацию о системе и процессах;
- <strong>/<wbr />root</strong> — домашний каталог суперпользователя root;
- <strong>/<wbr />run</strong> — этот каталог предоставляет приложениям стандартное место для файлов, существующих только во время работы системы (отсюда название), таких как сокеты и идентификаторы процессов;
- <strong>/<wbr />sbin</strong> — эта папка по своему назначению аналогична папке bin. Здесь лежат двоичные исполняемые файлы, которые обычно предназначены для запуска пользователем root в целях системного администрирования;
- <strong>/<wbr />tmp</strong> — папка для хранения временных файлов по умолчанию;
- /<wbr />srv — содержит данные о сервисах, предоставляемых системой;
- /<wbr />usr — в этой папке содержатся приложения и файлы пользователей системы. В старых Unix это был аналог /<wbr />home, но затем эти вещи разделили. Условно: в /<wbr />usr/ — программы, в /<wbr />home — всякое барахло. Находящиеся здесь каталоги /<wbr />usr/<wbr />bin, /<wbr />usr/<wbr />sbin и /<wbr />usr/<wbr />lib раньше имели то же назначение, что и аналоги, лежащие в корне, но для файлов пользователей (в то время как папки в корне — для файлов, используемых самой системой). А еще есть каталог /<wbr />usr/<wbr />local, где есть свои bin, sbin и lib! Когда‑то подразумевалось, что здесь будут программы, специфичные для конкретного компьютера, то есть в теории зависящие от его железа. На практике софт сюда попадает по самым разным причинам;
- <strong>/<wbr />var</strong> — от слова variable, то есть что‑то, что может меняться. Здесь лежат бэкапы, кеши, библиотеки, логи и тому подобные вещи. Одна из важных директорий — это /<wbr />var/<wbr />www, где хранятся данные веб‑сайтов, если на машине установлен веб‑сервер.
Если эта система каталогов кажется тебе немного запутанной, не волнуйся, это совершенно нормально! Она создавалась годами, и что выросло, то выросло. Упрощать ее в ближайшем будущем никто не собирается, поскольку она стандартна и любые изменения повлияют на совместимость.