Що таке еквівалент Linux програмним файлам Windows?


179

У Windows більшість програм та даних додатків зберігаються у спеціальному каталозі, який називається C:\Program Files(і періодично C:\Program Files (x86)). Що Ubuntu / Linux еквівалентно цьому шляху? Чи є навіть один?


2
Якщо ви хочете знати, де знаходяться файли певного пакету, ви можете використовувати диспетчер пакунків Synaptic. Просто шукайте пакет і переглядайте його встановлені файли.
Асмеріто

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

4
Пов'язані (але, мабуть, не слід вважати дублікатами): Як зрозуміти макет файлової системи Ubuntu?
Елія Каган

Відповіді:


104

/binі тут /usr/binє сценарії, які запускають програми. Хоча, мабуть, прямий еквівалент "Файли програм" /usr/share( див. Стандарт ієрархії файлів ). Цей каталог містить різні файли підтримки для більшості програм.

Nautilus показує / usr / share

Однак, мабуть, немає прямого еквівалента, оскільки, наприклад, бібліотечні файли діляться по всій системі (in /lib), а параметри або вказані користувачем (у домашній довідник користувача), або загалом розташовані в /etc.

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

[EDIT] І як зазначають інші, є також /sbinі /usr/sbin. Крім того /usr/local/bin, /opt/binі навіть /usr/games/. Тож точно не є прямим порівнянням c:\program files!


4
Як щодо /opt? Я бачив, що раніше утримується багато програм (як правило, із закритим кодом або на основі додатків) аналогічно Program Files.
Купіакос

Здається, це йтиме саме таким чином, з появою програмного центру Ubuntu, який, безумовно, доставляє свої ігри туди. Але навіть навряд чи це пряме порівняння? Можливо, найближча річ сьогодні.
Scaine

Див. Askubuntu.com/a/294492/41499 для того, для чого потрібен/opt каталог.
Герхард Бургер

/usr/local/bin- напівпоширене місце для програмного забезпечення, яке може не використовуватися користувачем / компанією.
Марк Стюарт

І наскільки ця ОС краща за Windows? Я перейшов на це, щоб спробувати це - це найкраще для розробки в Інтернеті. Але я не можу зрозуміти ті речі з ієрархії ... Я встановив PhpStorm, і це зараз у папках 1238128 ..
Тома Томов

84

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


6
ця відповідь ігнорується, вона повинна бути вгорі.
волдеморт

83

РЕДАКТУЙТЕ : Дивіться також відповідь d4nyll нижче про відмінну та зручну для початківців карту!

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

Оригінальна відповідь:


Немає простої відповіді.

/bin, /usr/binІ/usr/share

Як зазначено в інших відповідях, ви можете знайти більшість виконуваних файлів під /binабо /usr/bin, а файли підтримки встановлені в /usr/share.

/usr/local і /opt

Однак є більше каталогів, в яких Ubuntu встановлює додатки. PATHЗмінний, яка визначає , де шукати введену команду, може дати вам ключ, мій виглядає ( echo $PATHв терміналі):

/usr/local/cuda/bin:/usr/local/texlive/2012/bin/x86_64-linux:/usr/games:/home/gerhard/bin:/usr/lib/lightdm/lightdm:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games

Як ви бачите, деяке програмне забезпечення встановлене в /usr/localі має власний каталог і bin. Ще одне місце, де встановлено багато програм /opt. Властивості цих локацій пояснюються стандартом ієрархії файлової системи , що є дуже хорошим зчитуванням. На жаль, різниця між /optі /usr/localне дуже добре пояснена, хтось на unix stackexchange мав більш детальне пояснення:

  • /usr/localце місце для встановлення файлів, побудованих адміністратором, як правило, за допомогою команди make. Ідея полягає у тому, щоб уникнути сутичок з файлами, що входять до складу операційних систем, які б або перезаписали, або перезаписали локальні в іншому випадку. напр. /usr/bin/fooє частиною ОС, але /usr/local/bin/fooє локальною альтернативою,
  • /optце каталог для встановлення нерозділених пакетів кожен у своєму власному підкаталозі. Вони вже склали цілі пакети, надані незалежним дистрибутором програмного забезпечення. Наприклад, someappвін буде встановлений в /opt/someapp, одна з його команд знаходитиметься в /opt/someapp/bin/foo[і тоді зазвичай символічне посилання робиться в одному з binкаталогів у програмі PATH, або програма викликається з файлу робочого столу (див. Нижче)].

Пошук конкретної програми або команди

.desktop файли

Щоб дізнатися, де встановлена ​​конкретна програма, можна виконати ряд кроків. Спочатку потрібно знайти його .desktopфайл. Файли на робочому столі є синхронізованими для ярликів у Windows, а для системних додатків вони знаходяться /usr/share/applications. Файли на робочому столі для додатків, доступних лише для поточного користувача, є ~/.local/share/applications. Візьмемо для прикладу Google Chrome, у якому є файл на робочому столі, /usr/share/applications/google-chrome.desktopі шукайте рядок, що починається Exec=, це визначає, як запустити Google Chrome. Він говорить:

Exec=/opt/google/chrome/google-chrome

Отже, ви знаєте, що Google Chrome перебуває /opt.

Тепер про Mozilla Firefox, який знаходиться в /usr/share/applications/firefox.desktop. Це просто говорить

Exec=firefox %u

Спочатку, здається, це не дуже допомагає, але потім ви розумієте, що це firefoxповинно бути в каталозі, що знаходиться в PATHзмінній (швидше за все, a bin), і ми можемо його переглянути (див. Нижче).

Шукаючи команди

Для перегляду команд , які ви можете використовувати один або декілька з наступних дій : type, whichі whereis(я включив посилання на їх ручні сторінки в Інтернеті).

  • type : він описує команду та вказує, як вона буде інтерпретуватися, якщо вона використовується як ім'я команди. Можливі типи команди:

    1. псевдонім (псевдонім оболонки)
    2. функція (функція оболонки)
    3. вбудований (оболонка вбудована)
    4. файл (файл диска)
    5. ключове слово (оболонка зарезервоване слово)

    (тип сам є вбудованою оболонкою, спробуйте type type: P)

    Виконання type firefoxдає нам

    firefox is /usr/bin/firefox
    

    що ми хотіли знати

Якщо команда - це файл (який ви перевірили type), ви також можете використовувати:

  • який : показує повний шлях команди,

    Виконання which firefoxдає нам

     /usr/bin/firefox
    
  • де : знайдіть файли бінарних, вихідних та ручних сторінок для команди.

    Виконання whereis firefoxдає нам

    firefox: /usr/bin/firefox /etc/firefox /usr/lib/firefox /usr/lib64/firefox /usr/bin/X11/firefox /usr/share/man/man1/firefox.1.gz
    

Бонус

Ви можете оглянути /usr/bin/firefoxближче до ls -l /usr/bin/firefoxцього, і це дає:

/usr/bin/firefox -> ../lib/firefox/firefox.sh*

Здається, що /usr/bin/firefoxце "лише" символічне посилання на сценарій /usr/lib/firefox/firefox.sh. Якщо ви перевіряєте сценарій, то виявляєте, що скрипт викликає /usr/lib/firefox/firefox.
Ви можете спокійно відпочити зараз :)


Досить класна відповідь. Одне запитання, що таке символічна посилання? Це еквівалент ярлика Windows?
Куазі Ірфан

@iamcreasy дякую! Так, вони є свого роду ярликом, але з головним наміром уникати копій файлів. Комбінації клавіш для вікон порівнянні з. файли на робочому столі, за допомогою яких можна створити, наприклад, елементи стартового меню.
Герхард Бургер

Навіщо хтось використовувати файл .desktop над символічними посиланнями і навпаки?
Куазі Ірфан

1
@iamcreasy У файли .desktop можна додати додаткову інформацію, наприклад опис та піктограму (див. приклад тут: standard.freedesktop.org/desktop-entry-spec/latest/apa.html ), це "звичайний" файл . Символічне посилання - це "спеціальний" файл, який посилається лише на інший файл. Мені це важко пояснити належним чином, але, можливо, ти можеш знайти кращу відповідь тут: superuser.com/questions/253935/…
Герхард Бургер

18

Немає жодного каталогу, який би був точним еквівалентом папки програмних файлів . Те, як Linux влаштовує речі, значно відрізняється від Windows.

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

Але в Linux, коли встановлена ​​програма, різні типи файлів копіюються в різні місця. Виконані файли копіюються в / usr / bin , бібліотечні файли в / usr / lib , документацію в один або більше / usr / man , / usr / info та / usr / doc . Якщо є конфігураційні файли, то вони, як правило , в домашньому каталозі користувача або в / і т.д. .


Чи є якась причина для цього групування файлів за їх призначенням, а не на основі програми, до якої належать файли? Чи в цілому "стиль групування файлів Unix" взагалі зручніший з точки зору системного адміністратора?
їїман

1
не зовсім. Я думаю, що це вибір дизайну, який вони зробили. Хоча це дає можливість робити такі утиліти, як "man", "info" або багато інших, які залежать від цієї структури файлів. Наприклад, "man" знає, де шукати документацію для кожної команди. Якщо немає стандартного розташування документів, людина не може працювати.
binW

10

C:\Program FilesПапка буде /usr/binв Ubuntu. /binвиглядає більше C:\windows.

З сторінки керівництва ієрархії файлової системи :

/bin      This directory contains executable programs which are needed  in
          single user mode and to bring the system up or repair it.
/usr/bin
          This is the primary directory  for  executable  programs.   Most
          programs  executed  by  normal  users  which  are not needed for
          booting or for repairing the system and which are not  installed
          locally should be placed in this directory.

Ubuntu має іншу структуру, ніж Windows. Скажімо, Ubuntu розміщує майже всі програми в одному каталозі /usr/bin. Windows створить нову папку, скажімо Mozilla Firefox, і додасть у неї конфігурацію, виконувані файли, файли DLL, зображення тощо. Ubuntu розбиває їх, виконуються виконувані файли /usr/bin, конфігурація загальносистемної системи /etc, спільні об'єкти /usr/lib, зображення в /usr/share, ...


5

"Файли програм" для Linux є всією ієрархією. Це може бути /usr/bin, /bin, /opt/...або в інших каталогах.

Я думаю, ви збираєтесь знайти якийсь файл, пов’язаний із вашою заявою. Потім у мене є уявлення про те, як виглядати файли, встановлені при встановленні програми.

  1. Встановити synaptic, видавши sudo apt-get install synapticна терміналі.
  2. Шукайте потрібний пакет, шукайте на введенні тексту пошуку.
  3. Клацніть правою кнопкою миші пакет і виберіть Properties.
  4. Перехід до Installed Fileвкладки. Результат такий же, як dpkg -L package_name.
  5. Там ви знайдете всі файли, встановлені для пакета.

Це тому, що Linux переміщує встановлений файл в каталоги окремо, залежно від їх типу.

  • Виконавчий файл переходить до /usr/binабо /bin.
  • Піктограма переходить на /usr/share/iconsабо вмикається ~/.local/share/iconsдля місцевих.
  • Весь додаток (портативний) на /opt.
  • Ярлик, як правило, /usr/share/applicationsувімкнено~/.local/share/applications
  • Документація на /usr/share/doc
  • Бібліотека / модуль ввімк /usr/lib

І багато інших каталогів. (CMIIW, приймаючи виправлення)


3

У цій відповіді, кажучи про Unix, я маю на увазі Unix, а також Unix-подібні операційні системи.

У Ubuntu насправді немає папки програм, яка містить усі дані для кожної програми. У операційних системах Unix та Unix, ВСЕ - файл, навіть команди терміналу. Вони також файли. Те, як Unix обробляє програми, може бути досить хаотичним та одночасно організованим.

Піктограми програм зберігаються у / usr / share / icons / *, виконувані програми зазвичай зберігаються у / usr / bin, / bin та інших місцях із каталогами bin (bin bv недовгий для двійкових). Бібліотеки, від яких залежать програми, знаходяться в / lib.

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

Завдяки дозволам для кожного файлу, ідея про те, що це файл, є дуже геніальною, якщо чесно. Це робить Unix МНОГО безпечнішим, ніж інші операційні системи.


3

Спосіб встановлення програм Linux та Windows зовсім інший.

Загальна модель в Windows - це програма; або купа програм, від одного постачальника переходять у його власний підкаталог на C: \ programs \ vendor або щось подібне.

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

Таким чином, немає реального еквіваленту структурі каталогу Windows у звичайній реалізації Linux.



-2

Подивіться на /bin, /usr/binі все інше , що говорить bin.

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