/usr并非User的缩写?Linux目录的真正身份

初次接触Linux的用户,很可能都会误以为“啊,/usr就是用户(User)文件夹啊!”但当他们尝试在此保存文件时,却往往会因权限不足而被拒绝。

开门见山地说,在现代Linux中,/usr并非“用户之家”,而是“系统的公共资源仓库”。

Linux文件系统与usr目录概念图

1. /usr:名称的误解与真实含义

在早期的Unix时代,/usr确实曾是用户主目录的所在地。然而,随着系统的发展和规模扩大,其功能被逐渐分离。如今,将/usr解释为 Unix System Resources 的缩写更为恰当。尽管它起源于user,但在功能上已不再代表用户。

  • 性质: 系统运行所需的只读数据和程序的集合。

  • 核心作用: 操作系统安装后,大部分新增的可执行文件、库文件和共享数据都存放于此。


2. /usr 内部一览 (核心摘要)

/usr内部的结构,仿佛整个小型Linux系统都包含其中。

目录 主要内容 备注
/usr/bin 普通用户可执行文件 python, curl, git
/usr/sbin 系统管理员可执行文件 如网络配置、守护进程管理等
/usr/lib 程序运行所需库文件 类似于Windows的.dll文件,如.so文件
/usr/share 架构无关的共享数据 如手册页(man)、图标、字体等
/usr/local 用户自行安装的程序 通过源码编译等方式安装时,此目录拥有较高优先级

💡 提示:/bin/usr/bin的区别?

过去,/bin仅存放启动系统所需的最小工具集。然而,近期许多发行版(如Ubuntu, Fedora等)为了简化管理,正逐渐将/bin通过符号链接(Symbolic Link)指向/usr/bin,实现二者合一。
/sbin/usr/sbin之间的关系亦是如此。


3. 四个易混淆目录的比较

我们将明确区分这四个最容易混淆的目录的功能。

  1. /home (个人空间): 存放用户个人文档、配置文件(如~/.bashrc等)。即使重装操作系统,只要保留此目录,您的数据便安然无恙。

  2. /usr (系统资源): 由包管理器(如apt, dnf等)管理的公共程序存储库。

  3. /opt (外部应用): 存放不遵循包管理系统、以“独立包”形式安装的第三方应用程序,如Google Chrome或Discord。

  4. /var (可变数据): 存储在系统运行过程中内容不断变化的数据,如日志文件、数据库文件等。


4. 实战指南:我的文件应该放在哪里?

根据不同情况,文件存放位置有所不同。只要遵循这些规则,您就能被称为“Linux通”。

  • 个人使用的简单脚本:

    ~/bin (在主目录下创建bin文件夹) 或 ~/.local/bin

  • 系统范围使用的自制程序:

    /usr/local/bin (一个安全的公共空间,避免与包管理器冲突)

  • 从外部下载的大型商业软件:

    /opt/应用程序名称

  • 绝不应触碰的目录:

    /usr/bin (此目录由系统包管理器管理,直接放入或删除文件可能导致包管理系统混乱。)


4点总结

  1. /usr 不是用户(User)数据文件夹。

  2. 它是系统公共使用的程序和资源的仓库。

  3. 个人文件放在/home,自行安装的公共应用放在/usr/local/opt。(笔者习惯将应用镜像统一存放在/opt。)

  4. 个人脚本可以在~/.local/bin目录下创建并管理,这样会感觉井井有条。

现在,您对/usr目录的疑问是否有所解答了呢?作为一名Linux爱好者,我希望通过这篇文章,能让更多人对Linux有更深入的了解,并沉浸于Linux操作系统的魅力之中。