我最近不再使用 Windows,现在我的计算机上运行 Linux。在 Windows 中,有程序文件文件夹。大多数程序文件都放入其自己的文件夹中,对我来说,这似乎更易于管理和浏览。
linux中程序文件存放在不同的地方,这样做的原因是什么?这样对于开发者来说是不是更容易开发呢?
答案1
是的。
这样做时,它是有序的,就像
- 所有程序的配置文件都放在一个路径下
/etc
- 所有程序的二进制文件都在一个路径下
/bin
,/usr/bin
...
还有其他类似的事情,比如/home
,/dev
/boot
等等/tmp
。
答案2
祝贺您在 Linux 领域的努力!在Ubuntu中主要是这样的:
程序或脚本/usr/bin
库,用于/usr/lib
您已编译和安装的程序/usr/local/bin
,以及 每个用户配置的/usr/local/lib
系统程序的配置/etc
$HOME/.config
$HOME
是包含您的主文件夹的环境变量,例如。"/home/larry"
您会发现许多其他程序将用户配置文件直接放入 中$HOME
,这不是最佳实践。
一些较大的程序喜欢安装在其中,/opt
因为它可以保持整洁。
如果安装程序为我提供了该选项,并且我不需要该程序可供其他用户使用,我将安装到$HOME/bin
或$HOME/opt
哦,还有最后一点:Windows 在多个位置安装文件,包括c:\Windows\Program Files
、c:\Windows\Program Files\Common Files
、c:\Windows\System32
和c:\Windows\ProgramData
,以及用户主目录中的配置文件。但更糟糕的是,大量的配置信息分散在注册表中,使得程序的可移植性几乎不可能。
答案3
这文件系统层次结构标准可能值得一看。否则,过去的磁盘空间是宝贵的(而且昂贵!),因此人们可能有一个最小的/
目录,其中包含启动和使用系统所需的程序和配置,然后/usr
从共享 NFS 服务器挂载大多数其他目录。此外,各种重复的目录允许将“供应商提供的内容”(例如/usr
)和(至少在 BSD 上通常如此)/usr/local
软件包的安装位置进行干净(呃)分离。这样,供应商更新就永远不会破坏站点已安装的任何内容,因为使用了完全不同的目录。例如,供应商可能提供 Webserver 2.0,但某些应用程序需要 Webserver 1.1;如果您将 Webserver 1.1 安装到供应商空间中,则供应商更新可能会破坏该软件,或者会涉及其他复杂情况而无法让供应商更换该软件......