在Windows下,大多数应用程序和应用程序数据都存储在称为C:\Program Files
(有时为C:\Program Files (x86)
)的特殊目录中。与此路径等效的Ubuntu / Linux是什么?哪有一个?
在Windows下,大多数应用程序和应用程序数据都存储在称为C:\Program Files
(有时为C:\Program Files (x86)
)的特殊目录中。与此路径等效的Ubuntu / Linux是什么?哪有一个?
Answers:
/bin
并且/usr/bin
是启动程序的脚本所在的位置。不过,“程序文件”的直接等效项可能是/usr/share
(请参见文件系统层次结构标准)。该目录包含大多数程序的各种支持文件。
但是,可能没有直接的等效项,例如,因为库文件在系统中共享(在中/lib
),并且选项是用户指定的(在用户的主目录中)或普遍位于中/etc
。
因此,通过deb文件,存储库或内部版本安装程序可能会将文件放置在所有这些位置。
[EDIT]另外,还有/sbin
和/usr/sbin
。再加上/usr/local/bin
,/opt/bin
甚至/usr/games/
。所以绝对不是直接比较c:\program files
!
/opt
样 我已经看过以前以与相似的方式拥有许多(通常是封闭源代码或基于应用程序的)程序Program Files
。
/usr/local/bin
是用户/公司可能不常用的软件的半公共位置。
请阅读以下我的答案,以获取有关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
。这些位置的属性由Filesystem Hierarchy Standard解释,这是一本很好的书。不幸的是,和之间的区别/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:它描述命令,并指示如果用作命令名将如何解释它。命令的可能类型为:
(类型本身是内置的shell,请与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中的一个或多个。如果有配置文件,它们通常位于用户的主目录或/ etc中。
该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是obv的二进制缩写)。程序依赖的库位于/ lib中。
因此,最终不会得到一个包含一个程序的所有数据的目录,而是该程序的数据散布开了。虽然起初看起来似乎很杂乱无章,但它允许共享诸如库和图标之类的标准内容。
多亏了每个文件的权限,老实说,将所有内容都作为一个文件的想法非常出色。它使Unix MUCH比其他操作系统更安全。