1. 程式人生 > >Linux標準目錄結構

Linux標準目錄結構

人文 第三方軟件 spa 驅動 系統修復 內核 linux 系統 64位 日誌文件

一、結合第二一起理解

初學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標準目錄結構