Модуль 1.3: Ієрархія файлової системи
Основи системи | Складність:
[MEDIUM]| Час: 25–30 хв
Передумови
Розділ «Передумови»Перед початком цього модуля:
- Обов’язково: Модуль 1.1: Архітектура ядра
- Бажано: Модуль 1.2: Процеси та systemd
Що ви зможете робити після цього модуля
Розділ «Що ви зможете робити після цього модуля»Після проходження цього модуля ви зможете:
- Орієнтуватися в 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 — Змінні дані
Розділ «/var — Змінні дані»Дані, які ростуть або змінюються під час роботи.
/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)
Розділ «Символічні посилання (Symlinks)»Це як ярлики в Windows. Вони просто вказують на шлях до іншого файлу.
- Hard Link: два імені вказують на одну іноду. Видалення одного не впливає на інший.
- Symbolic Link: один файл містить шлях до іншого. Якщо видалити оригінал — посилання “зламається”.
Точки монтування (Mount Points)
Розділ «Точки монтування (Mount Points)»В Linux диски не мають літер (C:, D:). Натомість будь-який диск або розділ “прикріплюється” до якоїсь папки в загальному дереві.
# Подивитися всі підключені системиfindmnt/etc/fstab— файл, де записано, які диски підключати автоматично при старті.
Тест
Розділ «Тест»-
Де зазвичай зберігаються лог-файли в Linux?
Відповідь
У директорії `/var/log/`. -
Яка директорія містить файли конфігурації системи?
Відповідь
Директорія `/etc/`. -
Що таке
/dev/null?Відповідь
Це спеціальний пристрій ("чорна діра"). Усе, що ви туди запишете, просто зникне. Корисно для придушення зайвого виводу команд. -
У чому різниця між
/binта/sbin?Відповідь
`/bin` містить основні команди для всіх користувачів. `/sbin` містить системні команди, які зазвичай потребують прав адміністратора (root).
Практична вправа
Розділ «Практична вправа»Завдання: Дослідити файлову систему.
- Подивіться інформацію про свій процесор через
/proc:Terminal window cat /proc/cpuinfo | grep "model name" - Знайдіть найбільші файли в
/var/log:Terminal window sudo du -sh /var/log/* | sort -h - Створіть символічне посилання:
Terminal window echo "test" > original.txtln -s original.txt shortcut.txtls -l # Подивіться на стрілочку -> - Перевірте, скільки вільного місця на дисках:
Terminal window df -h
Критерії успіху: Ви розумієте призначення основних папок і вмієте отримувати інформацію про систему через віртуальні файли.
Підсумок
Розділ «Підсумок»- FHS — це карта вашої системи.
- /etc — для конфігів, /var — для даних, /proc — для інфо.
- Inodes — це “паспорт” файлу.
- Mount points — це спосіб підключення дисків у дерево папок.
Далі: Модуль 1.4: Користувачі та дозволи — дізнайтеся, як Linux контролює доступ до файлів і програм.