什么是 Linux 相当于 Windows 的程序文件?

208 filesystem

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

d4n*_*yll 131

迟到的答案- 我为初学者创建了一个路线图。如果他们正在寻找文件但不知道在哪里查看,他们可以使用地图粗略地浏览。您可以在此处下载高分辨率 PNG 。您可以在此处找到相关帖子。在时间允许的情况下,我会不断更新文件和帖子,并加入有用的评论。

  • 这个答案被忽略它应该在顶部。 (9认同)

Sca*_*ine 116

[编辑:您可能应该查看 d4nyll 的答案,这是一个漂亮的地图,作为 Linux 文件系统的广泛初学者指南]

/bin并且/usr/bin是启动程序的脚本所在的位置。“程序文件”的直接等价物可能是/opt或可能是/usr/share请参阅文件系统层次结构标准)。该目录包含大多数程序的各种支持文件。

Nautilus 显示 /usr/share

然而,可能没有直接的等价物,因为例如,库文件在整个系统(in /lib)中共享,并且选项要么是用户指定的(在用户的主目录中),要么普遍位于/etc.

因此,通过 deb 文件、存储库或构建安装程序可能会将文件放在所有这些位置。

[编辑] 正如其他人所指出的,还有/sbinand /usr/sbin。加/usr/local/bin/opt/bin甚至/usr/games/。所以绝对不能直接比较c:\program files

  • `/opt` 怎么样?我之前已经看到它以类似于“Program Files”的方式保存了许多(通常是闭源或基于应用程序的)程序。 (5认同)

Ger*_*ger 86

编辑:又见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
Run Code Online (Sandbox Code Playgroud)

如您所见,某些软件已安装/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. 以谷歌浏览器为例,它有桌面文件/usr/share/applications/google-chrome.desktop并查找以 开头的行Exec=,这决定了如何启动谷歌浏览器。它说:

Exec=/opt/google/chrome/google-chrome
Run Code Online (Sandbox Code Playgroud)

所以你知道谷歌浏览器在/opt.

现在对于位于/usr/share/applications/firefox.desktop. 它简单地说

Exec=firefox %u
Run Code Online (Sandbox Code Playgroud)

起初这似乎没有多大帮助,但随后您意识到它firefox必须位于PATH变量(最有可能是 a bin)中的目录中,我们可以查找它(见下文)。

查找命令

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

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

    1. 别名(外壳别名)
    2. 函数(壳函数)
    3. 内置(外壳内置)
    4. 文件(磁盘文件)
    5. 关键字(外壳保留字)

    (类型本身是内置的 shell,请尝试使用type type:P)

    执行type firefox给了我们

    firefox is /usr/bin/firefox
    
    Run Code Online (Sandbox Code Playgroud)

    这就是我们想知道的

如果命令是一个文件(您使用 进行了检查type),那么您还可以使用:

奖金

您可以/usr/bin/firefox仔细检查ls -l /usr/bin/firefox,这给出:

/usr/bin/firefox -> ../lib/firefox/firefox.sh*
Run Code Online (Sandbox Code Playgroud)

这似乎/usr/bin/firefox是“仅”指向脚本的符号链接/usr/lib/firefox/firefox.sh。如果您检查脚本,您会发现脚本调用/usr/lib/firefox/firefox.
你现在可以安息了:)


bin*_*inW 18

没有与Program Files 文件夹完全等效的单个目录。Linux 安排事情的方式与 Windows 有很大不同。

在 Windows 中,我们安装的每个程序在 Program Files 目录中都有自己的目录。在该目录中,为不同类型的文件创建了更多子目录。子目录没有固定的结构。程序自己决定他们想给每个目录调用什么,以及他们想把什么放在哪里。

但是在 Linux 中,当安装程序时,不同类型的文件被复制到不同的位置。可执行文件复制到/usr/bin,库文件复制到/usr/lib,文档复制到/usr/ man/usr/info/usr/doc 中的一个或多个。如果有配置文件,它们通常在用户的主目录或/etc 中


Lek*_*eyn 10

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.
Run Code Online (Sandbox Code Playgroud)

Ubuntu 的结构与 Windows 不同。Ubuntu 将几乎所有的应用程序放在一个目录中,比如/usr/bin. Windows 将创建一个新文件夹,例如Mozilla Firefox,并在其中添加配置、可执行文件、DLL、图像等。Ubuntu 将它们拆分,可执行文件进入/usr/bin,系统范围的配置进入/etc,共享对象进入/usr/lib,图像进入/usr/share,......


Abd*_*lah 5

Linux“程序文件”在整个层次结构中。这可能是对/usr/bin/bin/opt/...,或在其他目录。

我想你会找到一些与你的应用程序相关的文件。然后,我知道如何查看程序安装时安装的文件。

  1. synaptic通过sudo apt-get install synaptic在终端上发出来安装。
  2. 寻找你想要的包,在搜索文本输入上搜索。
  3. 右键单击包并选择Properties
  4. 移至Installed File选项卡。结果与 相同dpkg -L package_name
  5. 在那里您将找到为该软件包安装的所有文件。

这是因为 linux 根据它们的类型将安装的文件分别移动到目录。

  • 可执行文件转到/usr/bin/bin
  • 图标转到/usr/share/icons或打开~/.local/share/icons本地。
  • 上的整个应用程序(便携式)/opt
  • 快捷方式通常打开/usr/share/applications或打开~/.local/share/applications
  • 文档 /usr/share/doc
  • 库/模块开启 /usr/lib

以及许多其他目录。(CMIIW,接受更正)