/usr是unix系统资源缩写,非“user”目录,核心定位为只读、共享、非核心但广泛使用的软件资源集中地;它不参与启动,但承载绝大多数日常命令、库、文档等,与/bin、/sbin等根级必需目录形成层次分工。

/usr 是 Unix 系统资源(Unix System Resources)的缩写,不是 “user” 目录,也不存放普通用户数据。它的核心定位是:系统中**只读、共享、非核心但广泛使用的软件资源集中地**。
/usr 是第二层软件安装与运行中心
根目录 / 下的 /bin、/sbin、/lib 是系统启动和单用户模式必需的最小集合;而 /usr 则承载了绝大多数日常使用的命令、库、文档和配置支持——它不参与开机引导,但一旦系统就绪,几乎所有用户级和多数服务级程序都依赖它。
- /usr/bin 提供普通用户常用命令(如 git、python3、curl),/bin 中同名命令往往是精简版或兼容入口
- /usr/lib(或 /usr/lib64)存放 /usr/bin 和 /usr/sbin 中程序实际调用的动态库,与 /lib 中的核心系统库分工明确
- /usr/share 存放架构无关的公共资源(man 手册、locale 语言包、图标、时区数据),方便多架构共用
/usr/local 是本地扩展的“安全隔离区”
当你要手动编译安装新软件(比如新版 nginx 或自研工具),不应覆盖 /usr 下由包管理器(apt/dnf)维护的内容。/usr/local 就是为此设计的:它结构与 /usr 镜像(含 bin、lib、share 等子目录),但完全独立,避免冲突,也便于清理或迁移。
本文档主要讲述的是Android 操作系统的介绍;Android是基于Linux内核的操作系统,是Google公司在2007年11月5日公布的手机操作系统,早期由Google开发,后由开放手持设备联盟(Open Handset Alliance)开发。它采用了软件堆层(software stack,又名以软件叠层)的架构,主要分为三部分。底层Linux内核只提供基本功能;其他的应用软件则由各公司自行开发,部分程序以Java编写。希望本文档会给有需要的朋友带来帮助;感兴趣的朋友可以过来看看
- 安装源码时 configure 常用 --prefix=/usr/local
- PATH 通常包含 /usr/local/bin,所以新装命令能直接运行
- 系统升级或重装时,/usr/local 可保留不动,降低维护成本
/usr 的演进体现系统设计哲学
早期 Unix 因磁盘小,把非关键软件放到 /usr 分区以节省根分区空间;现代 Linux 虽常将 /usr 合并进根分区,但逻辑分层未变。FHS(文件系统层次标准)仍强制规定 /usr 必须只读——这意味着它适合做只读挂载、容器镜像分层、或通过 NFS 统一提供给多台机器。
- 运行时修改(如日志、缓存、用户数据)必须落在 /var、/home、/tmp 等可写目录
- 所有 /usr 下路径(如 /usr/bin/vim)在大多数发行版中已是真实目录,不再是符号链接,但语义约束依然有效
- 若发现 /usr 下出现临时文件或可写内容,通常是配置错误或软件缺陷
/usr 与其他关键目录的关系要理清
理解 /usr 的定位,需对比它和几个易混淆目录的边界:
- /bin 和 /usr/bin:前者是“生存必需”,后者是“功能必需”;现代系统常通过符号链接统一,但语义区分仍在
- /etc 和 /usr:/etc 存配置(可变),/usr 存程序本体(只读);同一软件的二进制在 /usr/bin,配置模板却在 /usr/share/doc 或 /etc/skel
- /opt 和 /usr/local:/opt 适合大型第三方闭源软件(如 JetBrains 工具箱),/usr/local 更适合开源源码安装,两者都避开 /usr 的包管理范围










