一直好奇包罗众多程序的usr目录为什么叫usr呢?usr到底是什么的缩写,终于找到比较靠谱的答案了

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

作者 AN SHEN| 发布于 2011-11-05

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

本文转自Delectat.com
讨论中,大部分观点认为:

  • usr 是 unix system resources 的缩写;
  • usr 是 user 的缩写;
  • usr 是 unix software resources 的缩写。

根据常识判断,是 user 缩写的可能性不大,因为和 /home 冲突了嘛。不过是 system resources 还是 software resources 的缩写还真不好说。特此查了好多东西,却发现竟然连 wikipedia 也模棱两可
后来终于找到了 相关的文档和介绍。(viacache

/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 的由来及/usr目录结构 [转]的更多相关文章

  1. /usr 的由来及/usr目录结

    /usr 的由来及/usr目录结构   本文转自Delectat.com讨论中,大部分观点认为: usr 是 unix system resources 的缩写: usr 是 user 的缩写: us ...

  2. linux目录结构 主流Linux发行版的目录结构

    目录 目录结构 一般教学的目录 CentOS7 openSUSE15.1 Ubuntu18.04 详细说明: /dev目录 /etc目录 /proc目录 /usr目录 /var目录 比较重要的目录 文 ...

  3. perl 打印目录结构

    更多 #!/usr/bin/perl # 递归打印目录结构 use v5.26; use strict; use utf8; use autodie; use warnings; use Encode ...

  4. Linux目录/usr缩写及目录结构说明

    在 linux 文件结构中,有一个很神奇的目录 —— /usr.   讨论中,大部分观点认为:   usr 是 unix system resources 的缩写: usr 是 user 的缩写: u ...

  5. (转)关于Tomcat的点点滴滴(体系架构、处理http请求的过程、安装和配置、目录结构、设置压缩和对中文文件名的支持、以及Catalina这个名字的由来……等)

    转自:http://itfish.net/article/41668.html   总结Tomcat的体系架构.处理http请求的过程.安装和配置.目录结构.设置压缩和对中文文件名的支持.以及Cata ...

  6. linux -目录结构

    摘自:http://www.comptechdoc.org/os/linux/usersguide/linux_ugfilestruct.html 这个目录结构介绍是我目前看到介绍最全的,有时间在翻译 ...

  7. Go 项目的目录结构 及 安装技巧

    项目目录结构如何组织,一般语言都是没有规定.但 Go 语言这方面做了规定,这样可以保持一致性 1.一般的,一个 Go 项目在 GOPATH 下,会有如下三个目录: |--bin |--pkg |--s ...

  8. 每天一个linux命令(23):Linux 目录结构

    对于每一个Linux学习者来说,了解Linux文件系统的目录结构,是学好Linux的至关重要的一步.,深入了解linux文件目录结构的标准和每个目录的详细功能,对于我们用好linux系统只管重要,下面 ...

  9. linux下的目录结构和内容

    用了这么长时间linux系统,有时候哪个文件应该在哪还是不知道的,所以对于根下的目录结构记下: /bin bin是Binary的缩写.这个目录存放着最经常使用的命令. /boot这里存放的是启动Lin ...

随机推荐

  1. iOS 中基础字符判断函数收集(如判断大小写、数字等)

    函数:isdigit 用法:#include 功能:判断字符c是否为数字 说明:当c为数字0-9时,返回非零值,否则返回零. 函数:islower 用法:#include 功能:判断字符c是否为小写英 ...

  2. 手机站CSS

    手机web——自适应网页设计(html/css控制) 内核: -ms- /* IE 9 */ -moz- /* Firefox */ -webkit- /* Safari and Chrome */ ...

  3. 【Ubuntu】Ubuntu bug “Reached target Shutdown”

    在使用 Ubuntu-16.04.3-server-amd64.iso 版本(参考官方,iso下载地址)的时候,遇到一个Ubuntu的Bug,后来查了一下,在官方看到,目前还是Unassigned: ...

  4. Qt,Qt/E,Qtopia Core, Qtopia之间的区别和联系

    转自:http://www.qtcn.org/bbs/read.php?tid=10373 关于Qt,Qt/E,Qtopia Core, Qtopia这些版本之间的区别和联系: Qt泛指Qt的所有桌面 ...

  5. strus2 struts.xml详解

    <struts> <!-- 配置一个包:package --> <package name="demo1" extends="struts- ...

  6. kibana 显示 @timestamp 时间问题(utc or browser当前时间)自动转换显示

    https://github.com/elasticsearch/kibana/issues/95

  7. Keepalived系列一:Keepalived.conf 详解

    接上一篇博客: http://www.cnblogs.com/xiaoit/p/4499703.html 1:按照上篇博客安装后的配置文件在 /usr/local/etc/keepalived/kee ...

  8. Keepalived系列一:安装Keepalived

    1:简介 它是一个基于VRRP协议来实现的WEB服务高可用方案,可以利用其来避免单点故障.一个WEB服务至少会有2台服务器运行Keepalived,一台为主服务器(MASTER),一台为备份服务器(B ...

  9. JNI 数据类型转换

    一. 把java中的string 转化成 c中的char数组 /** *Jstring2CStr 把java中的string 转化成 c中的char数组. *jstring jstr 要被转化的jav ...

  10. JS 拦截/捕捉 全局错误 全局Error onerror

    移动Web开发过程中,在真机测试时,往往会遇到一些PC调试无法重现的问题,这时候我们需要在手机上拦截错误,并有相应的输出. 公司和网上都有类似的工具/类库,但如果纯粹一个简单的调试,或许不需要引入工具 ...