Перейти до вмісту

Модуль 1.3: Ієрархія файлової системи

Hands-On Lab Available
Ubuntu intermediate 30 min
Launch Lab ↗

Opens in Killercoda in a new tab

Основи системи | Складність: [MEDIUM] | Час: 25–30 хв

Перед початком цього модуля:


Що ви зможете робити після цього модуля

Розділ «Що ви зможете робити після цього модуля»

Після проходження цього модуля ви зможете:

  • Орієнтуватися в FHS та пояснити призначення ключових директорій (/etc, /var, /proc, /sys, /tmp)
  • Знайти будь-який файл або конфігурацію в Linux, знаючи, до якої директорії він належить
  • Розрізнити /bin, /sbin, /usr/bin та пояснити, чому вони існують
  • Використовувати /proc та /sys для інспекції стану ядра та апаратного забезпечення в реальному часі

Чому цей модуль важливий

Розділ «Чому цей модуль важливий»

В Linux усе є файлом. Конфігурація, пристрої, процеси, мережеві з’єднання — все представлено у файловій системі.

Розуміння ієрархії файлової системи необхідне для:

  • Пошуку файлів — де лежать конфіги? де логи?
  • Усунення несправностей/proc та /sys відкривають доступ до нутрощів системи.
  • Роботи з образами контейнерів — образи — це просто набори шарів файлової системи.
  • Безпеки — знання того, що і де має бути, допомагає помітити аномалії.

Коли ви бачите шлях /var/lib/kubelet або /etc/kubernetes, ви повинні інстинктивно розуміти, які дані там живуть.


  • Стандарт ієрархії файлової системи (FHS) існує з 1994 року. Він гарантує, що програми та конфігурації знаходяться в передбачуваних місцях у будь-якому дистрибутиві Linux.

  • В Linux справді все є файлом — навіть залізо. Ваша клавіатура — це /dev/input/event0, ваш жорсткий диск — /dev/sda.

  • Директорія /proc не існує на диску — це віртуальна файлова система, яку ядро створює в реальному часі в оперативній пам’яті.


Стандарт ієрархії файлової системи (FHS)

Розділ «Стандарт ієрархії файлової системи (FHS)»
/ ← Корінь усього (Root)
├── bin/ ← Основні команди для всіх користувачів
├── boot/ ← Файли завантажувача та ядро
├── dev/ ← Файли пристроїв
├── etc/ ← Конфігурація системи
├── home/ ← Домашні директорії користувачів
├── lib/ ← Основні системні бібліотеки
├── media/ ← Точки монтування для змінних дисків (флешки тощо)
├── mnt/ ← Тимчасові точки монтування
├── opt/ ← Додаткове ПЗ (third-party)
├── proc/ ← Віртуальна: інформація про процеси та ядро
├── root/ ← Домашня директорія суперкористувача root
├── run/ ← Дані про роботу системи з моменту завантаження
├── sbin/ ← Системні команди для адміна
├── sys/ ← Віртуальна: об'єкти ядра та пристрої
├── tmp/ ← Тимчасові файли
├── usr/ ← Друга ієрархія (користувацькі програми)
│ ├── bin/ ← Команди користувача
│ ├── local/ ← Вручну встановлене ПЗ
│ └── share/ ← Спільні дані (документація, іконки)
└── var/ ← Дані, що постійно змінюються
├── log/ ← Лог-файли
└── lib/ ← Стан програм та бази даних

Детальний огляд директорій

Розділ «Детальний огляд директорій»

/etc — Центр конфігурації

Розділ «/etc — Центр конфігурації»

Тут налаштовується абсолютно все.

  • /etc/passwd — список користувачів.
  • /etc/shadow — зашифровані паролі.
  • /etc/hosts — локальна таблиця доменних імен.
  • /etc/resolv.conf — налаштування DNS.
  • /etc/kubernetes/ — конфігурація вашого кластера.

Дані, які ростуть або змінюються під час роботи.

  • /var/log/ — усі системні та прикладні логи.
  • /var/lib/docker/ — образи та дані Docker.
  • /var/lib/kubelet/ — дані агента Kubernetes на вузлі.

/proc — Вікно в ядро та процеси

Розділ «/proc — Вікно в ядро та процеси»

Віртуальна система, яка показує, що відбувається в пам’яті прямо зараз.

  • /proc/cpuinfo — інформація про процесор.
  • /proc/meminfo — стан оперативної пам’яті.
  • /proc/[PID]/ — папка для кожного запущеного процесу.

Іноди (Inodes): Справжнє обличчя файлу

Розділ «Іноди (Inodes): Справжнє обличчя файлу»

Inode (index node) — це структура даних, яка зберігає інформацію про файл (крім його назви!).

Що всередині іноди:

Розділ «Що всередині іноди:»
  • Тип файлу.
  • Права доступу (rwx).
  • Власник.
  • Розмір.
  • Час останньої зміни.
  • Посилання на блоки даних на диску.

Важливо: Назва файлу зберігається в директорії, а не в іноді. Одне й те саме наповнення (інода) може мати кілька назв — це називається Hard Link (жорстке посилання).


Розділ «Символічні посилання (Symlinks)»

Це як ярлики в Windows. Вони просто вказують на шлях до іншого файлу.

  • Hard Link: два імені вказують на одну іноду. Видалення одного не впливає на інший.
  • Symbolic Link: один файл містить шлях до іншого. Якщо видалити оригінал — посилання “зламається”.

Точки монтування (Mount Points)

Розділ «Точки монтування (Mount Points)»

В Linux диски не мають літер (C:, D:). Натомість будь-який диск або розділ “прикріплюється” до якоїсь папки в загальному дереві.

Terminal window
# Подивитися всі підключені системи
findmnt
  • /etc/fstab — файл, де записано, які диски підключати автоматично при старті.

  1. Де зазвичай зберігаються лог-файли в Linux?

    Відповідь У директорії `/var/log/`.
  2. Яка директорія містить файли конфігурації системи?

    Відповідь Директорія `/etc/`.
  3. Що таке /dev/null?

    Відповідь Це спеціальний пристрій ("чорна діра"). Усе, що ви туди запишете, просто зникне. Корисно для придушення зайвого виводу команд.
  4. У чому різниця між /bin та /sbin?

    Відповідь `/bin` містить основні команди для всіх користувачів. `/sbin` містить системні команди, які зазвичай потребують прав адміністратора (root).

Завдання: Дослідити файлову систему.

  1. Подивіться інформацію про свій процесор через /proc:
    Terminal window
    cat /proc/cpuinfo | grep "model name"
  2. Знайдіть найбільші файли в /var/log:
    Terminal window
    sudo du -sh /var/log/* | sort -h
  3. Створіть символічне посилання:
    Terminal window
    echo "test" > original.txt
    ln -s original.txt shortcut.txt
    ls -l # Подивіться на стрілочку ->
  4. Перевірте, скільки вільного місця на дисках:
    Terminal window
    df -h

Критерії успіху: Ви розумієте призначення основних папок і вмієте отримувати інформацію про систему через віртуальні файли.


  • FHS — це карта вашої системи.
  • /etc — для конфігів, /var — для даних, /proc — для інфо.
  • Inodes — це “паспорт” файлу.
  • Mount points — це спосіб підключення дисків у дерево папок.

Далі: Модуль 1.4: Користувачі та дозволи — дізнайтеся, як Linux контролює доступ до файлів і програм.