Laz*_*zer 589 filesystems binary
为什么在 Linux 中有这么多地方可以放置二进制文件?至少有这五种:
/bin//sbin//usr/bin//usr/local/bin//usr/local/sbin/在我的办公信箱上,我没有其中一些的写权限。
什么类型的二进制文件进入这些bins 中的哪一个?
gee*_*aur 752
/bin(和/sbin) 适用于需要在安装/较大分区之前位于小分区上的程序/usr等。如今,它主要用作关键程序的标准位置,例如/bin/sh,尽管最初的意图可能仍然与例如在小型嵌入式设备上的安装有关。
/sbin与 不同/bin,用于/usr安装之前需要的系统管理程序(普通用户通常不使用)。
/usr/bin 用于分发管理的普通用户程序。
有一个/usr/sbin与/usr/binas have to/sbin具有相同的关系/bin。
/usr/local/bin用于不受分发包管理器管理的普通用户程序,例如本地编译的包。你不应该安装它们,/usr/bin因为未来的发行版升级可能会在没有警告的情况下修改或删除它们。
/usr/local/sbin,正如您此时可能猜到的/usr/local/bin那样,是 to as /usr/sbinto /usr/bin。
此外,还有/opt用于单片非分发包的,尽管在它们被正确集成之前,各种分发版都将 Gnome 和 KDE 放在那里。通常,您应该为大型的、性能不佳的第三方软件包(例如 Oracle)保留它。
dav*_*nio 103
我建议查看文件系统层次结构手册页:
man hier
Run Code Online (Sandbox Code Playgroud)
这也可以在线获得,例如:http : //linux.die.net/man/7/hier。下面复制了相关部分。根据您的系统,它可能会说不同的内容。
姓名
hier - 文件系统层次结构的描述
描述
一个典型的 Linux 系统具有以下目录:
/bin此目录包含在单用户模式下需要的可执行程序,并用于启动或修复系统。
/sbin像
/bin,这个目录保存了启动系统所需的命令,但通常不会被普通用户执行。
/usr/bin这是可执行程序的主目录。大多数由普通用户执行的、不需要启动或修复系统的程序以及未安装在本地的程序都应放在此目录中。
/usr/local/bin站点本地程序的二进制文件。
/usr/local/sbin用于系统管理的本地安装程序。
/usr/sbin此目录包含用于系统管理的程序二进制文件,这些文件对于引导过程、挂载
/usr或系统修复不是必需的。
Hum*_*art 43
维基百科中的Filesystem Hierarchy Standard条目帮助我回答了同样的问题,而且它有一个非常解释性的表格。
摘自该页1:
Run Code Online (Sandbox Code Playgroud)/bin Essential command binaries that need to be available in single user mode; for all users, e.g., cat, ls, cp. /usr/bin Non-essential command binaries (not needed in single user mode); for all users. /usr/local Tertiary hierarchy for local data, specific to this host. Typically has further subdirectories, e.g., bin, lib, share /usr/sbin Non-essential system binaries, e.g., daemons for various network-services. /sbin Essential system binaries, e.g., fsck, init, route.
1 2019年6月19日检索;固定链接。
Bil*_*hor 23
这些sbin目录包含通常仅用于系统管理的程序。普通用户的程序永远不应该放在里面。
启动过程中需要一些程序,最终在/bin/或 中/sbin/。这些必须在安装文件系统之前可用。诸如mount, 以及fsck检查和挂载文件系统所需的东西必须存在。
大多数打包程序都以/usr/bin/和结尾/usr/sbin/。它们可能位于除根文件系统之外的文件系统上。在某些情况下,它们可能位于网络安装驱动器上。
本地程序和脚本属于/usr/local/bin/和/usr/local/sbin/。这将它们标识为明显的非标准,并且可能仅在现场可用。
如需进一步说明,请尝试运行该命令man hier,该命令应提供对您的发行版推荐的文件系统层次结构的描述。您可能还想阅读Wikipedia 上的File System Hierarchy
sch*_*ily 14
在 1970 年代,UNIX 拥有所有官方可执行文件,/bin并且/usr/bin是用户主目录(例如/usr/dmr)下的一个位置,任何用户都可以使用该位置存储其他人可能也感兴趣的自己的二进制文件。
这次公开的/usr/bin结果是一堆未记录的软件,因此 Stephen Bourne 编写了一个 cron 脚本,每天晚上检查新的二进制文件,并删除所有没有文档或已更新但未更新其文档的二进制文件。
在 1970 年代后期,/usr/bin被集成到 OS 基础发行版中,人们开始使用/usr/local/bin以前的开放/usr/bin.
一段时间后,系统管理员习惯于/usr/local/bin存储从网络(例如 USENET)导入的非本地软件,并且由于 UNIX 公司不喜欢再次重复同样的错误/usr/bin,因此在 1987 年左右召开了文件系统层次会议,其中所有UNIX 公司同意放弃/usr/local/bin并使用/opt/<vendor>/bin。
不幸的是,Linux 发行版并没有遵循这个决定......