Что такое Linux, эквивалентный программным файлам Windows?

В Windows большинство приложений и данных приложений хранятся в специальном каталоге, известном как C:\Program Files (и иногда C:\Program Files (x86)). Что такое Ubuntu / Linux, эквивалентный этому пути? Есть ли хоть один?

208
задан 20 December 2016 в 23:33

10 ответов

Папка C: \ Program Files в Ubuntu будет / usr / bin . / 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 , ...

10
ответ дан 20 December 2016 в 23:33

«Программные файлы» Linux находятся во всей иерархии. Это может быть в / usr / bin , / bin , / opt / ... или в другом каталоге.

Я думаю, вы собираетесь чтобы найти файл, связанный с вашим приложением. Затем у меня есть идея, как искать файлы, которые устанавливаются при установке программы.

  1. Установите synaptic , выполнив sudo apt-get install synaptic на терминале.
  2. Посмотрите для нужного пакета выполните поиск по введенному тексту.
  3. Щелкните пакет правой кнопкой мыши и выберите Свойства .
  4. Перейдите на вкладку Установленный файл . Результат такой же, как dpkg -L имя_пакета .
  5. Там вы найдете все файлы, установленные для пакета.

Это потому, что linux перемещает установленный файл в каталоги отдельно в зависимости от их типа.

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

и во многих других каталогах. (CMIIW, принятие исправлений)

5
ответ дан 20 December 2016 в 23:33

[РЕДАКТИРОВАТЬ: Вам, вероятно, следует вместо этого проверить ответ d4nyll , который представляет собой отличную карту, действующую как подробное руководство для начинающих по файловой системе Linux]

/ bin и / usr / bin - это сценарии, запускающие программы. Прямым эквивалентом «Program Files», вероятно, является / opt или, возможно, / usr / share ( см. Стандарт иерархии файловой системы ). Этот каталог содержит различные файлы поддержки для большинства программ.

Nautilus showing /usr/share

Вероятно, нет прямого эквивалента, так как, например, файлы библиотеки являются общими для всей системы (в / lib ), а параметры: либо указанный пользователем (в домашнем каталоге пользователя), либо универсально расположенный в / etc .

Таким образом, установка программы через файл deb, репозиторий или сборку, скорее всего, поместит файлы во все эти места.

[EDIT] И, как отмечают другие, есть также / sbin и / usr / sbin . Плюс / usr / local / bin , / opt / bin и даже / usr / games / . Так что определенно не прямое сравнение с c: \ program files !

115
ответ дан 20 December 2016 в 23:33

Нет ни одного каталога, который был бы точным эквивалентом папки Program Files. То, как Linux организует вещи, сильно отличается от Windows.

В Windows каждая программа, которую мы устанавливаем, получает свой собственный каталог внутри каталога Program Files. В этом каталоге создаются дополнительные подкаталоги для различных типов файлов. Для подкаталогов не существует фиксированной структуры. Программы сами решают, как называть каждый каталог и куда помещать.

Но в Linux, когда программа установлена, файлы разных типов копируются в разные места. Исполняемые файлы копируются в /usr/bin, библиотечные файлы в /usr/lib, документацию в один или несколько из /usr/man, /usr/info и /usr/doc. Если есть конфигурационные файлы, то они обычно находятся в домашнем каталоге пользователя или в /etc.

18
ответ дан 20 December 2016 в 23:33

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

120
ответ дан 20 December 2016 в 23:33

В этом ответе, когда я говорю Unix, я имею в виду Unix, а также Unix-подобные операционные системы.

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

Иконки для программ хранятся в / usr / share / icons / *, исполняемые файлы программ обычно хранятся в / usr / bin, / bin и других местах с каталогами bin (bin - сокращение от двоичного файла obv). Библиотеки, от которых зависят программы, находятся в /lib.

. Таким образом, вы получаете не каталог, содержащий все данные для одной программы, а данные для разнесенной программы. Хотя на первый взгляд это кажется очень неорганизованным, он позволяет делиться стандартными вещами, такими как библиотеки и значки.

Благодаря разрешениям для каждого файла идея, что все является файлом, очень гениальна, если честно. Это делает Unix НАМНОГО более безопасным, чем другие операционные системы.

3
ответ дан 20 December 2016 в 23:33

Посмотрите / bin , / usr / bin и все остальное, что говорит bin .

-3
ответ дан 20 December 2016 в 23:33

Программы для Linux и Windows устанавливаются по-разному.

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

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

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

3
ответ дан 20 December 2016 в 23:33

Если вы устанавливаете собственные программы, я рекомендую 1 папку:

2
ответ дан 20 December 2016 в 23:33

РЕДАКТИРОВАТЬ: См. Также ответ 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 , который и whereis (я добавил ссылку на их страницы руководства в Интернете).

  • type : он описывает команду и указывает, как она будет интерпретируется, если используется как имя команды. Возможные типы команды:

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

    (сам тип является встроенной оболочкой, попробуйте его с типом type : P)

    Выполнение типа firefox дает нам

     firefox - это / usr / bin / firefox
     

    , что мы и хотели знать

Если команда является файлом (который вы проверили с помощью типа ), вы также можете использовать:

  • который : показывает полный путь команды

    Выполнение , которое firefox дает нам

      / usr / bin / firefox
     
  • whereis : найдите двоичный файл, исходный код и файлы справочной страницы для команды.

    Выполнение 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 .
Теперь вы можете покоиться с миром :)

85
ответ дан 20 December 2016 в 23:33

Другие вопросы по тегам:

Похожие вопросы: