`
mlc0202
  • 浏览: 106208 次
  • 来自: 北京
社区版块
存档分类
最新评论

/usr 的由来及/usr目录结构

阅读更多
linux 文件结构中,有一个很神奇的目录 —— /usr。之前一直没有怎么关注过它,反正程序都是安装在里边的,也没有什么值得追根溯源的东西。直到有一天 fedora 要简化整个文件系统体系,看到讨论才想到,usr 到底是什么的缩写呢,它又是怎么来的呢?
本文转自Delectat.com

讨论中,大部分观点认为:
•usr 是 unix system resources 的缩写;
•usr 是 user 的缩写;
•usr 是 unix software resources 的缩写。

根据常识判断,是 user 缩写的可能性不大,因为和 /home 冲突了嘛。不过是 system resources 还是 software resources 的缩写还真不好说。特此查了好多东西,却发现竟然连 wikipedia 也模棱两可。

后来终于找到了 相关的文档和介绍。(via,cache)


/usr usually contains by far the largest share of data on a system. Hence, this is one of the most important directories in the system as it contains all the user binaries, their documentation, libraries, header files, etc…. X and its supporting libraries can be found here. User programs like telnet, ftp, etc…. are also placed here. In the original Unix implementations, /usr was where the home directories of the users were placed (that is to say, /usr/someone was then the directory now known as /home/someone). In current Unices, /usr is where user-land programs and data (as opposed to ’system land’ programs and data) are. The name hasn’t changed, but it’s meaning has narrowed and lengthened from “everything user related” to “user usable programs and data”. As such, some people may now refer to this directory as meaning ‘User System Resources’ and not ‘user’ as was originally intended.(via 1,2)

/usr 是系统核心所在,包含了所有的共享文件。它是 unix 系统中最重要的目录之一,涵盖了二进制文件,各种文档,各种头文件,x,还有各种库文件;还有诸多程序,例如 ftp,telnet 等等。

曾经的 /usr 还是用户的家目录,存放着各种用户文件 —— 现在已经被 /home 取代了(例如 /usr/someone 已经改为 /home/someone)。现代的 /usr 只专门存放各种程序和数据,用户目录已经转移。虽然  /usr 名称未改,不过其含义已经从“用户目录”变成了“unix 系统资源”目录。值得注意的是,在一些 unix 系统上,仍然把 /usr/someone 当做用户家目录,如 Minix。

至此,真相大白。看来就像前一阵子的 /var/run 移到 /run 一样。

真的是不看不知道,一看吓一跳呀。原来 linux 几经进化,好多目录的诞生和用途已经产生了根本的变化。历史车轮在前进,长江后浪推前浪,正所谓:学习历史,收获真知;尽心竭力,前进不止。

附录:/usr 目录结构
•/usr/bin : 所有可执行文件,如 gcc,firefox 等(指不包含在 /sbin 和 /bin 内的);
•/usr/include : 各种头文件,编译文件等时需要使用; ◦/usr/include/’package-name’ : 程序特定的头文件;

•/usr/lib : 所以可执行文件所需要的库文件;
•/usr/local : /usr 通常只包含系统发行时自带的程序,而 /usr/local 则是本地系统管理员用来自由添加程序的目录;
•/usr/X11R6 : x 系统的二进制文件,库文件,文档,字体等。它不等同于 /usr 的作用,只有 x 才能调用这些库文件等,其他程序不读取或者使用。因为 linux 没有原生图形界面,而且 linux 大部分情况下是 for server 的,所以图形界面没有意义;其中 X11R6 代表 version 11 release 6; ◦/usr/X11R6/bin : x 的二进制文件,包含运行 x 的必须文件;
◦/usr/X11R6/include : x 相关的头文件;
◦/usr/X11R6/lib : x 库文件;
◦/usr/X11R6/lib/modules : x 的模块,启动时加载。缺少 video4linux, DRI and GLX 和 输入输出设备 模块,将工作不正常;
◦/usr/X11R6/lib/X11/fonts : x font server 的字体文件;

•/usr/doc : 文档。实际是 /usr/share/doc 的软链接;
•/usr/etc : 一个极少用到的配置文件存放地;
•/usr/games : 曾经包含游戏等文件,现在很少用到;
•/usr/info : 系统相关信息,是 /usr/share/info 的软链接;
•/usr/man : man 手册,已经移至 /usr/share/man;
•/usr/sbin : 类似 /sbin,root 可以执行。但此目录不包含在环境变量 $PATH 中,它包含的程序类似于 chroot, useradd, in.tftpd and pppconfig;
•/usr/share : 它包含了各种程序间的共享文件,如字体,图标,文档等。(/usr/local 对应的目录是  /usr/loca/share); ◦/usr/share/doc : 类似应用程序的 man 手册。它包含程序的说明文件,默认配置文件等;
◦/usr/share/info : 不常用,已经被 man 代替;
◦/usr/share/man : app 的 manual;
◦/usr/share/icons : 应用程序的图标等文件,分为 png,svg 等多种格式;
◦/usr/share/fonts : 字体文件,系统范围内可使用,~/.fonts 仅当前用户可用;

•/usr/src : linux 内核的源码和说明文档等; ◦/usr/src/linux : linux 源代码;
◦/usr/src/linux/.config : 内核编译过程产生的文件;通常由命令 ‘make config’ , ‘make menuconfig’ 或 ‘make xconfig’ 执行后产生;
◦/usr/src/linux/.depend, /usr/src/linux/.hdepend : ‘make dep’ 检测编译依赖时需要的文件,由 /usr/src/linux/.config 产生;
◦/usr/src/linux/COPYING : GNU license;
◦/usr/src/linux/Makefile : 编译内核所需的 Makefile;
◦/usr/src/linux/Rules.make : 当有多个 Makefile 时,根据它的规则执行 make;

•/usr/tmp : 已经被众多发行版抛弃的临时文件夹。
分享到:
评论

相关推荐

    #!/usr/bin/expect

    1. **基本结构**: Expect 脚本通常包含以下部分: - `spawn` 命令:启动一个进程,例如SSH连接。 - `expect` 命令:等待并匹配特定的输出,一旦匹配到,就继续执行下一步。 - `send` 命令:向进程发送输入,如...

    redis安装遇到的问题——linux centos7.5

    Redis 是一个开源的、基于内存的数据结构存储系统,常用于数据库、缓存、消息队列等场景。但是,在 Linux Centos7.5 环境中安装 Redis 时可能会遇到一些问题,这篇文章将针对这些问题进行解决。 一、无法编译没有 ...

    Linux 下各个目录的作用

    - **/usr/share**:存储与计算机结构无关的数据,如字典中的词汇。 - **/usr/bin** 和 **/usr/sbin**:与根目录下的/bin和/sbin类似,但不用于基本启动。 - **/usr/local**:用于本地管理员安装的应用程序,每个...

    linux 程序安装目录/opt目录和/usr/local目录的区别

    它与/usr目录保持相似的子目录结构,这样有利于用户自定义软件的组织和管理。将自定义脚本或软件放在/usr/local下,可以避免与系统包管理器管理的软件发生冲突。 总结来说,虽然理论上软件可以安装在任何目录下,但...

    Linux目录usr与opt.docx

    Linux 操作系统的目录结构是非常重要的,它直接影响着系统的性能和可维护性。在 Linux 中,/usr 和/opt 是两个非常重要的目录,它们分别扮演着不同的角色。 一、/usr 目录 /usr 目录是 Linux 中的系统级目录,可以...

    linux目录结构及主要内容.doc

    Linux 目录结构及主要内容 Linux 操作系统的目录结构是一种树形结构,根目录是 "/",它包含了所有的子目录和文件。本文将详细介绍 Linux 目录结构及主要内容。 1. "/" 根目录部分 "/" 根目录是 Linux 文件系统的...

    linux 下 pip3 报错“ File “/usr/bin/pip3”, line 9, in from pip import mainImportError: canno”处理

    这可能是因为`pip`的内部结构发生了变化,`main`函数可能已经被重命名为`__main__`。因此,你可以按照以下步骤进行修复: 1. 打开终端并使用文本编辑器(如`nano`或`vim`)编辑`/usr/bin/pip3`: ```bash sudo ...

    Linux 目录结构及主要内容

    以下是Linux目录结构及主要内容的详细说明: 1. **/** - 根目录:所有其他目录的起点。它是系统层次结构的顶层。 2. **/usr** - 用户资源:包含了大部分的用户级程序、库和文档。例如,/usr/bin存储了可供所有用户...

    xorg.conf配置详解(图形显示).doc

    在本文中,我们将详细介绍 xorg.conf 文件的配置详解,包括其目录结构、section 类型、选项名称和选项值等。 目录结构 -------- 在 Linux 系统中,Xorg.conf 文件所在的目录结构是非常重要的。下面是 X11R7 中的...

    Linux目录结构介绍+基本命令

    Linux 目录结构和基本命令 Linux 作为一个流行的开源操作系统,其目录结构和基本命令是每个 Linux 用户和开发者需要掌握的基本知识。本文将为您详细介绍 Linux 的目录结构和基本命令。 Linux 目录结构 Linux 的...

    Linux操作系统的目录结构一览

    其中包括/usr/X11R6 X Window 目录、/usr/bin 与/usr/sbin 一些后安装的命令与工具、/usr/include、/usr/lib 及/usr/share 则是存放一些共享链接库等。 /usr/local 目录:该目录常用来安装新软件。 /usr/src 目录...

    Linux目录结构及说明.docx

    Linux 目录结构及说明 Linux 目录结构是 Linux 操作系统的文件系统组织方式。它是一个树形结构,根目录是"/",所有的文件和目录都从这里开始。下面是 Linux 目录结构的详细说明: 1. 根目录 (/) 根目录是 Linux ...

    linux目录结构.doc

    11. **/usr**:这是一个非常重要的目录,包含次要的文件和命令层次结构。它下边的子目录如/bin, /include, /lib, /sbin等分别对应基本目录的扩展。 12. **/usr/bin**:存放大部分的用户可执行程序。 13. **/usr/...

    Mac安装Ant 到usr目录下不报错

    2. 创建一个新的目录/usr/local,这个目录是系统默认的第三方软件安装位置,这样做可以避免覆盖系统文件,并且保证配置的持久性。由于/usr是隐藏目录,你可以通过终端来创建这个文件夹。 3. 将下载的Ant压缩包移动...

    Linux根目录下各目录功能说明.doc

    在 Linux 系统中,目录的管理和使用非常重要,默认情况下,Linux 系统的目录结构是非常清晰的,每个目录都有其特定的功能和作用。了解这些目录可以帮助用户更好地管理和使用 Linux 系统。 Linux 根目录下各目录的...

    Linux的目录结构

    - `/usr`:包含大部分默认的二进制文件,以及类似根目录的子目录结构,如`/usr/bin`、`/usr/lib`等。 - `/usr/local`:用于安装非系统级别的软件,避免与系统软件冲突。 - `/var`:存储变化的数据,如日志文件、...

    kernel-devel-3.10.0-514.el7.x86_64安装后文件

    1. **头文件**:位于`/usr/src/kernels/3.10.0-514.el7.x86_64/include/`目录下,这些头文件定义了内核的API和数据结构,让开发者能够理解并使用内核的功能。 2. **符号链接**:在`/lib/modules/3.10.0-514.el7.x86...

    新手学堂:Linux系统的文件结构详细讲解

    在Linux中,文件系统采用了一种独特的树形结构,所有文件都从根目录`/`开始,向下分支出各个子目录,每个目录都有特定的用途。 首先,根目录`/`是最顶层,它包含了所有其他目录。`/bin`目录存储了基本的系统命令,...

    linux安装mongodb教程

    在安装 MongoDB 之后,需要在 /usr/local/ 下创建以下目录结构: * /usr/local/mongodb/ * /usr/local/mongodb/data/ * /usr/local/mongodb/data/db 知识点 3:解压 MongoDB 安装包 将解压后的 MongoDB 安装包...

Global site tag (gtag.js) - Google Analytics