Linux 系统中,/usr/bin/ 和/bin/的区别?

在 Linux 系统中,/bin//usr/bin/ 都是存放可执行程序(命令)的目录,但它们在历史定位、用途、挂载策略和系统设计上有一定区别。


✅ 快速对比总结

项目/bin//usr/bin/
全称含义binary(核心二进制)user binary(用户空间二进制)
历史用途存放最基础、最关键的命令(引导相关)存放普通用户程序
依赖情况必须依赖极少,系统单独运行时也要能执行依赖 /usr 挂载,非必需启动前就能用
常见命令ls, cp, mv, cat, bashvim, gcc, git, python
挂载依赖位于根文件系统 /位于 /usr,可能是独立挂载分区
引导阶段是否可用✅ 是❌ 否,/usr 可能尚未挂载


🔍 举例说明

  • /bin/ls, /bin/cp:这些是最基础的命令,系统单用户模式下也能用

  • /usr/bin/vim, /usr/bin/gcc:这些是开发工具、编辑器,不是系统启动必须的


📜 为什么这么设计?

  • 最早设计 Unix 时 /bin/usr/bin 分开,是为了让 /bin 和必要的库文件始终可用,即使系统只挂载了根分区 /

  • /usr 分区可以在网络挂载(比如 NFS),因此开机阶段不能依赖 /usr/bin 的命令。


📌 现代 Linux 的现状(统一趋势)

现代 Linux 发行版(如 Ubuntu、Debian、Fedora)中,/bin 通常已经是 /usr/bin符号链接

ls -l /bin lrwxrwxrwx 1 root root 7 Apr 1 00:00 /bin -> usr/bin

🔁 这是 “usr merge” 项目的结果,目的是:

  • 简化文件系统结构

  • 减少路径混乱

  • 更容易管理和维护


✅ 总结一句话

/bin/ 存放系统启动必需的基础命令,/usr/bin/ 存放普通用户和应用程序的命令。现代系统中,它们可能已经合并为同一个目录,通过符号链接统一到 /usr/bin/

 在两者存在链接的情况下,数据实际存放在/bin还是/usr/bin?

在两者存在**符号链接(symlink)**的情况下,比如:

/bin -> /usr/bin

这表示:

/bin 是一个符号链接,实际的数据(程序可执行文件)是存放在 /usr/bin 目录中的。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值