linux 文件結(jié)構(gòu)中,有一個很神奇的目錄 —— /usr。之前一直沒有怎么關(guān)注過它,反正程序都是安裝在里邊的,也沒有什么值得追根溯源的東西。直到有一天 fedora 要簡化整個文件系統(tǒng)體系,看到討論才想到,usr 到底是什么的縮寫呢,它又是怎么來的呢?討論中,大部分觀點(diǎn)認(rèn)為:
1.usr 是 unix system resources 的縮寫;
2.usr 是 user 的縮寫;
3.usr 是 unix software resources 的縮寫。
根據(jù)常識判斷,是 user 縮寫的可能性不大,因為和 /home 沖突了嘛。不過是 system resources 還是 software resources 的縮寫還真不好說。特此查了好多東西,卻發(fā)現(xiàn)竟然連 wikipedia 也模棱兩可。/usr 是linux系統(tǒng)核心所在,包含了所有的共享文件。
它是 unix 系統(tǒng)中最重要的目錄之一,涵蓋了二進(jìn)制文件,各種文檔,各種頭文件,x,還有各種庫文件;還有諸多程序,例如 ftp,telnet 等等。
曾經(jīng)的 /usr 還是用戶的家目錄,存放著各種用戶文件 —— 現(xiàn)在已經(jīng)被 /home 取代了(例如 /usr/someone 已經(jīng)改為 /home/someone)。
現(xiàn)代的 /usr 只專門存放各種程序和數(shù)據(jù),用戶目錄已經(jīng)轉(zhuǎn)移。雖然 /usr 名稱未改,不過其含義已經(jīng)從“用戶目錄”變成了“unix 系統(tǒng)資源”目錄。值得注意的是,在一些 unix 系統(tǒng)上,仍然把 /usr/someone 當(dāng)做用戶家目錄,如 Minix。
/usr 文件系統(tǒng)經(jīng)常很大,因為所有程序安裝在這里. /usr 里的所有文件一般來自Linux distribution;本地安裝的程序和其他東西在/usr/local 下.這樣可能在升級新版系統(tǒng)或新distribution時無須重新安裝全部程序.
由于/usr中的文件不和特定的計算機(jī)相關(guān),也不會在通常使用中修改,因此可以通過網(wǎng)絡(luò)共享這個目錄(文件系統(tǒng)),這樣,當(dāng)管理員安裝了新的軟件之后,所有共享這一文件系統(tǒng)的計算機(jī)均可以使用新的軟件。
至此,真相大白??磥砭拖袂耙魂囎拥?/var/run 移到 /run 一樣。
真的是不看不知道,一看嚇一跳呀。原來 linux 幾經(jīng)進(jìn)化,好多目錄的誕生和用途已經(jīng)產(chǎn)生了根本的變化。
/usr 目錄結(jié)構(gòu)
/usr/bin : 所有可執(zhí)行文件,如 gcc,firefox 等(指不包含在 /sbin 和 /bin 內(nèi)的);
/usr/include : 各種頭文件,編譯文件等時需要使用;
/usr/include/’package-name’ : 程序特定的頭文件;
/usr/lib : 所以可執(zhí)行文件所需要的庫文件;
/usr/local : 這里主要存放那些手動安裝的軟件,即 不是通過“新立得”或apt-get安裝的軟件 。 它和/usr目錄具有相類似的目錄結(jié)構(gòu) 。讓軟件包管理器來管理/usr目錄,而把自定義的腳本(scripts)放到/usr/local目錄下面,我想這應(yīng)該是個不錯的主意。
/usr/X11R6 : x 系統(tǒng)的二進(jìn)制文件,庫文件,文檔,字體等。它不等同于 /usr 的作用,只有 x 才能調(diào)用這些庫文件等,其他程序不讀取或者使用。因為 linux 沒有原生圖形界面,而且 linux 大部分情況下是 for server 的,所以圖形界面沒有意義;其中 X11R6 代表 version 11 release 6;
/usr/X11R6/bin : x 的二進(jìn)制文件,包含運(yùn)行 x 的必須文件;
/usr/X11R6/include : x 相關(guān)的頭文件;
/usr/X11R6/lib : x 庫文件;
/usr/X11R6/lib/modules : x 的模塊,啟動時加載。缺少 video4linux, DRI and GLX 和 輸入輸出設(shè)備 模塊,將工作不正常;
/usr/X11R6/lib/X11/fonts : x font server 的字體文件;
/usr/doc : 文檔。實際是 /usr/share/doc 的軟鏈接;
/usr/etc : 一個極少用到的配置文件存放地;
/usr/games : 曾經(jīng)包含游戲等文件,現(xiàn)在很少用到;
/usr/info : 系統(tǒng)相關(guān)信息,是 /usr/share/info 的軟鏈接;
/usr/man : man 手冊,已經(jīng)移至 /usr/share/man;
/usr/sbin : 類似 /sbin,root 可以執(zhí)行。但此目錄不包含在環(huán)境變量 $PATH 中,它包含的程序類似于 chroot, useradd, in.tftpd and pppconfig;
/usr/share : 它包含了各種程序間的共享文件,如字體,圖標(biāo),文檔等。(/usr/local 對應(yīng)的目錄是 /usr/loca/share);
/usr/share/doc : 類似應(yīng)用程序的 man 手冊。它包含程序的說明文件,默認(rèn)配置文件等;
/usr/share/info : 不常用,已經(jīng)被 man 代替;
/usr/share/man : app 的 manual;
/usr/share/icons : 應(yīng)用程序的圖標(biāo)等文件,分為 png,svg 等多種格式;
/usr/share/fonts : 字體文件,系統(tǒng)范圍內(nèi)可使用,~/.fonts 僅當(dāng)前用戶可用;
/usr/src : linux 內(nèi)核的源碼和說明文檔等;
/usr/src/linux : linux 源代碼;
/usr/src/linux/.config : 內(nèi)核編譯過程產(chǎn)生的文件;通常由命令 ‘make config’ , ‘make menuconfig’ 或 ‘make xconfig’ 執(zhí)行后產(chǎn)生;
/usr/src/linux/.depend, /usr/src/linux/.hdepend : ‘make dep’ 檢測編譯依賴時需要的文件,由 /usr/src/linux/.config 產(chǎn)生;
/usr/src/linux/COPYING : GNU license;
/usr/src/linux/Makefile : 編譯內(nèi)核所需的 Makefile;
/usr/src/linux/Rules.make : 當(dāng)有多個 Makefile 時,根據(jù)它的規(guī)則執(zhí)行 make;
/usr/tmp : 已經(jīng)被眾多發(fā)行版拋棄的臨時文件夾。