Як зрозуміти макет файлової системи Ubuntu?


220

У Windows, мабуть, є лише пара важливих папок (під важливим я маю на увазі важливе в моїй логічній картині файлової системи Windows) на інсталяційному диску (у моєму випадку C:\). А саме Program Filesі Windows. Я просто тримаюся подалі від Windowsпапки, і "Додати видалити програмні файли" досить добре, щоб обробляти program filesпапку Windows. Звичайно, існує папка з назвою, Usersде користувачі (які не є адміністраторами) можуть отримати доступ лише до своїх папок.

Таким чином, я маю чітку картину на деякому рівні в моєму розумінні файлової системи Windows. У Ubuntu, коли я дістаюсь до місця /, існує величезний список папок, у більшості з яких я не маю поняття, що вони містять. /binПапка , здається, еквівалент Windowsпапки в вікнах. /usrПапка здається, що це еквівалент Usersпапки в Windows. Але навіть /homeпапка виглядає так, що вона може відповідати рахунку.

Будь ласка, розумійте, що я розумію, що Ubuntu (Linux) має інший характер, ніж у Windows, тобто в Ubuntu не повинно бути точного еквівалента функцій Windows. Все, що я шукаю, - це трохи більш чітка картина файлової системи Ubuntu.

Це питання є частиною більшого питання, яке я розбиваю, щоб зробити його більш відповідальним. Оригінальне запитання можна знайти тут:
http://sgsawant.wordpress.com/2012/05/17/whats-the-equivalent-of-add-or-remove-programs-in-ubuntu/


3
Дивіться також тег структури каталогів на Unix та Linux . Усі дистрибутиви Linux відповідають одній моделі.
Жиль

Дякую за всі ваші відповіді. Я трохи заплутаний у кількох пунктах: У Windows налаштування зазвичай пропонує підказку можливість встановити програмне забезпечення для всіх користувачів. Як зробити це відзнакою в Ubuntu? Крім того, це звичайна проблема в налаштуванні програмного забезпечення для розробки на його IDE. Наприклад, у Windows, у "програмних файлах \ miktex \ bin" є файл "pdflatex.exe". Таким чином, я можу вказати IDE на цей файл і налаштувати його. Як пройти цей процес в Ubuntu? Де загальний двійковий файл, пов'язаний із програмним забезпеченням (особливо з точки зору конфігурації)?
Шашанк Сован

2
В Ubuntu ви зазвичай встановлюєте програмне забезпечення для всіх користувачів. Все, що ви робите через менеджер пакунків, - це для всіх користувачів. Я не розумію решти вашого коментаря; один не "налаштовує" "бінарний файл, пов'язаний із програмним забезпеченням". Вам слід задати це як окреме запитання та дати краще пояснення того, що ви намагаєтесь зробити.
Жиль

Зрозумів. Я висуну нове запитання. Навіть ось коротке пояснення того, що я мав на увазі: У Windows файли .exe можна легко знайти. Наприклад: "C: \ Python27 \ python.exe". Тож я знаю, звідки починається програма Python. Тепер, якщо мені доведеться використовувати IDE Eclipse, я можу просто вказати його на python.exe, і це те, що я мав на увазі під «налаштуванням». Я налаштував IDE для Python. У Ubuntu, де знаходиться місце, де встановлена ​​програма? Саме це досі ухиляється від мене.
Шашанк Сован

2
@Gilles Будьте обережні, говорячи all. Проект GoboLinux фактично використовує структуру каталогів, схожу на Windows.
new123456

Відповіді:


251

Про це можна прочитати, наприклад, у wikipedia. Уривок:

Стандарт ієрархії файлової системи (FHS) визначає основні каталоги і їх вміст в операційних системах Linux. Здебільшого це формалізація та розширення традиційної ієрархії файлових систем BSD.

FHS підтримується Linux Foundation, неприбутковою організацією, що складається з основних постачальників програмного забезпечення та обладнання, таких як HP, Red Hat, IBM і Dell. Поточна версія 3.0, випущена 3 червня 2015 року.

Наочне зображення із коротким описом:

введіть тут опис зображення

По суті, Linux розділив структуру каталогів на основі функції того, що потрібно зробити систему максимально захищеною з мінімальною кількістю необхідних дозволів. Інакше комусь доведеться робити багато робіт, які можна уникнути.

Пам’ятайте, що Unix та Linux, де створені як багатокористувацькі системи та Windows, були створені для одного користувача. Все інше можна пояснити з цієї ідеї. Ви можете пояснити кожен каталог, думаючи про те, що він багатокористувацький і захищений.

3 приклади:

  • Ви побачите, що файли та каталоги, які є лише адміністраторами, зібрані в одному каталозі: s в /sbinі /usr/sbinі /usr/local/sbinозначає. Звичайний користувач навіть не може запускати програми, які є там. Файли, які може запустити звичайний користувач, знаходяться в / bin, / usr / bin, / usr / local / bin, залежно від того, де він найбільш логічно повинен перебувати. Але якщо вони лише адміністратори, вони повинні перейти до sверсії цього каталогу. Існує відома утиліта під назвою fuser. Ви можете вбивати процеси за допомогою нього. Якщо звичайний користувач міг би скористатися цими (ними), він зможе вбити ваш сеанс.

  • Те саме стосується /home: / home / user1 є власністю user1. / home / user2 є власністю user2. user2 не має жодної справи, яка б робила речі в будинку user1 (і навпаки, правда також: user1 не має жодної справи, яка б робила речі в будинку user2). Якщо всі файли знаходитимуться в / домі без імені користувача під ним, ви повинні будете давати дозволи на кожен файл і оцінювати, чи комусь дозволено писати / видаляти ці файли. Кошмар, якщо у вас є десятки користувачів.

  • Доповнення щодо бібліотек.

    /lib/, /usr/lib/та /usr/local/lib/є оригінальними місцями, від того, як існували багатолібкові системи та існували для запобігання злому. /usr/lib32, /usr/lib/64, /usr/local/lib32/, /usr/local/lib64/Є 32- / 64-бітові мультібібліотечние винаходи.

Це не статичне поняття жодним чином. Інші аромати Linux підкоригували цю програму. Наприклад; в даний час ви побачите, що debian і Ubuntu сильно змінюються в макеті FHS, оскільки SSD краще вибирати лише з файлами, які читаються. Існує рух до нової верстки, де файли розбиваються на каталог "лише для читання" та каталог / групу "для запису", тому ми можемо мати кореневий розділ, який можна встановити лише для читання (розділ для ssd) та для запису (sata hdd). Нова директорія, яка використовується для цього (не на зображенні), є /run/.


18
+1 Рінцвінд. Мені подобається образ, насправді шукав його.
Луїс Альварадо

5
га подумав, що приверне увагу: + @LuisAlvarado
Rinzwind

4
Кращої відповіді не може бути!
Шашанк Сован

1
Хіба не було /mntте, що /mediaзараз, кілька років тому?
RobinJ

9
@RobinJ: Різниця в тому, що /mntісторично керували вручну. З підйомом багатьох перехідних пристроїв (флеш-дисків тощо) та автоматичного монтажу, що стали стандартними, виникла потреба в автоматичному обробці точок кріплення. Новий каталог був потрібний, щоб уникнути конфліктів із існуючою конфігурацією вручну. Таким чином, у ці дні /mntвідведено роль забезпечення зручною тимчасовою точкою кріплення.
Скотт Северанс

104

Спробуйте цю команду ...

man 7 hier

Ви також можете переглянути цю сторінку керівництва тут: http://manpages.ubuntu.com/manpages/en/man7/hier.7.html

Сподіваюся, це допомагає


1
гарний дзвінок! Я завжди забуваю, що один, хоча він завжди присутній (навіть коли мережа вниз;))
Rinzwind

1
людина повинна бути перейменована на "це". :)))
Шики

man hierзараз серед моїх улюблених команд! Пояснення для мене більш чіткі, ніж до FHS, особливо розрізнення "локальне для машини" та "загальномісцеве" для недосвідченого користувача Ubuntu, що переходить від помірного досвіду роботи з DOS / Windows.
WillC

До речі, номер 7 стоїть у розділі « Різне» на сторінці людини.
Пабло А

хм. Чому варто такого роду нагадує мені відповідь лише для посилань, хоча ймовірно, що у кожної версії ubuntu це буде. Чи можете ви включити частину вмісту зі сторінки чоловіка у свою відповідь?
jrh

45

Пізня відповідь - я створив дорожню карту для початківців. Якщо вони шукають файл, але не знають, де його шукати, вони можуть використовувати карту, щоб приблизно орієнтуватися навколо. Ви можете завантажити привіт PNG тут . Ви можете знайти відповідний пост тут . Я буду постійно оновлювати і файл, і публікацію, коли дозволяє час, включаючи корисні коментарі.


Цікава та корисна ідея скласти блок-схему, але, на жаль, здається, вона має деякі тупики. Моє запитання: чи я виконую те, mysqldumpкуди мені слід вивести файл?
BadHorsie

@BadHorsie Звичайно, це завжди залежало б від конкретного випадку використання, але /home/badhorsie/mysqldumpдостатньо скинути його в каталог. Якщо у вас запущено багато додатків, ви можете створити нового користувача для запуску кожного додатка та скинути його в homeкаталог цього додатка / користувача .
d4nyll

@ paranoid-panda, чи можете ви трохи розширити, чому ви вирішите не дозволити натискання зображення через повну роздільну здатність? Версія, вбудована в цю публікацію, майже не читається.
waldyrious

@waldyrious: Якщо ви подивитесь на історію редагування, ви побачите, що я виправив лише орфографічну помилку, саме інший користувач додав зображення саме таким чином. Нічого спільного зі мною. Не соромтесь відредагувати свою думку, я не можу запам’ятати правильний синтаксис, щоб він міг натискати.

@ParanoidPanda саме це я і зробив. Моя редакція дозволила виправити помилку друку і зробила зображення доступним для натискання, а ваш огляд - відхилити та відредагувати , отже, моє запитання: що ви бачили не так у тому, щоб зробити зображення натисканням?
waldyrious

36

Цей наступний текст показує структуру каталогу.

mtk4@laptop:/$ pwd
/
mtk4@laptop:/$ tree -L 1
.
|-- bin
|-- boot
|-- cdrom
|-- dev
|-- etc
|-- home
|-- lib
|-- lost+found
|-- media
|-- mnt
|-- opt
|-- proc
|-- root
|-- run
|-- sbin
|-- selinux
|-- srv
|-- sys
|-- tmp
|-- usr
|-- var

Основні компоненти тут:

  1. /boot : Містить завантажувач

  2. /home : Містить домашні каталоги користувачів.

  3. /bin : Тут виконуються всі виконувані бінарні файли та команди, якими користуються всі користувачі системи.

  4. /sbin : Тут містяться виконані в системі бінарні файли, які зазвичай використовуються системними адміністраторами.

  5. /lib : Містить системні бібліотеки, які підтримують бінарні файли в / bin та / sbin.

  6. /etc : Містить файли конфігурації для мережі, час завантаження тощо.

  7. /dev : Тут показані файли пристрою, тобто usb, термінальний пристрій або будь-який інший пристрій, приєднаний до системи.

  8. /proc : Містить інформацію про запущений процес.

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

Для більш детальної інформації посилання Thegeekstuff чудово пояснює загальну файлову систему Linux.


20

\Usersеквівалентно /home. Назва /usr- історичний артефакт.

У поєднанні еквівалент \Windowsі \Program Filesявляє собою комбінацію /bin, /boot, /etc, /lib, /sbin, /tmp, /usrі /var. Linux та Windows розділили встановлене програмне забезпечення по-різному. Windows розрізняє операційну систему та супутні програми. Linux не робить цього розрізнення однаково; більшість, якщо не все програмне забезпечення надходить через Ubuntu (дистриб'ютор) і встановлюється в одній ієрархії каталогів, а оскільки програмне забезпечення відстежується менеджером пакунків, немає необхідності зберігати кожну програму у власному каталозі. У Linux:

  • /etc призначений для файлів конфігурації системи: файли конфігурації, які впливають на всіх користувачів, незалежно від того, застосовуються вони до операційної системи в цілому або до певної програми.
  • /usr призначений для системного коду та даних (програми, бібліотеки, документація тощо).
  • /varпризначений для змінних або тимчасових даних: тимчасові файли, журнали, бази даних менеджера пакунків, котушки принтера, файли збереження гри тощо. Є також /tmpтимчасові файли, які можна стерти через перезавантаження.
  • /bin, /libа /sbinв кореневому каталозі є аналоги в /usr. Файли, які знаходяться зовні, /usr- це ті, які потрібні на початку завантажувального процесу. Це реліквія часів, коли диски були невеликими і /usrмогли знаходитись у файловій системі, що ділиться між декількома робочими станціями по мережі, насправді це не корисна відмінність для більшості систем.
  • /boot містить кілька файлів, які потрібні лише для завантаження операційної системи, а не для щоденної роботи.

Є додаткові каталоги, які не відповідають нічого, що має Windows:

  • /root- домашній каталог кореневого користувача. Користувацький користувач - це обліковий запис адміністратора, не прив'язаний до конкретного користувача; це той користувач, якого ви змінюєте під час запуску sudo. Ubuntu за замовчуванням не дозволяє кореневому користувачеві увійти.
  • /mediaі /mntє точками кріплення: вони можуть бачити файлові системи інших операційних систем та віддалених накопичувачів. Еквівалент Windows - це інші букви диска.
  • /procі /sysпоказати системну інформацію. У Windows вам потрібно пробиратися через меню або викликати системні команди або встановлювати сторонні програми, щоб побачити цю інформацію.

Ubuntu, як і інші дистрибутиви Linux, як правило, відповідає стандарту ієрархії файлової системи Linux .


5

Ubuntu (як і всі системи, схожі на UNIX) організовує файли в ієрархічному дереві, де розглядаються відносини в дитячих колективах та батьків. Довідники можуть містити інші каталоги, а також звичайні файли, які є "листям" дерева. Будь-який елемент дерева може бути посиланням назви шляху; абсолютна назва шляху починається з символу / (ідентифікація кореневого каталогу, який містить усі інші каталоги та файли), потім перераховується кожен дочірній каталог, який повинен бути пройдений, щоб досягти елемента, кожен розділений знаком /.

Ім'я відносного шляху - це те, що не починається з /; у цьому випадку дерево каталогів проходить, починаючи з заданої точки, яка змінюється залежно від контексту, і називається поточною каталогом. У кожному каталозі є два спеціальних каталоги. і .., які посилаються відповідно на сам каталог і на його батьківський каталог.

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

Знайдіть приклади та додаткову інформацію тут :

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.