Под 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.