當前位置:
首頁 > 知識 > Linux系統根目錄結構詳解

Linux系統根目錄結構詳解

近日,接觸多年Linux系統的我,今天突然發現對Linux系統目錄變得生疏起來。由於平日都是用碎片時間來使用Linux系統(主要是Ubuntu)。有些命令當我再次接觸時都幾乎忘光了,所以需要再次花時間搜索相關配置方案。這樣幹活效率太低了,於是乎為了將命令內化,進一步深入了解相關目錄結構。只有對目錄結構有清晰的認識,才能對相關配置命令有更深入的理解。

如上圖所示,Ubuntu中對應根目錄內容。可以發現根目錄使用 」/「來進行表示。直接調轉到根目錄使用 cd / 命令,直接調轉到當前用戶的根目錄 使用 cd ~命令。區別於系統根目錄和用戶根目錄。類似於Win環境下對應C盤為系統根目錄,C盤下對應的User目錄為用戶根目錄。下面這張圖能很好的解釋這個問題。為了避免誤讀將系統更目錄簡稱根目錄,用戶根目錄簡稱主目錄。

區分清楚根目錄和主目錄之後,下面我們主要來介紹系統根目錄的結構情況。

/bin

bin就是binary,二進位。/bin目錄放置可執行文件,root和一般賬號都可以使用,如cat, chmod, mv, mkdir等。其實系統有很多放置執行文件的目錄,但/bin 目錄比較特殊,因為/bin 放置的是在單用戶模式下還能夠被操作的命令。

/boot

這個目錄主要存放開機會使用的文件,如Linux內核和系統啟動文件,包括Grub、lilo啟動器程序

/dev

存放所有設備文件,包括硬碟、分區、鍵盤、滑鼠、USB、tty等。註:在Linux系統上,任何設備與介面設備都是以文件的形式存在於這個目錄當中的。

/etc

存放系統的所有配置文件,例如/etc/passwd存放用戶賬戶信息,/etc/hostname文件存放主機名,也有一些目錄,如/etc/nginx是目錄,裡面存儲nginx的很多配置文件

/home

用戶主目錄的默認位置。當你創建一個一般用戶賬號時,默認的用戶主文件夾就在該目錄下。

/lib

存放開機時會用到的函數庫,以及/bin和/sbin目錄下的命令調用的函數庫

/lost+found

存放由fsck放置的零散文件。註:fsck命令用於檢查與修復 Linux 文件系統

/media

media是「媒體」英文,顧名思義,它下面存放可刪除的設備,包括軟盤,光碟,DVD等設備文件

/mnt

如果你想要暫時掛載某些額外的設備,一般建議你可以放置到這個目錄中。

/proc

這個目錄本身是一個虛擬文件系統。它放置的數據都是在內存當中,例如系統內核,進程等

/root

root用戶的主目錄

/run

最常用的就是存放進程的ID。要特別注意的是:它使用tmpfs文件系統,這是一種存儲在內存中的臨時文件系統,當機器關閉的時候,文件系統自然就被清空了,我就曾經吃了這個虧

/sbin

sbin即system binary,用來設置系統的可執行命令,這些命令只有root用戶才能用設置系統,其他用戶最多只能用來「查詢」而已

/srv

srv是service的縮寫,是一些網路服務啟動之後,這些服務所需要取用的數據目錄。常見的服務有WWW, FTP等。比如WWW服務需要的網頁數據就可以放在/srv/www/目錄下

/sys

這個目錄跟/proc 非常類似,也是一個虛擬的文件系統,主要也是記錄與內核相關的信息。這個目錄同樣不佔硬碟容量

/tmp

顧名思義,就是用來存放臨時文件的地方,所有用戶都可以訪問。建議該目錄不要放重要數據

/usr

注意usr並不是user的縮寫,而是Unix Software Resource的縮寫,即「Unix 操作系統軟體資源」放在該目錄,而不是用戶的數據。這個目錄相當於Windows操作系統的「C:Windows」和「C:Program files」這兩個目錄的綜合體,系統安裝完畢後,這個目錄會佔用最多的硬碟容量。

/usr/bin

用戶可使用的大部分命令都放在這裡。

/usr/include

存放C/C++等程序語言的頭文件(head)和目標文件(include)。

/usr/lib

包含各應用軟體的函數庫,目標文件(object file),比如它下面有jvm目錄,就是java。

/usr/local

系統管理員在本機自行下載自行安裝的軟體(非Ubuntu發行版默認提供的軟體)一般放在該目錄。該目錄下也有。bin,etc, include, lib等子目錄。比如我在Ubuntu上安裝的uwsgi, celery, pip就放在/usr/local/lib目錄下。

/usr/sbin

非系統正常運行所需要的系統命令。最常見的就是某些網路伺服器軟體的daemon命令,如nginx, ntpd, mysqld。

/var

如果/usr 是安裝時會佔用較大硬碟容量的目錄,那麼/var 就是在系統運行過程中漸漸佔用硬碟容量的目錄。包括緩存cache,日誌log,以及某些軟體運行所產生的文件,包括程序文件(lock file, run file)。mysql的資料庫文件也是放置在這個目錄下,具體為/var/lib/mysql/目錄下。

/var/cache

應用程序緩存目錄。

/var/lib

存放程序執行過程中,需要使用到的數據文件。比如mysql資料庫的數據放在/var/lib/mysql/目錄下。

/var/lock

它是/run lock目錄的軟鏈接,某些設備或文件一次只能被一個應用所使用。這樣當這些資源使用時,就要加鎖特別注意:它使用臨時文件系統,主機重啟後會清空。

/var/log

日誌文件目錄

/var/mail

電子郵件,當主機做郵件服務端時,發送的郵件都會放在這個目錄,建議定期清理。

/var/run

進程ID,它是/run目錄的軟連接。

特別注意:它使用臨時文件系統,主機重啟後會清空。

/var/spool

存放電子郵件,列印任務等的隊列目錄。它的子目錄/var/spool/mail其實是/var/mail的軟鏈接。

作為曾經JavaWeb開發者,現在是在校碩士研究生。上面標紅的地方在配置Linux Web應用相關性比較大。需要好好理解。

喜歡這篇文章嗎?立刻分享出去讓更多人知道吧!

本站內容充實豐富,博大精深,小編精選每日熱門資訊,隨時更新,點擊「搶先收到最新資訊」瀏覽吧!


請您繼續閱讀更多來自 岢編程丗堺 的精彩文章:

TAG:岢編程丗堺 |