编辑:另请参阅d4nyll 的回答如下 获得一张优秀且适合初学者的地图!

编辑:另请参阅d4nyll 的回答如下  获得一张优秀且适合初学者的地图!

在 Windows 下,大多数应用程序和应用程序数据都存储在称为C:\Program Files(有时是C:\Program Files (x86))的特殊目录中。Ubuntu/Linux 中与此路径对应的是什么?有这样的路径吗?

答案1

迟来的答复- 我为初学者创建了一个路线图。如果他们正在寻找文件但不知道在哪里查找,他们可以使用地图大致导航。您可以下载高分辨率 PNG这里。您可以找到相关文章这里

答案2

[编辑:你也许应该请查看 d4nyll 的答案,这是一张漂亮的地图,可以作为 Linux 文件系统的详尽初学者指南]

/bin/usr/bin启动程序的脚本所在的地方。“Program Files”的直接对应项可能/opt/usr/share参见文件系统层次标准)。该目录包含大多数程序的各种支持文件。

Nautilus 显示 /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某个目录中创建符号链接,或者从桌面文件调用该程序(见下文)]。binPATH

查找特定程序或命令

.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),我们可以查找它(见下文)。

查找命令

要查找命令,您可以使用以下一个或多个:typewhichwhereis(我已在线提供了其手册页的链接)。

  • 类型:它描述一个命令,并指示如果用作命令名称将如何解释它。命令的可能类型包括:

    1. 别名(shell 别名)
    2. 函数(shell 函数)
    3. 内置(shell 内置)
    4. 文件(磁盘文件)
    5. 关键字(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/binUbuntu 中。/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,...

相关内容