Все, що треба знати про структуру каталогів Linux
У Windows та Linux різна структура каталогів. Тож якщо ви переходите на вільну ОС, то відчуваєте те саме, що й коли берете в руки смартфон з іншою операційною системою. Щоб не почуватися так, ніби вперше в житті сіли за комп’ютер, підготували невеликий гайд, який допоможе зорієнтуватись.
Як все влаштовано?
Система зберігання файлів у Linux може видатись дивною. Ієрархія файлової системи цієї ОС нагадує Unix, де структура каталогів виглядає як дерево. Все починається з кореневого каталогу «/», від якого відгалужуються інші.
Каталоги містять в основному файли трьох типів:
- Загальні файли. Ті, які містять ASCII або бінарні дані. Це можуть бути відео, зображення, документи тощо.
- Файли каталогу. Каталоги у Linux також класифікуються як файли, у яких можуть зберігатися інші теки.
- Файли пристроїв. Коли ви під’єднуєте пристрій через USB до комп’ютера на Windows, у вас з’являється диск F: або G:. У Linux пристрої та інші апаратні компоненти виглядають як файли /dev/device_id.
Розгляньмо основні каталоги Linux.
/ — каталог, з якого все починається
Це — коренева тека, що зберігає всі каталоги в Linux. Можете використати команду ls, щоб побачити список усіх каталогів на вашій машині. Абсолютний шлях кожного файлу проходить через «/», оскільки це батьківський каталог для всіх інших.
Каталоги верхнього рівня
/bin
Тут зберігаються основні бінарні файли користувача, програми, що виконуються, та загальні системні команди. Це такі як ls, pwd, cat, mkdir, cd, mv, cp, du, df, tar, rpm, wc, history тощо.
Також є схожа тека /sbin, що містить бінарні файли, потрібні для адміністрування системи. Їх може запускати лише root користувач.
/home
Це домашній каталог. Тут знайдете домашню теку для кожного користувача з файлами його даних та конфігураціями. Наприклад, теку /home/oleg, якщо це ваше ім’я користувача. Цей каталог схожий на C:/Users. Користувачі мають дозвіл для запису лише у своїх теках.
/etc
Тут містяться файли конфігурації для всієї системи. Це сценарії запуску, мережеві файли, ті, що пов’язані з обліковими записами користувачів та інші. Щоб змінити щось в системі, ви маєте відредагувати конфігурацію в цьому каталозі.
Проте конфігурації для користувача лежать у його домашньому каталозі.
/opt
В цій теці зберігаються підкаталоги для додаткових пакетів ПЗ. Цю теку зазвичай використовують пропрієтарні програми, які не підпадають під стандартну ієрархію файлової системи.
Якщо встановлюєте сторонню програму не з офіційного репозиторію, її код зберігатиметься у цьому каталозі.
/usr
В цьому каталозі знайдете більшість файлів, бібліотек, програм та системних утиліт. Сюди зберігаються файли, які застосовують користувачі, а не система. Тобто файли, критично важливі для роботи системи, зберігаються в /bin, а ті, що потрібні користувачеві — у /usr/bin. Так само це працює із /sbin та /usr/sbin.
В каталозі також можуть зберігатися інші теки, наприклад, незалежні від архітектури файли. Таким чином графіка розташовується в /usr/share. А в /usr/local за замовчуванням встановлюються локально скомпільовані програми. Так вони не пошкодять решту системи.
/tmp
Тимчасові файли програм містяться у каталозі /tmp. Ви теж можете зберігати тимчасові дані у цій теці, але пам’ятайте, що тут файли видаляються щоразу, коли ви перезавантажуєте систему. Також їх може видалити спеціальна утиліта tmpwatch.
/var
В цьому каталозі зберігаються файли змінних даних. Сюди система зберігає файли на кшталт логів, кешів та файлів браузера. Тут дані автоматично не видаляються, тож за потреби системні адміністратори можуть переглянути системні логи.
Які ще каталоги варто знати?
- boot
Каталог з файлами, що необхідні для завантаження системи. Наприклад, завантажувача GRUB, ядра та початкова файлова система ram. А от конфігурації завантажувача тут немає — вони зберігаються в /etc.
- dev
Оскільки Linux розглядає все як файл, у каталозі /dev розташовуються спеціальні віртуальні файли пристроїв. Миші, клавіатури та пристрої зберігання даних, що під’єднані до вашої системи.
Це не звичні нам файли, адже ви можете запустити їх та відредагувати роботу того чи іншого пристрою.
В цьому каталозі є також віртуальні пристрої, які не належать до жодного апаратного забезпечення.
- lib
Каталог містить бібліотеки, що необхідні для основних бінарних файлів у теках /bin та /sbin. А бібліотеки, що потрібні бінарним файлам у каталозі /usr/bin, знаходяться в /usr/lib.
- lost+found
Каталог із відновленими файлами. Якщо трапиться збій системи, під час наступного завантаження усі знайдені пошкоджені файли опиняться тут. Це допоможе відновити якомога більше даних.
- media
Каталог /media містить підкаталоги знімних носіїв, підключених до комп’ютера. Наприклад, для компакт-диска одразу створиться підкаталог у /media. Тут ви отримаєте доступ до вмісту цього диска.
- mnt
Каталог для тимчасового підключення запам’ятовувальних пристроїв до системи. Хоча деякі дистрибутиви використовують цей каталог як постійне місце для зберігання. На відміну від /media, сюди пристрій не підключається автоматично. Системні адміністратори мають робити це вручну.
- proc
Каталог без стандартних файлів, як і /dev. Тут знайдете лише спеціальні файли з інформацією про систему та процеси.
- root
Не те саме, що й кореневий каталог «/». Це як /home, тільки для користувача root. Замість розташування в /home/root, всі файли знаходиться в цій теці.
- run
Цей каталог містить файли стану програми. Тут вони можуть зберігати тимчасові важливі файли по типу сокетів чи ідентифікаторів процесів. Це схоже на каталог /tmp, проте нагадуємо, що там ви можете втратити дані раніше, ніж потрібно.
- srv
Тут містяться дані сервісів, що надає система. Наприклад, якщо ви використовуєте НТТР-сервер, то можете зберігати в цей каталог файли даних вебсайту.
Висновок
Linux не така складна система, як здається на перший погляд. Просто із нею потрібно розібратися. Це як вчитись ходити — один раз навчитеся і потім працюватимете з ОС на автоматі.
Навчитись впевнено йти по життю із Linux ви можете самостійно, або на нашому курсі «Адміністрування Linux для новачків». Проте, якщо хочете мати глибоке знання системи Linux та грамотно із нею працювати — варіант один. Його знайдете за посиланням 😉
Бажаємо успіхів на шляху адміністрування Linux!