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


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


146
2018-02-20 07:36


происхождения


Если вы хотите знать, где находятся файлы определенного пакета, вы можете использовать диспетчер пакетов Synaptic. Просто найдите пакет и посмотрите его установленные файлы. - Asmerito
Я думаю, что этот вопрос будет причина для получения эквивалента. Существует разница между, например, «позволяет увидеть, что я установил и что я могу запустить», и «Я пытаюсь найти save-game этого / этого программного обеспечения, поэтому я могу с ним поиграть», и, возможно, даже «я подозреваю, что некоторые настройки файла / ini-файла для этой программы я могу настроить». Это могут быть вопросы «Program Files», но здесь есть разные ответы. - Nanne
Связанный (но, вероятно, не следует рассматривать как дубликат): Как понять макет файловой системы Ubuntu? - Eliah Kagan


ответы:


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

Nautilus showing /usr/share

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

Поэтому установка программы через файл deb, репозиторий или сборку, вероятно, будет размещать файлы во всех этих местах.

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


91
2018-02-20 13:21



Как насчет /opt? Я видел, что многие из них (обычно с закрытыми исходными текстами или приложениями) Program Files, - Kupiakos
Кажется, так и будет, с появлением программного обеспечения Ubuntu Software Center, обеспечивающего там свои игры. Но даже тогда, вряд ли прямое сравнение, действительно ли это? Возможно, самое близкое в наши дни. - Scaine
Видеть askubuntu.com/a/294492/41499 для чего /opt каталог для. - Gerhard Burger


Нет простого ответа.

/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 переменная (скорее всего, bin), и мы можем посмотреть его (см. ниже).

Поиск команд

Для поиска команд вы можете использовать одно или несколько из следующих действий: type, which а также whereis (Я включил ссылку на их страницы руководства онлайн).

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

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

    (сам тип является встроенной командой команды bash, попробуйте type type :П)

    проведение 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,
Теперь ты можешь спокойно отдохнуть :)

РЕДАКТИРОВАТЬ: Смотрите также Ответ d4nyll  для хорошей дорожной карты.


72
2018-05-12 19:49



Довольно крутой ответ. Один вопрос, что такое Символическая ссылка? Является ли это эквивалентом Windows? - Quazi Irfan
@iamcreasy спасибо! Да, это своего рода ярлык, но с основным намерением избежать копирования файлов. Ярлыки окон более сопоставимы. файлы рабочего стола, которые можно использовать для создания, например, элементов startmenu. - Gerhard Burger
Почему кто-то использует файл .desktop поверх символических ссылок и наоборот? - Quazi Irfan
@iamcreasy В файлах .desktop вы можете добавить дополнительную информацию, такую ​​как описание и значок (см. пример здесь: standards.freedesktop.org/desktop-entry-spec/latest/apa.html), это «обычный» файл. Символическая ссылка - это «специальный» файл, который только ссылается на другой файл. Мне трудно это объяснить, но, может быть, вы можете найти здесь лучший ответ: superuser.com/questions/253935/... - Gerhard Burger


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


60
2017-11-20 18:25



этот ответ игнорируется, он должен быть наверху. - voldemort


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

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

Но в Linux, когда установлена ​​программа, файлы разных типов копируются в разные местоположения. Исполняемые файлы копируются в / USR / бен, файлы библиотек / USR / Lib, документация к одному или нескольким из / USR / человек, / USR / информация а также / USR / док, Если есть файлы конфигурации, они обычно находятся в домашнем каталоге пользователя или в /и т.д,


16
2018-02-24 15:19



Есть ли какая-то причина для этой группировки файлов на основе их цели, а не на основе приложения, к которому принадлежат файлы? «Стиль группировки файлов Unix», как правило, более удобен с точки зрения системного администратора? - jojman
на самом деле, нет. Его выбор дизайна, который они сделали, я думаю. Хотя это позволяет создавать такие утилиты, как «человек», «информация» или многие другие, которые зависят от этой файловой структуры. Например, «человек» знает, где искать документацию для каждой команды. Если стандартное расположение документов отсутствует, человек не может работать. - binW


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 имеет другую структуру, чем окна. Ubuntu размещает почти все приложения в одном каталоге, скажем, /usr/bin, Windows создаст новую папку, скажем, Mozilla Firefox, и добавьте в него конфигурацию, исполняемые файлы, DLL, изображения и т. д. Ubuntu разделяет их, исполняемые файлы идут /usr/bin, общесистемная конфигурация в /etc, общие объекты в /usr/lib, изображения в /usr/share, ...


9
2018-02-20 14:42





Программные файлы 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
2018-03-15 14:09





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

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

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

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

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


2
2018-02-20 19:25





То, как Linux и Windows-программы установлены, совсем другое.

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

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

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


2
2018-02-20 14:36





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


1
2018-03-12 19:27





Заглянуть /bin, /usr/bin, и все остальное, что говорит bin,


-2
2018-05-12 19:36