在 Windows 下,大多数应用程序和应用程序数据都存储在称为C:\Program Files
(有时是C:\Program Files (x86)
)的特殊目录中。Ubuntu/Linux 中与此路径对应的是什么?有这样的路径吗?
答案1
答案2
[编辑:你也许应该请查看 d4nyll 的答案,这是一张漂亮的地图,可以作为 Linux 文件系统的详尽初学者指南]
/bin
是/usr/bin
启动程序的脚本所在的地方。“Program Files”的直接对应项可能/opt
是/usr/share
(参见文件系统层次标准)。该目录包含大多数程序的各种支持文件。
然而,可能没有直接的等价物,因为例如库文件在整个系统内共享(在 中/lib
),而选项要么是用户指定的(在用户的主目录中),要么是普遍位于 中的/etc
。
因此,通过 deb 文件、存储库或构建安装程序可能会将文件放置在所有这些位置。
[编辑] 其他人也指出,还有/sbin
和/usr/sbin
。加上/usr/local/bin
,/opt/bin
甚至/usr/games/
。所以绝对不能直接与 进行比较c:\program files
!
答案3
编辑:另请参阅d4nyll 的回答如下 获得一张优秀且适合初学者的地图!
阅读下面的回答,了解有关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
变量中的目录中(最有可能是bin
),我们可以查找它(见下文)。
查找命令
要查找命令,您可以使用以下一个或多个:type
,which
和whereis
(我已在线提供了其手册页的链接)。
类型:它描述一个命令,并指示如果用作命令名称将如何解释它。命令的可能类型包括:
- 别名(shell 别名)
- 函数(shell 函数)
- 内置(shell 内置)
- 文件(磁盘文件)
- 关键字(shell 保留字)
(类型本身是 shell 内置的,请尝试一下
type type
:P)执行
type firefox
给我们带来firefox is /usr/bin/firefox
这正是我们想知道的
如果命令是一个文件(您已使用 检查type
),那么您也可以使用:
哪个:显示命令的完整路径,
执行
which firefox
给我们带来/usr/bin/firefox
哪里:找到命令的二进制文件、源文件和手册页文件。
执行
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
。
你现在可以安息了:)
答案4
该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
,...