Структура каталогів у Linux

 8040

 ǀ   1 

На цьому уроці ми розглянемо ієрархію файлової системи Linux, а також призначенням різних каталогів.

Якщо ви раніше користувалися лише Windows, то структура файлової системи Linux може здатися вам дивною: немає звичного позначення C:\ та літер дисків, їх замінили каталог / та інші папки, більшість з яких мають дивні імена, що складаються з трьох букв.

Причина цього в тому, що в Linux використовується свій FHS (скор. від «Filesystem Hierarchy Standard» = «Стандарт Ієрархії Файлової Системи»). FHS визначає структуру та зміст/призначення каталогів у дистрибутивах Linux. Завдяки цьому стандарту структура каталогів у всіх дистрибутивах Linux є (майже) однією і тією ж.

Структура каталогів у Linux:

Структура каталогів у Linux

Нагадаю, що Linux заснований на системі Unix, а отже, запозичує з неї свою ієрархію файлової системи. Аналогічну структуру каталогів ви знайдете в Unix-подібних операційних системах, таких як BSD та macOS. Однак надалі я використовуватиму саме термін Linux замість Unix.

/ — коренева директорія

Всі файли та каталоги в Linux розташовані в каталозі /, що називається кореневим (від слова “root”). Якщо ви подивитеся на структуру каталогів, то помітите, що вона схожа на корінь дерева.

Примітка: Для позначення каталогу використовуються такі терміни як “папка”, “каталог”, “директорія” — це все одне і те ж.

Оскільки всі інші каталоги або файли походять від кореня, абсолютний шлях до кожного з них починається з кореневої директорії. Наприклад, якщо у вас є файл в /home/user/documents, то ви можете здогадатися, що структура каталогів йде від root->home->user->documents.

Жарт про “rm –rf /”: Можливо ви стикалися з деякими жартами в Інтернеті, в яких згадується rm -rf /. Команда rm (від англ. «remove») використовується для видалення файлів і каталогів в Linux.

За допомогою rm -rf / ви просите свою систему примусово та рекурсивно видалити вміст кореневого каталогу. Оскільки в кореневому каталозі містяться всі файли та каталоги ОС, то цією командою ви стираєте всі дані, і ваша Linux-система просто повинна зникнути (теоретично).

Більшість дистрибутивів Linux не запустять цю команду без ключа --no-preserve-root. Але в будь-якому випадку не варто заради цікавості намагатися виконати цю команду.

/bin — binaries (двійкові файли)

Каталог /bin містить двійкові файли багатьох основних програм та утиліт (ls, cp, cd тощо), які повинні бути присутніми при монтуванні системи в однокористувацькому режимі. Програми, такі як Firefox, зберігаються в /usr/bin, тоді як важливі системні програми та утиліти, такі як оболонка bash, знаходяться в /bin.

Примітка: Монтування файлової системи — це системний процес, який готує розділ диска до використання операційної системи.

/boot — boot files (файли завантаження)

Каталог /boot містить файли, необхідні для завантаження системи. Наприклад, тут зберігаються файли завантажувача GRUB та ядра Linux. Однак конфігураційні файли завантажувача знаходяться не тут — вони лежать в /etc разом з іншими конфігураційними файлами.

/cdrom — історично сформований каталог для CD-ROM

Каталог /cdrom не є частиною FHS, але ви все одно можете зустріти його, наприклад, в Ubuntu або інших дистрибутивах Linux. Це тимчасове місце для компакт-дисків. Однак стандартне розташування тимчасових носіїв знаходиться всередині каталогу /media.

/dev — device files (файли пристроїв)

Різні пристрої сприймаються і показуються системою Linux як файли, що зберігаються в каталозі /dev. Варто зазначити, що це не справжні файли, якими ми їх звикли сприймати, а спеціальний тип (інтерфейс), що використовується операційною системою для взаємодії з пристроями. Наприклад, файл /dev/sda є першим SATA-диском в системі. Якщо ви хочете розбити його на розділи, можете запустити редактор розділів і попросити його відредагувати файл /dev/sda. Файл /dev/sr — це CD-ROM, а файл /dev/wlan, як ви вже здогадалися, відповідає бездротовому мережевому інтерфейсу. Також у цьому каталозі можуть бути спеціальні файли псевдопристроїв, які насправді не зіставляються з реальним обладнанням, наприклад:

   /dev/null — це спеціальний пристрій (“порожній пристрій”), який не виконує вивід та автоматично відкидає всі вхідні дані. Коли ви передаєте вивід інформації від будь-якої команди на пристрій /dev/null, то вся ця інформація буде просто відкинута;

   /dev/random — генератор випадкових чисел;

   /dev/zero — джерело нескінченної послідовності нульових байтів.

/etc — configuration files (конфігураційні файли)

Каталог /etc містить основні конфігураційні файли системи, які використовуються адміністратором системи та її службами, такі як файл паролів та файли налаштувань мереж. Зазвичай їх можна редагувати вручну у текстовому редакторі. Якщо вам потрібно внести зміни до конфігурації системи (наприклад, змінити ім’я хосту), саме тут варто шукати необхідні файли. Зверніть увагу, що каталог /etc містить загальносистемні конфігураційні файли; конфігураційні файли користувача знаходяться в домашньому каталозі кожного користувача.

/home — особисті каталоги користувачів

Каталог /home є сховищем домашніх каталогів користувачів системи, в яких ті зберігають свої особисті файли, нотатки, утиліти та ін. Домашній каталог містить дані користувача і файли конфігурації.

При створенні нового користувача в системі Linux зазвичай для нього створюється відповідний домашній каталог (і група, але про це пізніше). Припустимо, що у вашій системі вже є два користувачі: alice та bob. Тоді їхні домашні каталоги матимуть шляхи /home/alice та /home/bob відповідно. Зверніть увагу, що кожен (звичайний) користувач має доступ до запису лише у свій домашній каталог. Наприклад, у користувача bob не буде доступу до каталогу /home/alice та навпаки.

/usr — user binaries and program data (користувацькі двійкові файли та програмні дані)

Каталог /usr містить виконувані файли, файли бібліотек та файли заголовків більшості програм користувача. Тому практично всі вони доступні тільки для читання (для звичайного користувача).

   /usr/bin — основні користувацькі утиліти;

   /usr/sbin — додаткові утиліти для адміністрування та налаштування системи;

   /usr/lib — бібліотеки утиліт з /usr/bin та /usr/sbin;

   /usr/share — містить документацію або загальні для всіх бібліотек дані.

/lib — каталог спільно використовуваних бібліотек

Каталог /lib містить бібліотеки, необхідні двійковим файлам у каталогах /bin та /sbin.

/sbin — системні утиліти

Каталог /sbin аналогічний каталогу /bin. Він містить основні двійкові файли утиліт системного адміністрування, які зазвичай призначені для запуску привілейованим (root) користувачем (ifconfig, dhclient, dmidecode, init тощо).

/tmp — тимчасові файли

Як випливає з назви, в каталозі /tmp зберігаються тимчасові файли використовуваних програм (ви також можете використовувати цей каталог для розміщення своїх тимчасових файлів).

Але зверніть увагу, що при перезавантаженні вашої системи вміст каталогів у /tmp видаляється. Деякі Linux-системи можуть у будь-який час автоматично видалити старі файли, тому не зберігайте тут нічого важливого.

/var — файли змінюваних даних

Каталог /var (скор. від «variable») є доступним для запису аналогом каталогу /usr. Файли журналів, кеш програм, інформація про чергу для друку, загальна інформація з моменту запуску системи — все це пишеться в каталог /var.

Файли, що зберігаються тут, не очищаються автоматично. З цієї причини даний каталог представляє великий інтерес для системних адміністраторів, які шукають інформацію щодо поведінки своєї системи. Наприклад, якщо ви хочете ознайомитися з глобальним системним журналом Linux, просто подивіться вміст файлу /var/log/syslog.

/proc — файли процесів

Каталог /proc схожий на каталог /dev, тому що він містить не звичайні файли, а спеціальні файли, що надають інформацію про запущені процеси та стан ядра. Вміст каталогу /proc використовується різними утилітами для отримання системної інформації етапу часу виконання.

Наприклад, якщо ви хочете перевірити інформацію про процесор у Linux, то можете просто звернутися до файлу /proc/cpuinfo. Якщо ви хочете перевірити використання пам’яті вашої системи Linux, перегляньте вміст файлу /proc/meminfo.

/opt — optional software (додаткове ПЗ)

Каталог /opt містить підкаталоги додаткових пакетів програмного забезпечення. Зазвичай він використовується пропрієтарним програмним забезпеченням, яке не підпорядковується стандартній ієрархії файлової системи, наприклад, пропрієтарна програма при встановленні може зберегти свої файли в /opt/application.

/root — the home directory of the root (домашній каталог root-користувача)

Каталог /root — це домашній каталог користувача root. Замість того, щоб бути розташованим у /home/root, він знаходиться в /root. Слід відрізняти цей каталог від каталогу /, який є кореневим каталогом для усієї системи.

/media — mount point for removable media (точка монтування зовнішніх носіїв)

При підключенні зовнішнього носія, такого як USB-диск, SD-карта або DVD-диск, для них автоматично створюється відповідна папка в каталозі /media. За допомогою такої папки можна отримати доступ до вмісту знімного носія.

/mnt — mount directory (точка монтування файлових систем)

Каталог /mnt схожий на каталог /media, але замість автоматичного монтування знімного носія, /mnt використовується системними адміністраторами для ручного монтування різних файлових систем.

Примітка: Історично склалося, що каталог /mnt — це місце, де системні адміністратори монтували тимчасові файлові системи під час їхнього використання. Наприклад, якщо ви монтуєте розділ Windows для виконання деяких операцій відновлення файлів, ви можете змонтувати його в /mnt/windows. Однак ви також можете монтувати файлові системи у відмінному від /mnt місці системи.

/srv — service data (службові дані)

Каталог /srv містить дані про послуги, що надаються системою. Якщо ви використовуєте HTTP-сервер Apache для обслуговування веб-сайту, то ви, швидше за все, зберігаєте файли вашого сайту всередині каталогу /srv.

/run — application state files (файли поточного стану програм)

Каталог /run надає додаткам стандартне місце для зберігання тимчасових файлів та даних, які потрібні для роботи різних процесів з моменту запуску системи (сокети, ідентифікатори процесів та ін.). Ці файли не зберігаються в /tmp з тієї причини, що з /tmp вони можуть бути видалені.

/lost+found — recovered files (відновлені файли)

Кожна файлова система Linux має каталог /lost+found. Якщо файлова система виходить з ладу, то при наступному завантаженні буде виконано її перевірку. Усі знайдені пошкоджені файли будуть поміщені до каталогу /lost+found, тому ви зможете спробувати відновити якомога більше даних.

Оцінити статтю:

1 Зірка2 Зірки3 Зірки4 Зірки5 Зірок (7 оцінок, середня: 5,00 з 5)
Завантаження...

Коментарів: 1

  1. Вадим :

    Інформативно і якісно. Дякую!

Залишити відповідь

Ваш E-mail не буде опублікований. Обов'язкові поля відмічені *