Автор Гілка: Для початківців: як зорганізовано теки  (Прочитано 3557 раз)

Відсутній Yaroslav Fedevych

  • Літератор
  • ******
  • дописів: 1069
  • Карма: +0/-0
  • Людина — ніщо, справа — все
Хтось про це питався -- тож розповім трохи...

Відразу обмовлюсь -- це не вичерпне джерело інформації! За таким дивіться http://tldp.org/LDP/Linux-Filesystem-Hierarchy/html/index.html. Я тільки спробую показати основи -- так, щоб не заблукати.

Ліричний відступ для користувачів Windows

Вам доведеться звикнути до декількох речей. Краще зараз, ніж потім...

Найперше -- це те, що на відміну від вінди, в *nix прийнято все розкладати по поличках. Самі програми -- в один каталог, бібліотеки -- в інший, довідку -- ще в один; документація, зображення й інші службові файли йдуть по своїх окремих каталогах. Це трохи відрізняється від думки, що програми повинні тримати свої дані в своєму каталозі, як це у вікнах, проте має певні переваги.

Наприклад, перевагою є те, що мені досить легко на чужій машині знайти дані, котрі мене цікавлять. Дуже вигідно, коли я реєструюсь на ssh на віддалений комп'ютер -- я знаю, де там мої документи, знаю, де програми, і мені не треба з такими запитаннями морочити голову його власникам. По-друге, такий стандарт притаманний всім дистрибуціям (ну, деякі різниці не рахуємо) не лише Linux, але й *nix'ів загалом. Тобто, мені досить легко зорієнтуватись на машинці з FreeBSD, наприклад.

Друга річ, до якої треба призвичаїтись -- це те, що в *nix'ах нема чогось такого, як літери дисків. Останні дісталися вікнам у спадщину від DOS, у якого були досить туманні уявлення про те, які бувають блокові пристрої, скільки їх можна начепити й як буде розвиватись технологія взагалі. Через це програмістам випадало особливе задоволення писати величезні кавалки програм, котрі тільки те й робили, що створювали інтерфейси для різних пристроїв і файлових систем, щоб до них можна було звертатись "як до диску". В *nix усе набагато елегантніше й продуманіше: є одна коренева система, до якої "монтуються" всі інші системи -- причому кожна з них виглядатиме лише як каталог у єдиному дереві каталогів. До того ж, так складаються обставини, що деякі частини дерева каталогів корисно розміщувати на окремих дискових розділах -- і те, що вони виглядають у кінцевому результаті як каталоги, дуже полегшує роботу з ними.

Третє -- це те, що є різниця між малими й великими літерами. Це успадковано, швидше за все, від мови C, де ці літери розрізняються. Хоча на перший погляд це незручно, може дати певні переваги (про це якось в іншій темі поговоримо).

Ну й четверте: розділювачем каталогів є /, а не \. Варто запам'ятати, бо символ \ використовується зі спеціальною метою -- цитувати небуквоцифрові символи.

[Зазирнімо в корінь]

Якщо виконати команду ls /, то побачимо щось таке:

bin
boot
dev
etc
home
initrd
lib
lost+found
mnt
opt
proc
root
sbin
tmp
usr
var

Це -- те, що можна знайти практично в будь-якому *nix'і. Поглянемо коротко в кожен каталог детальніше.

/bin містить файли програм, котрі необхідні для діяльності системи. Це такі команди, як cp, mv, ls, dd, cat, chgrp, chown... Те, без чого працювати в системі неможливо. Туди часто запихають архіватори, якщо припускається, що колись систему доведеться відновлювати з резервних копій.


Відсутній Yaroslav Fedevych

  • Літератор
  • ******
  • дописів: 1069
  • Карма: +0/-0
  • Людина — ніщо, справа — все
Всі програми, котрі тут є, доступні для виконання всім користувачам, на відміну від каталога /sbin. Тут також поміщено файли, необхідні для життя системи, проте доступні для виконання лише системному адміністраторові. Це всілякі-різні системні демони й програми, котрі просто вимагають для виконання прав root'а (так, root -- це найголовніший користувач *nix'ової системи).

В каталозі /etc розміщено файли конфігурації системи загалом. Наприклад, у каталогах rc* й файлах rc* можна знайти всі команди, котрі виконуються при старті системи й змінити це на свій смак, якщо достатньо прав. Проте, більшість програм тримає свої налаштування окремо для кожного користувача, а кожен користувач для цього має свою домівку -- каталог, де містяться його особисті файли (налаштування, документи й таке інше). Кожен такий каталог міститься в /home/реєстраційне ім'я користувача. Тобто, користувач elrond матиме особистий каталог /home/elrond/.

Каталог /initrd використовується для "двофазного" завантаження системи. Про неї розповім іншим разом, а наразі досить знати й те, що після завантаження він порожній, а якщо він є в системі, витирати його не варто.

В каталозі /lib містяться основні бібліотеки системи -- ті, що необхідні для виконання команд у /bin і /sbin. Бібліотеки закінчуються на .so, і є аналогами віндівських DLL.

В каталозі /mnt прийнято тримати каталоги-точки монтування файлових систем на зовнішніх пристроях, як-от дискетах, компакт-дисках і флешках.

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

Каталог /opt визначається стандартом як призначений для програм, котрі не є частиною стандартного дистрибутиву, а походять від третьої сторони. Зазвичай каталоги всередині /opt повинні нагадувати структуру того самого Program Files. Проте, якщо чесно, на даний час дистрибутиви мають такий обсяг програм, що цей каталог використовуватиметься рідко.

/root є домашнім каталогом користувача root.

/var, як і /tmp, містить тимчасові дані системи. Проте ці дані мають практичну користь для користувачів: це файли поштової й принтерної черги, туди процеси-сервери записують свої ідентифікатори, щоб інші програми могли з ними сконтактуватись, і тому подібні дані.

Про файлову систему /usr -- наступного разу...
« Змінено: 2004-03-16 14:01:10 від JaFd »

Відсутній Дмитро Ковальов

  • Кореспондент
  • ***
  • дописів: 236
  • Карма: +0/-0

Друга річ, до якої треба призвичаїтись -- це те, що в *nix'ах нема чогось такого, як літери дисків. Останні дісталися вікнам у спадщину від DOS, ...


Не заради розпочинання дискусії, а чисто для історичної справедливості.

Літери дисків у ДОС (і відповідно у Віндовс) попали в значно спрощеній формі із VMS. Там були "назви дисків" -- символічні назви, які давав або користувач, або адміністратор. Багато в чому ця система була не гірша, ніж все починати від кореня.

Наприклад, можна було присвоїти потрібну назву будь-якій теці в системі. Тобто, незалежно від фізичного розташування дисків (чи мережевих ресурсів) я б мав на всіх своїх системах диск з файлами і теками:

MYPROGRAMS:\MyFiles\SomeThing\...

Відсутній Yaroslav Fedevych

  • Літератор
  • ******
  • дописів: 1069
  • Карма: +0/-0
  • Людина — ніщо, справа — все
Воно було не гірше лише тому, що ці назви могли не мінятись, навіть якщо пристрої в системі тасували, як колоду карт. "Спрощена" ж система досі дається чути, коли мій вінчестер змінює канал або коли я йду з ним до знайомого... :(

Інакше кажучи, у вікнах чомусь не повернулись навіть до VMS'івської схеми.

А взагалі -- вдячний за коментар.

Відсутній vitalis

  • Кореспондент
  • ***
  • дописів: 112
  • Карма: +0/-0
  • Як воно?
Хтось про це питався -- тож розповім трохи...
То був я :). Дякую за відповідь. Зараз же собі роздрукую ці дописи.
Можна, знову ж, додати це до статей, бо користувачі у форум лізуть диивитись в останню чергу.
В каталозі /mnt прийнято тримати каталоги-точки монтування файлових систем на зовнішніх пристроях, як-от дискетах, компакт-дисках і флешках.
Вибачаюсь, що трохи не по темі, але дуже потрібно знати як змонтувати у Linux Card Reader 6 в 1 (Asus). Драйверів під Linux ніде нема. Сам розібратись теж не зміг :(.
«Чтиво» - е-бібліотека україномовної літератури на всі смаки
Домівка.net - національний портал

Відсутній Yaroslav Fedevych

  • Літератор
  • ******
  • дописів: 1069
  • Карма: +0/-0
  • Людина — ніщо, справа — все
Пробачте за запізнення, але я ж обіцяв, що розповім про /usr. Ясна річ, це матеріал для початківців. Ну й стандарт ієрархії, згаданий вище за текстом -- основне джерело.

Було колись так, що в каталог /usr закидували домашні каталоги користувачів. Проте згодом призначення каталога змінилось -- він став призначатись для буквально всього прикладного софту, тобто такого, що ані не є системно важливим (система й без нього проживе), ані не вимагає маніпуляцій у режимі ядра. Тобто, всі ваші текстові процесори, процесори електронних таблиць, редактори картинок -- усі йдуть туди. Окрім того, там же й початкові тексти програм (/usr/src), а також _усе_, що пов'язано з віконною системою X (/usr/X11R6).

Всередині на нас чекає така ж сама структура каталогів, як у корені (окрім каталогів /boot, /mnt і, ясна річ, /usr). Призначення їх, відповідно, аналогічне. Тобто, файли програм у /bin, файли конфігурації в /etc (хоч насправді ним мало хто користується, всі використовують /etc) і так далі. Особливо цікавим може виявитись каталог /usr/local, особливо ж для охочих власноруч збирати для себе програми з початкових кодів. Наприклад, я туди збираю програми, котрих нема в дистрибутиві, й щодо котрих я впевнений, що не буду інтегрувати їх із системою занадто тісно. Суп окремо, як кажуть, мухи -- окремо. Проте насправді, що робити і як -- це залежить від вас самих або від корпоративної політики.

Відсутній Дмитро Ковальов

  • Кореспондент
  • ***
  • дописів: 236
  • Карма: +0/-0
Літери дисків у ДОС (і відповідно у Віндовс) попали в значно спрощеній формі із VMS.

Я тут натрапив на одну інформацію, і просто подаю як історичну довідку. Про класифікацію назв файлів, пристроїв тощо в VMS.

http://www.djesys.com/vms/freevms/mentor/vms_path.html

Комусь може, наприклад, цікаво дізнатися, що VMS мав версії файлів вбудовані на рівні системи (типу вбудований CVS). І до речі зовсім недавно з'явилось в пресі повідомлення що Компак буде портувати OpenVMS на Ітаніум, також, що у Компака можна отримати "хоббі"-ліцензію на VMS.

Відсутній miwa

  • Літератор
  • ******
  • дописів: 1111
  • Карма: +0/-0
Агов, а продовження? Справді цікава тема і нехай я вже це знаю, але ж все рівно. Вперше бачу щось схоже українською. Як пісня читається ;о)).
Читайте документацію - вона кермує.