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

137

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

    
задан Kaz Wolfe 20.02.2011 в 08:36
источник

10 ответов

86

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

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

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

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

    
ответ дан Scaine 20.02.2011 в 14:21
66

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

/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 . Свойства этих местоположений объясняются файловой системой Standerd , которая очень хорошо читается. К сожалению, разница между /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 : P)

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

    firefox is /usr/bin/firefox
    

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

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

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

    Выполнение which 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
    

Bonus

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

EDIT : см. также ответ d4nyll для приятной дорожной карты.

    
ответ дан Gerhard Burger 12.05.2013 в 21:49
49

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

    

ответ дан d4nyll 20.11.2014 в 19:25
15

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

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

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

    
ответ дан binW 24.02.2011 в 16:19
9

В папке 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 , ...

    
ответ дан Lekensteyn 20.02.2011 в 15:42
3

Программные файлы 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, принимающая коррекция)

    
ответ дан Abdillah 15.03.2014 в 15:09
2

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

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

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

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

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

    
ответ дан Thomas Boxley 20.02.2011 в 20:25
2

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

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

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

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

ответ дан user unknown 20.02.2011 в 15:36
1

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

ответ дан Timo 12.03.2015 в 20:27
-2

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

    
ответ дан cpu2 12.05.2013 в 21:36