Под Windows большинство приложений и данных приложений хранятся в специальном каталоге, известном как C:\Program Files(и иногда C:\Program Files (x86)). Что такое Ubuntu / Linux, эквивалентный этому пути? Есть ли хоть один?
Под Windows большинство приложений и данных приложений хранятся в специальном каталоге, известном как C:\Program Files(и иногда C:\Program Files (x86)). Что такое Ubuntu / Linux, эквивалентный этому пути? Есть ли хоть один?
Ответы:
/binи /usr/binгде сценарии, которые запускают программы. Прямой эквивалент "Program Files", хотя, вероятно, /usr/share( см. Стандарт иерархии файловой системы ). Этот каталог содержит различные файлы поддержки для большинства программ.

Однако, вероятно, не существует прямого эквивалента, так как, например, файлы библиотеки являются общими для всей системы (in /lib), а параметры либо определяются пользователем (в домашнем каталоге пользователя), либо универсально расположены в /etc.
Поэтому установка программы через файл deb, репозиторий или сборку, скорее всего, поместит файлы во все эти места.
[РЕДАКТИРОВАТЬ] И, как другие отмечают, есть также /sbinи /usr/sbin. Кроме того /usr/local/bin, /opt/binи даже /usr/games/. Так что определенно не прямое сравнение с c:\program files!
/opt? Я видел, что раньше многие программы (обычно с закрытым исходным кодом или на основе приложений) были похожи Program Files.
/optкаталог.
/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 : найдите бинарные, исходные и справочные файлы для команды.
Выполнение 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.
Вы можете покоиться с миром сейчас :)
Не существует единственного каталога, который является точным эквивалентом папки Program Files . В Linux порядок вещей сильно отличается от Windows.
В windows каждая программа, которую мы устанавливаем, получает свой собственный каталог внутри каталога Program Files. В этом каталоге создаются дополнительные подкаталоги для разных типов файлов. Не существует фиксированной структуры для подкаталогов. Программы сами решают, как они будут называть каждый каталог, и куда они хотят что-то поместить.
Но в 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 - это сокращение от bin). Библиотеки, от которых зависят программы, находятся в / lib.
Таким образом, вы получите не каталог, содержащий все данные для одной программы, а данные для программы. Хотя поначалу это кажется очень неорганизованным, оно позволяет обмениваться стандартными вещами, такими как библиотеки и значки.
Благодаря разрешениям для каждого файла, идея о том, что все является файлом, честно говоря, очень гениальна. Это делает Unix НАМНОГО более безопасным, чем другие операционные системы.
Способ установки программ для Linux и Windows совершенно другой.
Общий шаблон в Windows для программы; или кучу программ от одного поставщика перейдите в его собственный подкаталог в C: \ Programs \ vendor или что-то подобное.
В Linux ваши файлы распределяются между определенными подкаталогами в зависимости от их функции. Есть каталоги для библиотек, иконки, справочные страницы, файлы журналов, конфигурации и так далее. Вы можете использовать некоторые из них, но система будет управлять всеми из них. Они не связаны вместе, но существуют вместе с аналогичными файлами из других программ.
Таким образом, в обычной реализации Linux нет реального эквивалента этой структуре каталогов Windows.