/bin存放所有用户可用的基础命令(如ls、cp),位于根分区,单用户模式下可用;/sbin存放仅root可执行的系统管理命令(如reboot、fdisk),同样位于根分区,用于启动、修复和运维。

直接看用途和权限边界最清楚:/bin 是所有用户都能用的基础命令,/sbin 是管理员专用的底层系统管理命令。
/bin 里放什么
存放系统启动后立刻可用、普通用户日常必需的命令,比如 ls、cp、cat、chmod、ps。这些命令不依赖其他分区(如 /usr),在单用户模式或紧急修复时也能运行。
- 路径必须在根文件系统内,不能跨分区挂载
- 所有用户默认可执行,无需 root 权限
- 属于“最小可行系统”必须存在的命令集
/sbin 里放什么
存放只有 root 才能运行、用于系统维护与底层控制的命令,比如 reboot、shutdown、fdisk、ifconfig、e2fsck、init。它们通常涉及硬件操作、服务启停或文件系统修复。
- 同样位于根分区,保证系统未挂载 /usr 时仍可用
- 普通用户执行会提示 “Permission denied” 或 “command not found”(取决于 PATH 是否包含 /sbin)
- 不是给日常使用设计的,而是为系统恢复、部署和运维准备的
实际中怎么快速验证区别
终端里输入命令时注意两点:是否报错、谁有权限执行。
- 运行 ls /bin | head -5 和 ls /sbin | head -5,对比命令名就能看出功能倾向
- 用普通用户尝试 sudo reboot(需要密码)和 reboot(直接拒绝),说明 /sbin 下命令受权限控制
- 查某个命令在哪:which ifconfig 通常返回 /sbin/ifconfig;which ls 返回 /bin/ls
现代发行版的一个重要变化
从 systemd 255 开始,主流发行版(Ubuntu、Fedora、Debian、CentOS Stream 等)已启用 usr-merge:/bin 实际是 /usr/bin 的软链接,/sbin 也是 /usr/sbin 的符号链接。
- 执行 ls -l /bin 和 ls -l /sbin 可看到类似
/bin -> usr/bin/的输出 - 这种合并不改变语义——/usr/bin 仍对应用户级应用命令,/usr/sbin 对应管理员级服务命令
- 区分逻辑依然有效,只是物理路径统一到了 /usr 下











