探索Linux中的usr目录:资源的海洋与程序的家园

发布时间:2023-11-16 16:05:58编辑:平娇来源:

Linux系统中的usr目录揭秘

在Linux系统文件结构中,有一个神奇的目录,那就是usr。这个目录一直被我忽视,因为程序已经安装在里面,我也不知道有什么用就放在那里了。直到最近,fedora开始简化整个文件系统体系,我才开始关注到它的存在。usr到底是什么的缩写呢?它又是怎么来的呢?今天我就来给大家揭秘一下Linux系统中的usr目录。

usr的起源和含义

usr是Unix System Resources的缩写,也可以是User缩写,或者是Unix Software Resources的缩写。根据常识判断,是User缩写的可能性不大,因为和/home冲突了嘛。不过,是System Resources还是Software Resources的缩写还真不好说。我特此查了好多东西,却发现竟然连Wikipedia也模棱两可。不过,/usr是Linux系统核心所在,包含了所有的共享文件。它是Unix系统中最重要的目录之一,涵盖了二进制文件、各种文档、各种头文件、x和各种库文件;还有诸多程序,例如ftp、telnet等等。

usr的作用和结构

曾经的/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;

    探索Linux中的usr目录:资源的海洋与程序的家园

    /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/inf