Linux標準目錄結構
一、結合第二一起理解
初學Linux,首先需要弄清Linux 標準目錄結構
/
- root --- 啟動Linux時使用的一些核心文件。如操作系統內核、引導程序Grub等。
- home --- 存儲普通用戶的個人文件
- ftp --- 用戶所有服務
- httpd
- samba
- user1
- user2
- bin --- 系統啟動時需要的執行文件(二進制)
- sbin --- 可執行程序的目錄,但大多存放涉及系統管理的命令。只有root權限才能執行
- proc --- 虛擬,存在linux內核鏡像;保存所有內核參數以及系統配置信息
- 1 --- 進程編號
- usr --- 用戶目錄,存放用戶級的文件
- bin --- 幾乎所有用戶所用命令,另外存在與/bin,/usr/local/bin
- sbin --- 系統管理員命令,與用戶相關,例如,大部分服務器程序
- include --- 存放C/C++頭文件的目錄
- lib --- 固定的程序數據
- local --- 本地安裝軟件保存位置
- man --- 手工生成的目錄
- info --- 信息文檔
- doc --- 不同包文檔信息
- tmp
- X11R6 --- 該目錄用於保存運行X-Window所需的所有文件。該目錄中還包含用於運行GUI要的配置文件和二進制文件。
- X386 --- 功能同X11R6,X11 發行版5 的系統文件
- boot --- 引導加載器所需文件,系統所需圖片保存於此
- lib --- 根文件系統目錄下程序和核心模塊的公共庫
- modules --- 可加載模塊,系統崩潰後重啟所需模塊
- dev --- 設備文件目錄
- etc --- 配置文件
- skel --- home目錄建立,該目錄初始化
- sysconfig --- 網絡,時間,鍵盤等配置目錄
- var
- file
- lib --- 該目錄下的文件在系統運行時,會改變
- local --- 安裝在/usr/local的程序數據,變化的
- lock --- 文件使用特定外設或文件,為其上鎖,其他文件暫時不能訪問
- log --- 記錄日誌
- run --- 系統運行合法信息
- spool --- 打印機、郵件、代理服務器等假脫機目錄
- tmp
- catman --- 緩存目錄
- mnt --- 臨時用於掛載文件系統的地方。一般情況下這個目錄是空的,而在我們將要掛載分區時在這個目錄下建立目錄,再將我們將要訪問的設備掛載在這個目錄上,這樣我們就可訪問文件了。
- tmp --- 臨時文件目錄,系統啟動後的臨時文件存放在/var/tmp
- lost+found --- 在文件系統修復時恢復的文件
/:根目錄,一般根目錄下只存放目錄,不要存放文件,/etc、/bin、/dev、/lib、/sbin應該和根目錄放置在一個分區中
/bin:/usr/bin:可執行二進制文件的目錄,如常用的命令ls、tar、mv、cat等。
/boot:放置linux系統啟動時用到的一些文件。/boot/vmlinuz為linux的內核文件,以及/boot/gurb。建議單獨分區,分區大小100M即可
/dev:存放linux系統下的設備文件,訪問該目錄下某個文件,相當於訪問某個設備,常用的是掛載光驅mount /dev/cdrom /mnt。
/etc:系統配置文件存放的目錄,不建議在此目錄下存放可執行文件,重要的配置文件有/etc/inittab、/etc/fstab、/etc/init.d、/etc/X11、/etc/sysconfig、/etc/xinetd.d修改配置文件之前記得備份。
註:/etc/X11存放與x windows有關的設置。
/home:系統默認的用戶家目錄,新增用戶賬號時,用戶的家目錄都存放在此目錄下,~表示當前用戶的家目錄,~test表示用戶test的家目錄。建議單獨分區,並設置較大的磁盤空間,方便用戶存放數據
/lib:/usr/lib:/usr/local/lib:系統使用的函數庫的目錄,程序在執行過程中,需要調用一些額外的參數時需要函數庫的協助,比較重要的目錄為/lib/modules。
/lost+fount:系統異常產生錯誤時,會將一些遺失的片段放置於此目錄下,通常這個目錄會自動出現在裝置目錄下。如加載硬盤於/disk 中,此目錄下就會自動產生目錄/disk/lost+found
/mnt:/media:光盤默認掛載點,通常光盤掛載於/mnt/cdrom下,也不一定,可以選擇任意位置進行掛載。
/opt:給主機額外安裝軟件所擺放的目錄。如:FC4使用的Fedora 社群開發軟件,如果想要自行安裝新的KDE 桌面軟件,可以將該軟件安裝在該目錄下。以前的 Linux 系統中,習慣放置在 /usr/local 目錄下
/proc:此目錄的數據都在內存中,如系統核心,外部設備,網絡狀態,由於數據都存放於內存中,所以不占用磁盤空間,比較重要的目錄有/proc/cpuinfo、/proc/interrupts、/proc/dma、/proc/ioports、/proc/net/*等
/root:系統管理員root的家目錄,系統第一個啟動的分區為/,所以最好將/root和/放置在一個分區下。
/sbin:/usr/sbin:/usr/local/sbin:放置系統管理員使用的可執行命令,如fdisk、shutdown、mount等。與/bin不同的是,這幾個目錄是給系統管理員root使用的命令,一般用戶只能"查看"而不能設置和使用。
/tmp:一般用戶或正在執行的程序臨時存放文件的目錄,任何人都可以訪問,重要數據不可放置在此目錄下
/srv:服務啟動之後需要訪問的數據目錄,如www服務需要訪問的網頁數據存放在/srv/www內
/usr:應用程序存放目錄,/usr/bin存放應用程序,/usr/share存放共享數據,/usr/lib存放不能直接運行的,卻是許多程序運行所必需的一些函數庫文件。/usr/local:存放軟件升級包。/usr/share/doc:系統說明文件存放目錄。/usr/share/man: 程序說明文件存放目錄,使用 man ls時會查詢/usr/share/man/man1/ls.1.gz的內容建議單獨分區,設置較大的磁盤空間
/var:放置系統執行過程中經常變化的文件,如隨時更改的日誌文件/var/log,/var/log/message:所有的登錄文件存放目錄,/var/spool/mail:郵件存放的目錄,/var/run:程序或服務啟動後,其PID存放在該目錄下。建議單獨分區,設置較大的磁盤空間
二、結合第一一起理解
與Windows將硬盤看做“C盤”、“D盤”幾個獨立的分區不同,Linux將整個文件系統看做一棵樹,這棵樹的樹根叫做根文件系統,用/表示。各個分區通過“掛載”(Mount)以文件夾的形式訪問。
在/中的文件夾很多,本文介紹常見文件夾的意義。Linux的目錄結構確實比較復雜,但設置合理、層次鮮明。本文以FHS 2.3為例進行介紹。
/bin根文件系統
- 這一目錄中存放了供所有用戶使用的完成基本維護任務的命令。其中bin是binary的縮寫,表示二進制文件,通常為可執行文件。一些常用的系統命令,如cp、ls等保存在該目錄中。
- /boot
- 這裏存放的是啟動Linux時使用的一些核心文件。如操作系統內核、引導程序Grub等。
- /dev
- 在此目錄中包含所有的系統設備文件。從此目錄可以訪問各種系統設備。如CD-ROM,磁盤驅動器,調制解調器和內存等。在該目錄中還包含有各種實用功能,如用於創建設備文件的MAKEDEV。
- /etc
- 該目錄中包含系統和應用軟件的配置文件。
- /etc/passwd
- 該目錄中包含了系統中的用戶描述信息,每行記錄一個用戶的信息。
- /home
- 存儲普通用戶的個人文件。每個用戶的主目錄均在/home下以自己的用戶名命名。
- /lib
- 這個目錄裏存放著系統最基本的共享鏈接庫和內核模塊。共享鏈接庫在功能上類似於Windows裏的.dll文件。
- /lib64
- 64位系統有這個文件夾,64位程序的庫。
- /lost+found
- 這並不是Linux目錄結構的組成部分,而是ext3文件系統用於保存丟失文件的地方。不恰當的關機操作和磁盤錯誤均會導致文件丟失,這意味著這些被標註為“在使用”,但卻並未列於磁盤上的數據結構上。正常情況下,引導進程會運行fsck程序,該程序能發現這些文件。除了“/”分區上的這個目錄外,在每個分區上均有一個lost+found目錄。
- /media
- 可移動設備的掛載點,當前的操作系統通常會把U盤等設備自動掛載到該文件夾下。
- /mnt
- 臨時用於掛載文件系統的地方。一般情況下這個目錄是空的,而在我們將要掛載分區時在這個目錄下建立目錄,再將我們將要訪問的設備掛載在這個目錄上,這樣我們就可訪問文件了。(註意在GNOME中,只有掛載到/media的文件夾才會顯示在“計算機”中,掛載到/mnt不會做為特殊設備顯示,詳見自動掛載分區)
- /opt
- 多數第三方軟件默認安裝到此位置,如Adobe Reader、google-earth等。並不是每個系統都會創建這個目錄。
- /proc
- 它是存在於內存中的虛擬文件系統。裏面保存了內核和進程的狀態信息。多為文本文件,可以直接查看。如/proc/cpuinfo保存了有關CPU的信息。
- /root
- 這是根用戶的主目錄。與保留給個人用戶的/home下的目錄很相似,該目錄中還包含僅與根用戶有關的條目。
- /sbin
- 供超級用戶使用的可執行文件,裏面多是系統管理命令,如fsck, reboot, shutdown, ifconfig等。
- /tmp
- 該目錄用以保存臨時文件。該目錄具有Sticky特殊權限,所有用戶都可以在這個目錄中創建、編輯文件。但只有文件擁有者才能刪除文件。為了加快臨時文件的訪問速度,有的實現把/tmp放在內存中。
- /usr
- 靜態的用戶級應用程序等,見下。
- /var
- 動態的程序數據等,見下文。
/usr目錄結構
/usr通常是一個龐大的文件夾,其下的目錄結構與根目錄相似,但根目錄中的文件多是系統級的文件,而/usr中是用戶級的文件,一般與具體的系統無關。
提示:usr最早是user的縮寫,/usr的作用與現在的/home相同。而目前其通常被認為是 User System Resources 的縮寫,其中通常是用戶級的軟件等,與存放系統級文件的根目錄形成對比。[2]
應註意,程序的配置文件、動態的數據文件等都不會存放到/usr,所以除了安裝、卸載軟件外,一般無需修改/usr中的內容。說在系統正常運行時,/usr甚至可以被只讀掛載。由於這一特性,/usr常被劃分在單獨的分區,甚至有時多臺計算機可以共享一個/usr。
- /usr/bin
- 多數日常應用程序存放的位置。如果/usr被放在單獨的分區中,Linux的單用戶模式不能訪問/usr/bin,所以對系統至關重要的程序不應放在此文件夾中。
- /usr/include
- 存放C/C++頭文件的目錄
- /usr/lib
- 系統的庫文件
- /usr/local
- 新裝的系統中這個文件夾是空的,可以用於存放個人安裝的軟件。安裝了本地軟件的/usr/local裏的目錄結構與/usr相似
- /usr/sbin
- 在單用戶模式中不用的系統管理程序,如apache2等。
- /usr/share
- 與架構無關的數據。多數軟件安裝在此。
- /usr/X11R6
- 該目錄用於保存運行X-Window所需的所有文件。該目錄中還包含用於運行GUI要的配置文件和二進制文件。
- /usr/src
- 源代碼
/var目錄結構
/var中包括了一些數據文件,如系統日誌等。/var的存放使得/usr被只讀掛載成為可能。
- /var/cache
- 應用程序的緩存文件
- /var/lib
- 應用程序的信息、數據。如數據庫的數據等都存放在此文件夾。
- /var/local
- /usr/local中程序的信息、數據
- /var/lock
- 鎖文件
- /var/log
- 日誌文件
- /var/opt
- /opt中程序的信息、數據
- /var/run
- 正在執行著的程序的信息,如PID文件應存放於此
- /var/spool
- 存放程序的假脫機數據(即spool data)
- /var/tmp
- 臨時文件
Linux標準目錄結構