FHS文件系統各目錄功能

/ 
根目錄。 
包含了幾乎所的文件目錄。相當于中央系統。進入的最簡單方法是:cd /。

/boot 
引導程序,內核等存放的目錄。 
這個目錄,包括了在引導過程中所必需的文件,引導程序的相關文件(例如grub,lilo以及相應的配置文件以及Linux操作系統內核相關文件(例如vmlinuz等一般都存放在這里。在最開始的啟動階段,通過引導程序將內核加載到內存,完成內核的啟動(這個時候,虛擬文件系統還不存在,加載的內核雖然是從硬盤讀取的,但是沒經過Linux的虛擬文件系統,這是比較底層的東西來實現的。然后內核自己創建好虛擬文件系統,并且從虛擬文件系統的其他子目錄中(例如/sbin 和 /etc加載需要在開機啟動的其他程序或者服務或者特定的動作(部分可以由用戶自己在相應的目錄中修改相應的文件來配制。如果我們的機器中包含多個操作系統,那么可以通過修改這個目錄中的某個配置文件(例如grub.conf來調整啟動的默認操作系統,系統啟動的擇菜單,以及啟動延遲等參數。

/sbin 
超級用戶可以使用的命令的存放目錄。 
存放大多涉及系統管理的命令(例如引導系統的init程序,是超級權限用戶root的可執行命令存放地,普通用戶無權限執行這個目錄下的命令(但是時普通用戶也可能會用到。這個目錄和/usr/sbin; /usr/X11R6/sbin或/usr/local/sbin等目錄是相似的,我們要記住,凡是目錄sbin中包含的都是root權限才能執行的,這樣就行了。后面會具體區分。

/bin 
普通用戶可以使用的命令的存放目錄。 
系統所需要的那些命令位于此目錄,比如ls、cp、mkdir等命令;類似的目錄還/usr/bin,/usr/local/bin等等。這個目錄中的文件都是可執行的、普通用戶都可以使用的命令。作為基礎系統所需要的最基礎的命令就是放在這里。

/lib 
根目錄下的所程序的共享庫目錄。 
此目錄下包含系統引導和在根用戶執行命令時候所必需用到的共享庫。做個不太好但是比較形象的比喻,點類似于Windows上面的system32目錄。理說,這里存放的文件應該是/bin目錄下程序所需要的庫文件的存放地,也不排除一些例外的情況。類似的目錄還/usr/lib,/usr/local/lib等等。

/dev 
設備文件目錄。 
在Linux中設備都是以文件形式出現,這里的設備可以是硬盤,鍵盤,鼠標,網卡,終端,等設備,通過訪問這些文件可以訪問到相應的設備。設備文件可以使用mknod命令來創建,具體參見相應的命令;而為了將對這些設備文件的訪問轉化為對設備的訪問,需要向相應的設備提供設備驅動模塊(一般將設備驅動編譯之后,生成的結果是一個*.ko類型的二進制文件,在內核啟動之后,再通過insmod等命令加載相應的設備驅動之后,我們就可以通過設備文件來訪問設備了。一般來說,想要Linux系統支持某個設備,只要個東西:相應的硬件設備,支持硬件的驅動模塊,以及相應的設備文件。

/home 
普通用戶的家目錄($HOME目錄。 
在Linux機器上,用戶主目錄通常直接或間接地置在此目錄下。其結構通常由本地機的管理員來決定。通常而言,系統的每個用戶都自己的家目錄,目錄以用戶名作為名字存放在/home下面(例如quietheart用戶,其家目錄的名字為/home/quietheart。該目錄中保存了絕大多數的用戶文件(用戶自己的配置文件,定制文件,文檔,數據等),root用戶除外(參見后面的/root目錄。由于這個目錄包含了用戶實際的數據,通常系統管理員為這個目錄單獨掛載一個獨立的磁盤分區,這樣這個目錄的文件系統格式就可能和其他目錄不一樣了(盡管表面上看,這個目錄還是屬于根目錄的一棵子樹上),有利于數據的維護。

/root 
用戶root的$HOME目錄 
系統管理員(就是root用戶或超級用戶)的主目錄比較特殊,不存放在/home中,而是直接放在/root目錄下了。

/etc 
全局的配置文件存放目錄。 
系統和程序一般都可以通過修改相應的配置文件,來進行配置。例如,要配置系統開機的時候啟動那些程序,配置某個程序啟動的時候顯示什么樣的風格等等。通常這些配置文件都集中存放在/etc目錄中,所以想要配置什么東西的話,可以在/etc下面尋找我們可能需要修改的文件。一些大型套件,如X11,在 /etc 下它們自己的子目錄。系統配置文件可以放在這里或在 /usr/etc。 不過所程序總是在 /etc 目錄下查找所需的配置文件,你也可以將這些文件鏈接到目錄 /usr/etc。另外,還一個需要注意的常見現象就是,當某個程序在某個用戶下運行的時候,可能會在該用戶的家目錄中生成一個配置文件(一般這個文件最開始就是/etc下相應配置文件的拷貝,存放相應于“當前用戶”的配置,這樣當前用戶可以通過配置這個家目錄的配置文件,來改變程序的行為,并且這個行為只是該用戶特的。原因就是:一般來說一個程序啟動,如果需要讀取一些配置文件的話,它會首先讀取當前用戶家目錄的配置文件,如果存在就使用;如果不存在它就到/etc下讀取全局的配置文件進而啟動程序。就是這個配置文件不自動生成,我們手動在自己的家目錄中創建一個文件的話,也有許多程序會首先讀取到這個家目錄的文件并且以它的配置作為啟動的選項(例如我們可以在家目錄中創建vim程序的配置文件.vimrc,來配置自己的vim程序。

/usr 
這個目錄中包含了命令庫文件和在通常操作中不會修改的文件。 
這個目錄對于系統來說也是一個非常重要的目錄,其地位類似Windows上面的”Program Files”目錄(請原諒我可能這樣做比較不太恰當^_^。安裝程序的時候,默認就是安裝在此文件內部某個子文件夾內。輸入命令后系統默認執行/usr/bin下的程序(當然,前提是這個目錄的路徑已經被添加到了系統的環境變量中。此目錄通常也會掛載一個獨立的磁盤分區,它應保存共享只讀類文件,這樣它可以被運行Linux的不同主機掛載。

/usr/lib 
目標庫文件,包括動態連接庫加上一些通常不是直接調用的可執行文件的存放位置。 
這個目錄功能類似/lib目錄,理說,這里存放的文件應該是/bin目錄下程序所需要的庫文件的存放地,也不排除一些例外的情況。

/usr/bin 
一般使用者使用并且不是系統自檢等所必需可執行文件的目錄。 
此目錄相當于根文件系統下的對應目錄(/bin,非啟動系統,非修復系統以及非本地安裝的程序一般都放在此目錄下。

/usr/sbin 
管理員使用的非系統必須的可執行文件存放目錄。 
此目錄相當于根文件系統下的對應目錄(/sbin,保存系統管理程序的二進制文件,并且這些文件不是系統啟動或文件系統掛載 /usr 目錄或修復系統所必需的。

/usr/share 
存放共享文件的目錄。 
在此目錄下不同的子目錄中保存了同一個操作系統在不同構架下工作時特定應用程序的共享數據(例如程序文檔信息)。使用者可以找到通常放在 /usr/doc 或 /usr/lib 或 /usr/man 目錄下的這些類似數據。

/usr/include 
C程序語言編譯使用的頭文件。 
linux下開發和編譯應用程序所需要的頭文件一般都存放在這里,通過頭文件來使用某些庫函數。默認來說這個路徑被添加到了環境變量中,這樣編譯開發程序的時候編譯器會自動搜索這個路徑,從中找到你的程序中可能包含的頭文件。

/usr/local 
安裝本地程序的一般默認路徑。 
當我們下載一個程序源代碼,編譯并且安裝的時候,如果不特別指定安裝的程序路徑,那么默認會將程序相關的文件安裝到這個目錄的對應目錄下。例如,安裝的程序可執行文件被安裝(安裝實質就是復制到了/usr/local/bin下面,此程序(可執行文件所需要依賴的庫文件被安裝到了/usr/local/lib目錄下,被安裝的軟件如果是某個開發庫(例如Qt,Gtk等那么相應的頭文件可能就被安裝到了/usr/local/include中等等。也就是說,這個目錄存放的內容,一般都是我們后來自己安裝的軟件的默認路徑,如果擇了這個默認路徑作為軟件的安裝路徑,被安裝的軟件的所文件都限制在這個目錄中,其中的子目錄就相應于根目錄的子目錄。

/proc 
特殊文件目錄。 
這個目錄采用一種特殊的文件系統格式(proc格式,內核支持這種格式。其中包含了全部虛擬文件。它們并不保存在磁盤中,也不占據磁盤空間(盡管命令ls -c會顯示它們的大小)。當您查看它們時,您實際上看到的是內存里的信息,這些文件助于我們了解系統內部信息。

原創文章,作者:hyw,如若轉載,請注明出處:http://www.www58058.com/51813

(0)
hywhyw
上一篇 2016-10-20 20:21
下一篇 2016-10-20 20:21

相關推薦

  • LAMP基于RPM包實現(httpd與php以fastcgi方式結合) 2

    概述:     承接上篇,本篇為介紹下利用rpm包,實現LAMP組合,其中httpd和php的結合方式為fastcgi,也就是php運行為獨立的服務,監聽的某個套接字上,接受請求,提供服務     包括LAMP安裝過程(http、php-fpm、mysql-server、php-…

    Linux干貨 2016-10-15
  • vim學習

    vim學習 認識與介紹   vim是一款linux下查看編輯文本文件的一款文本編輯器。一般用來查看修改配置文件、日志文件等文本類文件。 打開文件   vim [OPTIONS] [FILE …]     +#: 打開文件后,直接讓文件處于第#行     +/…

    Linux干貨 2016-10-09
  • date命令常見用法。

    date是一個非常實用的小工具,可以查看時間,并且也可以添加選項去完成自己想完成的東西。

    Linux干貨 2017-11-13
  • HTTP詳解(3)-http1.0 和http1.1 區別

    翻了下HTTP1.1的協議標準RFC2616,下面是看到的一些它跟HTTP1.0的差別。 1. Persistent Connection持久連接        在HTTP1.0中,每對Request/Response都使用一個新的連接。      …

    Linux干貨 2015-04-04
  • 馬哥教育網絡班22期第二周課程練習1-未聞花名

    1、Linux管理文件和目錄的命令 命令 功能 命令 功能 pwd 顯示當前目錄 ls 查看目錄下的內容 cd 改變所在目錄 cat 顯示文件的內容 grep 在文件中查找某字符 cp 復制文件 touch 創建文件 mv 移動文件 rm 刪除文件 rmdir 刪除目錄 1.1 pwd命令 該命令的英文解釋為print working directory(打…

    Linux干貨 2016-08-29
欧美性久久久久