В Windows большинство приложений и данных приложений хранятся в специальном каталоге, известном как C:\Program Files
(и иногда C:\Program Files (x86)
). Что такое Ubuntu / Linux, эквивалентный этому пути? Есть ли хоть один?
Папка 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
, ...
«Программные файлы» Linux находятся во всей иерархии. Это может быть в / usr / bin
, / bin
, / opt / ...
или в другом каталоге.
Я думаю, вы собираетесь чтобы найти файл, связанный с вашим приложением. Затем у меня есть идея, как искать файлы, которые устанавливаются при установке программы.
synaptic
, выполнив sudo apt-get install synaptic
на терминале. Свойства
. Установленный файл
. Результат такой же, как dpkg -L имя_пакета
. Это потому, что linux перемещает установленный файл в каталоги отдельно в зависимости от их типа.
/ usr / bin
или / bin
. / usr / share / icons
или на ~ /.local/share/icons
для локального. / opt
. / usr / share / applications
или в ~ / .local / share / applications
/ usr / share / doc
/ usr / lib
и во многих других каталогах. (CMIIW, принятие исправлений)
[РЕДАКТИРОВАТЬ: Вам, вероятно, следует вместо этого проверить ответ d4nyll , который представляет собой отличную карту, действующую как подробное руководство для начинающих по файловой системе Linux]
/ bin
и / usr / bin
- это сценарии, запускающие программы. Прямым эквивалентом «Program Files», вероятно, является / opt
или, возможно, / usr / share
( см. Стандарт иерархии файловой системы ). Этот каталог содержит различные файлы поддержки для большинства программ.
Вероятно, нет прямого эквивалента, так как, например, файлы библиотеки являются общими для всей системы (в / lib
), а параметры: либо указанный пользователем (в домашнем каталоге пользователя), либо универсально расположенный в / etc
.
Таким образом, установка программы через файл deb, репозиторий или сборку, скорее всего, поместит файлы во все эти места.
[EDIT] И, как отмечают другие, есть также / sbin
и / usr / sbin
. Плюс / usr / local / bin
, / opt / bin
и даже / usr / games /
. Так что определенно не прямое сравнение с c: \ program files
!
Нет ни одного каталога, который был бы точным эквивалентом папки Program Files. То, как Linux организует вещи, сильно отличается от Windows.
В Windows каждая программа, которую мы устанавливаем, получает свой собственный каталог внутри каталога Program Files. В этом каталоге создаются дополнительные подкаталоги для различных типов файлов. Для подкаталогов не существует фиксированной структуры. Программы сами решают, как называть каждый каталог и куда помещать.
Но в Linux, когда программа установлена, файлы разных типов копируются в разные места. Исполняемые файлы копируются в /usr/bin, библиотечные файлы в /usr/lib, документацию в один или несколько из /usr/man, /usr/info и /usr/doc. Если есть конфигурационные файлы, то они обычно находятся в домашнем каталоге пользователя или в /etc.
Поздний ответ - Я создал план действий для новичков. Если они ищут файл, но не знают, где искать, они могут использовать карту для приблизительной навигации. Вы можете скачать PNG с высоким разрешением здесь . Вы можете найти соответствующий пост здесь . Я буду продолжать обновлять и файл, и сообщение, когда позволит время, включая полезные комментарии.
В этом ответе, когда я говорю Unix, я имею в виду Unix, а также Unix-подобные операционные системы.
В Ubuntu действительно нет папки программ, содержащей все данные для каждой программы. В Unix и Unix-подобных операционных системах ВСЕ является файлом, даже команды терминала.Это тоже файлы. То, как Unix обрабатывает программы, может быть довольно хаотичным и в то же время организованным.
Иконки для программ хранятся в / usr / share / icons / *, исполняемые файлы программ обычно хранятся в / usr / bin, / bin и других местах с каталогами bin (bin - сокращение от двоичного файла obv). Библиотеки, от которых зависят программы, находятся в /lib.
. Таким образом, вы получаете не каталог, содержащий все данные для одной программы, а данные для разнесенной программы. Хотя на первый взгляд это кажется очень неорганизованным, он позволяет делиться стандартными вещами, такими как библиотеки и значки.
Благодаря разрешениям для каждого файла идея, что все является файлом, очень гениальна, если честно. Это делает Unix НАМНОГО более безопасным, чем другие операционные системы.
Посмотрите / bin
, / usr / bin
и все остальное, что говорит bin
.
Программы для Linux и Windows устанавливаются по-разному.
Обычно в Windows используется шаблон для программы; или связка программ от одного поставщика, которые идут в его собственный подкаталог в C: \ programs \ vendor или что-то подобное.
В Linux ваши файлы разделены между определенными подкаталогами в зависимости от их функции. Есть каталоги для библиотек, иконок, страниц руководства, файлов журнала, конфигурации и так далее. Вы можете использовать некоторые из них, но система справится со всеми ими. Они не связаны друг с другом, а существуют вместе с аналогичными файлами из других программ.
Таким образом, в обычной реализации Linux нет реального эквивалента этой структуре каталогов Windows.
Если вы устанавливаете собственные программы, я рекомендую 1 папку:
Прочтите мой ответ ниже, чтобы узнать больше о что такое переменная среды 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 : он описывает команду и указывает, как она будет интерпретируется, если используется как имя команды. Возможные типы команды:
(сам тип является встроенной оболочкой, попробуйте его с типом 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
.
Теперь вы можете покоиться с миром :)