У Windows більшість програм та даних додатків зберігаються у спеціальному каталозі, який називається C:\Program Files
(і періодично C:\Program Files (x86)
). Що Ubuntu / Linux еквівалентно цьому шляху? Чи є навіть один?
У Windows більшість програм та даних додатків зберігаються у спеціальному каталозі, який називається C:\Program Files
(і періодично C:\Program Files (x86)
). Що Ubuntu / Linux еквівалентно цьому шляху? Чи є навіть один?
Відповіді:
/bin
і тут /usr/bin
є сценарії, які запускають програми. Хоча, мабуть, прямий еквівалент "Файли програм" /usr/share
( див. Стандарт ієрархії файлів ). Цей каталог містить різні файли підтримки для більшості програм.
Однак, мабуть, немає прямого еквівалента, оскільки, наприклад, бібліотечні файли діляться по всій системі (in /lib
), а параметри або вказані користувачем (у домашній довідник користувача), або загалом розташовані в /etc
.
Таким чином, встановлення програми через дебютний файл, сховище чи збірку, ймовірно, розмістить файли у всіх цих місцях.
[EDIT] І як зазначають інші, є також /sbin
і /usr/sbin
. Крім того /usr/local/bin
, /opt/bin
і навіть /usr/games/
. Тож точно не є прямим порівнянням c:\program files
!
/opt
? Я бачив, що раніше утримується багато програм (як правило, із закритим кодом або на основі додатків) аналогічно Program Files
.
/usr/local/bin
- напівпоширене місце для програмного забезпечення, яке може не використовуватися користувачем / компанією.
Пізня відповідь - я створив дорожню карту для початківців. Якщо вони шукають файл, але не знають, де його шукати, вони можуть використовувати карту, щоб приблизно орієнтуватися навколо. Ви можете завантажити привіт PNG тут . Ви можете знайти відповідний пост тут . Я буду постійно оновлювати і файл, і публікацію, коли дозволяє час, включаючи корисні коментарі.
Прочитайте мою відповідь нижче, щоб отримати докладнішу інформацію про те, що таке 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 : він описує команду та вказує, як вона буде інтерпретуватися, якщо вона використовується як ім'я команди. Можливі типи команди:
(тип сам є вбудованою оболонкою, спробуйте 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
.
Ви можете спокійно відпочити зараз :)
Немає жодного каталогу, який би був точним еквівалентом папки програмних файлів . Те, як Linux влаштовує речі, значно відрізняється від Windows.
У Windows кожна програма, яку ми встановлюємо, отримує власну директорію всередині каталогу файлів програм. У цьому каталозі створюються подальші підкаталоги для файлів різного типу. Немає фіксованої структури для підкаталогів. Програми самі вирішують, що вони хочуть викликати у кожному каталозі та куди хочуть покласти.
Але в Linux, коли встановлена програма, різні типи файлів копіюються в різні місця. Виконані файли копіюються в / usr / bin , бібліотечні файли в / usr / lib , документацію в один або більше / usr / man , / usr / info та / usr / doc . Якщо є конфігураційні файли, то вони, як правило , в домашньому каталозі користувача або в / і т.д. .
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
, ...
"Файли програм" для Linux є всією ієрархією. Це може бути /usr/bin
, /bin
, /opt/...
або в інших каталогах.
Я думаю, ви збираєтесь знайти якийсь файл, пов’язаний із вашою заявою. Потім у мене є уявлення про те, як виглядати файли, встановлені при встановленні програми.
synaptic
, видавши sudo apt-get install synaptic
на терміналі.Properties
.Installed File
вкладки. Результат такий же, як dpkg -L package_name
.Це тому, що Linux переміщує встановлений файл в каталоги окремо, залежно від їх типу.
/usr/bin
або /bin
./usr/share/icons
або вмикається ~/.local/share/icons
для місцевих./opt
./usr/share/applications
увімкнено~/.local/share/applications
/usr/share/doc
/usr/lib
І багато інших каталогів. (CMIIW, приймаючи виправлення)
У цій відповіді, кажучи про Unix, я маю на увазі Unix, а також Unix-подібні операційні системи.
У Ubuntu насправді немає папки програм, яка містить усі дані для кожної програми. У операційних системах Unix та Unix, ВСЕ - файл, навіть команди терміналу. Вони також файли. Те, як Unix обробляє програми, може бути досить хаотичним та одночасно організованим.
Піктограми програм зберігаються у / usr / share / icons / *, виконувані програми зазвичай зберігаються у / usr / bin, / bin та інших місцях із каталогами bin (bin bv недовгий для двійкових). Бібліотеки, від яких залежать програми, знаходяться в / lib.
Таким чином, у вас виходить не каталог, що містить усі дані для однієї програми, а дані для програми. Хоча спочатку це здається дуже неорганізованим, воно дозволяє ділитися стандартними речами, такими як бібліотеки та піктограми.
Завдяки дозволам для кожного файлу, ідея про те, що це файл, є дуже геніальною, якщо чесно. Це робить Unix МНОГО безпечнішим, ніж інші операційні системи.
Спосіб встановлення програм Linux та Windows зовсім інший.
Загальна модель в Windows - це програма; або купа програм, від одного постачальника переходять у його власний підкаталог на C: \ programs \ vendor або щось подібне.
У Linux ваші файли розділені між певними підкаталогами залежно від їх функції. Є каталоги для бібліотек, піктограм, чоловічих сторінок, файлів журналів, конфігурації тощо. Ви можете використовувати деякі з них, але система буде керувати ними. Вони не з'єднані разом, але існують разом із аналогічними файлами інших програм.
Таким чином, немає реального еквіваленту структурі каталогу Windows у звичайній реалізації Linux.