1. 程式人生 > >linux 檔案系統各檔案作用

linux 檔案系統各檔案作用

/ 根目錄
包含了幾乎所以的檔案目錄,相當於中央系統,進入方法為cd/

/boot 載入程式,核心存放的目錄
這個目錄,包含在引導過程中所需要的檔案。系統的啟動階段,通過引導將核心載入到記憶體 ,完成核心的啟動(這個時候,虛擬檔案系統還不存在,載入的核心雖然從硬碟讀取,但是沒有經過Linux的虛擬檔案系統,這是比較底層的東西來實現,然後核心自己建立好虛擬檔案系統,並且從虛擬檔案系統的其他子目錄中(例如/sbin和/etc/載入需要在卡機啟動的其他程式或者服務或者特定的動作(部分可以由使用者自己在相應的目錄中修改相應的檔案來配置。如果我們機器中包含多個作業系統,那麼可以通過修改這個目錄中的某個配置檔案(例如grub.conf來調整啟動的預設作業系統,系統啟動的擇選單,以及啟動延遲等引數。
注:


在啟動核心之前,在/etc中一部分可以由使用者修改指定動作的配置目錄,作用與裁剪核心的方式類似。但遠沒有裁剪核心可以配置的功能更多。

/sbin 超級使用者可以使用的命令的存放目錄
存放大多涉及系統管理的命令(例如引導系統的init程式,是超級許可權使用者root的可執行命令存放地,普通使用者無權執行之歌目錄下的命令(但是有時普通使用者也可能會用到。)我們要記住,凡是目錄sbin中包含的都是root許可權才能執行的。

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

/lib 普通使用者可以使用的命令的存放目錄
此目錄下包含系統引導和在根使用者執行命令時候所需要的共享庫,做個不太好的但是比較形象的比喻,類似於Windows上面的system32目錄,按理說,這裡存放的檔案應該是/bin目錄下程式所需要的庫檔案的存放地,也不排除一些例外的情況。類似的目錄還有/usr/lib ,/usr/local/lib等等。

/dev 裝置檔案目錄
在Linux中裝置都是以檔案的形式出現,這裡的裝置值得是硬碟,鍵盤,網絡卡,終端等等裝置,通過訪問檔案可以訪問到相應的裝置,裝置檔案可以使用mknod命令來建立;而為了將這些裝置檔案的訪問轉化為裝置的訪問,需要向相應的裝置提供裝置驅動模組(一般將裝置驅動編譯之後,生成的結果是一個*.ko的二進位制問價,在核心啟動之後,再通過insmod等命令載入相應的裝置驅動之後,我們就可以通過裝置檔案來訪問裝置,一般來說,想要linux系統支援某個裝置,需要相應的硬體裝置,支援硬體的驅動模組。以及相應的裝置檔案)。

/home 普通使用者的家目錄
linux系統中,使用者主目錄通常直接或者間接在此目錄下,結果通常有本地管理員決定,系統的每個使用者都有自己的家目錄,目錄以使用者名稱作為名字存在/home下面。

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

/etc 全域性的配置檔案存放目錄
系統和程式一般都是可以通過修改相應的配置檔案,來進行配置,例如。要配置系統開機的時候啟動哪些程式,配置某個程式啟動的時候顯示什麼樣的風格等等。通常這些配置檔案都集中在存放的/etc目錄中,所以想要什麼配置什麼東西的話,可以在/etc、下面尋找我們可能需要修改的檔案。

1. /etc/rc或/etc/rc.d或/etc/rc?.d
啟動、或改變執行級時執行的指令碼或指令碼的目錄。
2. /etc/passwd
使用者資料庫,其中的域給出了使用者名稱、真實姓名、使用者起始目錄、加密口令和使用者的其
他資訊。
3. /etc/fdprm
軟盤引數表,用以說明不同的軟盤格式。可用setfdprm 進行設定。更多的資訊見setfdprm
的幫助頁。
4. /etc/fstab
指定啟動時需要自動安裝的檔案系統列表。也包括用swapon -a啟用的s w a p區的資訊。
5. /etc/group
類似/etc/passwd ,但說明的不是使用者資訊而是組的資訊。包括組的各種資料。
6. /etc/inittab
init 的配置檔案。
7. /etc/issue
包括使用者在登入提示符前的輸出資訊。通常包括系統的一段短說明或歡迎資訊。具體內
容由系統管理員確定。
8. /etc/magic
“file”的配置檔案。包含不同檔案格式的說明,“file”基於它猜測檔案型別。
9. /etc/motd
motd是message of the day的縮寫,使用者成功登入後自動輸出。內容由系統管理員確定。
常用於通告資訊,如計劃關機時間的警告等。
10. /etc/mtab
當前安裝的檔案系統列表。由指令碼(scritp)初始化,並由mount 命令自動更新。當需要一
個當前安裝的檔案系統的列表時使用(例如df 命令)。
11. /etc/shadow
在安裝了影子(shadow)口令軟體的系統上的影子口令檔案。影子口令檔案將/etc/passwd
檔案中的加密口令移動到/etc/shadow中,而後者只對超級使用者(root)可讀。這使破譯口令更困
難,以此增加系統的安全性。
12. /etc/login.defs
login命令的配置檔案。
13. /etc/printcap
類似/etc/termcap ,但針對印表機。語法不同。
14. /etc/profile/etc/csh.login、/etc/csh.cshrc
登入或啟動時bourne或c shells執行的檔案。這允許系統管理員為所有使用者建立全域性預設環境。
15. /etc/securetty
確認安全終端,即哪個終端允許超級使用者(root)登入。一般只列出虛擬控制檯,這樣就不
可能(至少很困難)通過調變解調器(modem)或網路闖入系統並得到超級使用者特權。
16. /etc/shells
列出可以使用的shell。chsh 命令允許使用者在本檔案指定範圍內改變登入的shell。提供一
臺機器f t p服務的服務程序ftpd 檢查使用者s h e l l是否列在/etc/shells 檔案中,如果不是,將不允
許該使用者登入。
17. /etc/termcap
終端效能資料庫。說明不同的終端用什麼“轉義序列”控制。寫程式時不直接輸出轉義
序列(這樣只能工作於特定品牌的終端),而是從/etc/termcap 中查詢要做的工作的正確序列。
這樣,多數的程式可以在多數終端上執行。

/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
安裝本地程式的一般預設路徑。
當我們下載一個程式原始碼,編譯並且安裝的時候,如果不特別指定安裝的程式路徑,那麼預設會將程式相關的檔案安裝到這個目錄的對應目錄下。也就是說,這個目錄存放的內容,一般都是我們後來自己安裝的軟體的預設路徑,如果擇了這個預設路徑作為軟體的安裝路徑,被安裝的軟體的所檔案都限制在這個目錄中,其中的子目錄就相應於根目錄的子目錄。

/proc 特殊檔案目錄
這個目錄採用一種特殊的檔案系統格式(proc格式,核心支援這種格式。其中包含了全部虛擬檔案。它們並不儲存在磁碟中,也不佔據磁碟空間(儘管命令ls -c會顯示它們的大小)。當您檢視它們時,您實際上看到的是記憶體裡的資訊,這些檔案助於我們瞭解系統內部資訊。例如:

1/ 關於程序1的資訊目錄。每個程序在/proc 下一個名為其程序號的目錄。
cpuinfo 處理器資訊,如型別、製造商、型號和效能。
devices 當前執行的核心配置的裝置驅動的列表。
dma 顯示當前使用的DMA通道。
filesystems 核心配置的檔案系統。
interrupts 顯示使用的中斷,and how many of each there have been.
ioports 當前使用的I/O埠。
kcore 系統實體記憶體映象。與實體記憶體大小一樣,但實際不佔這麼多記憶體;
kmsg 核心輸出的訊息。也被送到syslog 。
ksyms 核心符號表。
loadavg 系統”平均負載”;3個沒意義的指示器指出系統當前的工作量。
meminfo 儲存器使用資訊,包括實體記憶體和swap。
modules 當前載入了哪些核心模組。
net 網路協議狀態資訊。
self 到檢視/proc 的程式的程序目錄的符號連線。
stat 系統的不同狀態
uptime 系統啟動的時間長度。
version 核心版本。

/opt 可擇的檔案目錄
這個目錄表示的是可擇的意思,些自定義軟體包或者第方工具,就可以安裝在這裡。

/mnt 臨時掛載目錄
這個目錄一般是用於存放掛載儲存裝置的掛載目錄的,比如磁碟,光碟機,網路檔案系統等,當我們需要掛載某個磁碟裝置的時候,可以把磁碟裝置掛載到這個目錄上去,這樣我們可以直接通過訪問這個目錄來訪問那個磁碟了。一般來說,我們最好在/mnt目錄下面多建立幾個子目錄,掛載的時候掛載到這些子目錄上面,因為通常我們可能不僅僅是掛載一個裝置吧?

/media 掛載的媒體裝置目錄
掛載的媒體裝置目錄,一般外部裝置掛載到這裡,例如cdrom等。比如我們插入一個U盤,我們一般會發現,Linux自動在這個目錄下建立一個disk目錄,然後把U盤掛載到這個disk目錄上,通過訪問這個disk來訪問U盤。

/var 內容經常變化的目錄
此目錄下檔案的大小可能會改變,如緩衝檔案,日誌檔案,快取檔案,等一般都存放在這裡。

/tmp 臨時檔案目錄
該目錄存放系統中的一些臨時檔案,檔案可能會被系統自動清空。

/lost+found 恢復檔案存放的位置
當系統崩潰的時候,在系統修復過程中需要恢復的檔案,可能就會在這裡被找到了,這個目錄一般為空。

另外,有些目錄容易混淆,這裡簡單區分一下:
/bin,/sbin與/usr/bin,/usr/sbin:
/bin一般存放對於使用者和系統來說“必須”的程式(二進位制檔案)。
/sbin一般存放用於系統管理的“必需”的程式(二進位制檔案),一般普通使用者不會使用,根使用者使用。
/usr/bin一般存放的只是對使用者和系統來說“不是必需的”程式(二進位制檔案)。
/usr/sbin一般存放用於系統管理的系統管理的不是必需的程式(二進位制檔案)。

/lib與/usr/lib:
/lib和/usr/lib的區別類似/bin,/sbin與/usr/bin,/usr/sbin。
/lib一般存放對於使用者和系統來說“必須”的庫(二進位制檔案)。
/usr/lib一般存放的只是對使用者和系統來說“不是必需的”庫(二進位制檔案)。