内容提要
Linux的/bin与/usr/bin目录源于1971年Unix系统因1.5MB硬盘容量不足而分盘的历史。当时根目录存必需命令,第二块盘存用户程序,形成/bin和/usr/bin之分,并衍生出/sbin等管理员目录。如今硬盘容量大增,现代Linux发行版将/bin和/sbin设为指向/usr/bin和/usr/sbin的软链接,终结了这段历史,成为数字化“化石”。
延伸解读
历史遗留的目录结构
Linux的/bin与/usr/bin之分源于1971年Unix系统在PDP-11上开发时,因RK05磁盘容量仅1.5MB,不得不将系统文件分盘存放。根目录存放启动必需命令,第二块盘(/usr)存放用户程序,从而形成两个bin目录。这一历史原因解释了为何现代Linux仍保留这种看似冗余的结构。
现代系统的软链接合并
如今硬盘容量已大幅提升,现代Linux发行版(如Ubuntu、Fedora、Arch)将/bin和/sbin分别软链接到/usr/bin和/usr/sbin,逻辑上合并了目录。用户可通过`ls -l /bin`查看链接指向,这标志着历史遗留的物理分盘已终结,但目录结构作为“化石”被保留。
安全与权限的划分
除/bin与/usr/bin外,/sbin和/usr/sbin存放管理员专用命令(如fdisk、mkfs),普通用户路径默认不包含这些目录,从物理上隔离了危险操作。这种划分源于早期分盘时的设计,至今仍影响系统安全策略,体现了目录结构对权限管理的实际作用。
Q&A
Linux中/bin和/usr/bin目录为什么是分开的?
这源于1971年Unix系统在PDP-11上开发时,使用的RK05磁盘容量仅1.5MB,根目录下的/bin装不下所有命令,于是增加第二块盘并挂载为/usr,在其中建立/usr/bin存放额外程序,从而形成两个bin目录。
/bin和/usr/bin在功能上有什么区别?
/bin存放系统启动和修复时必需的命令,如ls、mount、fsck;/usr/bin存放系统正常运行后使用的命令,如编辑器、游戏等。
/sbin和/usr/sbin中的s代表什么?
s代表System或Superuser,这些目录存放管理员专用的系统管理命令,如fdisk、mkfs,普通用户默认路径不包含它们,以防误操作。
为什么现代Linux发行版将/bin和/sbin设为软链接?
因为硬盘容量已大幅提升,不再需要为节省空间而分离目录,现代发行版(如Ubuntu、Fedora、Arch)将/bin指向/usr/bin,/sbin指向/usr/sbin,以简化目录结构。
如何验证自己的Linux系统上/bin是否为软链接?
在终端执行ls -l /bin,如果显示/bin -> /usr/bin,则说明是软链接;同样可检查/sbin。
为什么当初不把/bin和/usr/bin合并?
因为担心第二块盘(/usr)无法启动时,系统仍能依靠根目录下的/bin中的必需命令进行修复,所以保持分离以确保系统可靠性。