详解Linux系统中的usr目录

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

根据常识判断,是 user 缩写的可能性不大,因为和 /home 冲突了嘛。不过是 system resources 还是 software resources 的缩写还真不好说。特此查了好多东西,却发现竟然连 wikipedia 也模棱两可。/usr 是linux系统核心所在,包含了所有的共享文件。

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

曾经的 /usr 还是用户的家目录,存放着各种用户文件 —— 现在已经被 /home 取代了(例如 /usr/someone 已经改为 /home/someone)。

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

/usr 文件系统经常很大,因为所有程序安装在这里. /usr 里的所有文件一般来自Linux distribution;本地安装的程序和其他东西在/usr/local 下.这样可能在升级新版系统或新distribution时无须重新安装全部程序.

由于/usr中的文件不和特定的计算机相关,也不会在通常使用中修改,因此可以通过网络共享这个目录(文件系统),这样,当管理员安装了新的软件之后,所有共享这一文件系统的计算机均可以使用新的软件。

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

真的是不看不知道,一看吓一跳呀。原来 linux 几经进化,好多目录的诞生和用途已经产生了根本的变化。

/usr 目录结构

/usr/bin : 所有可执行文件,如 gcc,firefox 等(指不包含在 /sbin 和 /bin 内的);

/usr/include : 各种头文件,编译文件等时需要使用;

/usr/include/’package-name’ : 程序特定的头文件;

/usr/lib : 所以可执行文件所需要的库文件;

/usr/local : 这里主要存放那些手动安装的软件,即 不是通过“新立得”或apt-get安装的软件 。 它和/usr目录具有相类似的目录结构 。让软件包管理器来管理/usr目录,而把自定义的脚本(scripts)放到/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 : 已经被众多发行版抛弃的临时文件夹。

猜你喜欢

  1. 详解Linux系统中md5sum命令的用法

    这篇文章主要介绍了详解Linux系统中md5sum命令的用法,用来处理MD5验证的相关操作,需要的朋友可以参考下 MD5算法常常被用来验证网络文件传输的完整性,防止文件被人篡改.MD5全称是报文摘要算 ...

  2. Linux系统中的usr目录有哪些

    Linux 系统文件结构中,有这么一个神奇的目录那就是usr.之前一直都没有去关注过它,反正程序已经安装在里面,我也不知道有什么用就放在哪里了,后来 fedora 要简化整个文件系统体系,这才看到才想 ...

  3. 详解Linux系统中的root权限控制

    在Linux操作系统中,root的权限是最高的,也被称为超级权限的拥有者.普通用户无法执行的操作,root用户都能完成,所以也被称之为超级管理用户. 在系统中,每个文件.目录和进程,都归属于某一个用户 ...

  4. 详解Linux系统下的/dev目录

    dev是设备(device)的英文缩写./dev这个目录对所有的用户都十分重要.因为 在这个目录中包含了所有Linux系统中使用的外部设备.但是这里并不是放的外部设备的驱动程序,这一点和windows ...

  5. 详解Linux系统中的守护进程

    守护进程daemon,是生存期较长的一种进程.它们常常在系统自举时启动,仅在系统关闭时才终止.因为它们没有控制终端,所以说它们是在后台运行的.UNIX系统有很多守护进程,它们执行日常事务活动. 1.系 ...

  6. 详解Linux系统中的进程初始化配置文件inittab

    /etc/inittab文件描述了哪些进程开始启动并正常运行.inittab为linux初始化文件系统时init初始化程序用到的配置文件.这个文件负责设置init初始化程序初始化脚本在哪里;每个运行级 ...

  7. 详解Linux系统中安装配置Samba服务器的步骤

    一.获取源代码包并进行解压 从samba的官方网站可以下载最新的samba源代码包.下面我们以samba-3.5.9.tar.gz的源代码包作为案例进行解析.本例中,我们将源代码包放在目录/home/ ...