Linux之目錄結構
在 Windows 中,我們會看到磁盤驅動器的標識,比如C:\,E:\,文件和目錄名都跟在驅動器名后面。linux 和 Windows 完全不同,在 linux 中你可以在根目錄下運行ls,觀察它的目錄結構:

/ - 根目錄
顧名思義,根目錄就是所有目錄所在的目錄,它是 Linux 中所有目錄的根,從某種概念上講,它有點類似于 Windows中的磁盤驅動器符號。之后將會看到,所有其他目錄都是以/開頭的。
/bin - 存放重要的用戶二進制文件目錄
bin 是binary的縮寫,/bin 目錄存放了非常重要的用戶二進制文件,其實就是一些程序。需要特別說明的是,/bin 中存放的都是在單用戶維護模式下還能被操作的命令,這些命令可以被 root 和普通用戶使用。在 / bin 中我們可以看到例如chmod、du這些我們經常使用的 Linux 命令程序。
/boot - 存放系統啟動時需要文件的目錄
/boot 中存放的主要是系統啟動時需要用到的文件,比如EFI、GRUB以及 Linux 內核。
/dev - 設備文件目錄
Linux 將所有東西都看成文件,設備也不例外,不論是實體的硬件設備還是虛擬設備。實體硬件比如第一塊被檢測到的硬盤會被掛載到/dev/sda,第二塊會被掛載到/dev/sdb,以此類推。虛擬設備比如null、random、stderr、stdin和stdout。
/etc - 配置文件目錄
etc 的含義是Et cetera,表示一些相關的其他東西,/etc 從 UNIX 早期開始就被用來存放配置文件,一直沿用至今。需要注意的是,/etc 中存放的是系統配置文件,特定用戶的配置文件放在每個用戶的 / home 目錄下。
/home - 用戶目錄
/home 目錄中存放的是每個用戶的用戶目錄,比如有一個用戶叫 tom,/home/tom 就是他的用戶目錄,每個用戶的用戶目錄中存放的用戶數據和用戶配置文件,比如每個用戶的.bashrc文件、.ssh目錄等。普通用戶只能訪問自己的用戶目錄而不能訪問別人的,root 用戶則沒有此限制。
/lib - 重要的共享庫目錄
/lib 目錄中存放的是/bin和/sbin中那些重要的二進制文件(程序)需要的共享庫。另外/usr/bin中二進制文件(程序)需要的共享庫都存放在/usr/lib。
/lost+found - 恢復文件目錄
每個 Linux 文件系統都有 / lost+found 目錄,當文件系統崩潰時,在下次啟動時將會進行文件系統自檢,任何在崩潰過程中損壞的文件都將被放入 / lost+found,你可以嘗試找到并恢復這些文件。
當你將一些可刪除媒介掛(比如 CD,U 盤,光驅等)載到計算機上時,系統會在 / media 下自動創建子目錄,之后就可以通過訪問這個子目錄來訪問媒介。比如你在電腦上插入 CD,在 / media 目錄下就會自動生成一個子目錄,你可以通過訪問這個子目錄來訪問 CD 的內容。
/mnt - 臨時掛載點目錄
mnt 是mount的縮寫,各種設備掛載到系統后,會在 / mnt 目錄下生成相應設備的目錄,比如掛載光驅、文件系統、CD 等。
/opt - 可選包目錄
opt 是Optional的意思,系統中安裝的可選軟件包被存放在 / opt 目錄中。
/proc - 內核和進程文件目錄
/proc 是一個虛擬目錄,并不包含任何標準文件。當系統啟動后,會對當前內核和硬件信息進行檢測,并將這些信息放在這個目錄中(其實都在內存中)。你可以使用cat /proc/meminfo來查看關于內存的一些信息,或者使用cat /proc/version來查看 Linux 內核信息。
/root - root 用戶的 home 目錄
和一般用戶的 home 目錄放在/home/{用戶名}不同,root 用戶的 home 目錄專門被放在/root。
/run - 應用程序狀態目錄
/run 目錄用來存放應用程序在運行期間需要的一些短暫存在的文件,比如 socket 和 pid 文件,這些文件對這些應用程序的運行很重要,因此不能把他們放在 / tmp 目錄下,因為 / tmp 目錄下的文件有可能會被系統清空。
/sbin - 系統管理員用的二進制文件目錄
/sbin 目錄和 /bin 目錄有些類似,都是存放二進制文件。比較特殊的是,/sbin 目錄存放的都是系統管理的命令程序,一般只有 root 用戶能使用。
/srv - 服務數據目錄
/srv 目錄主要用來存放一些系統提供的網絡服務的數據,如果你在機器上運行一個 HTTP 服務器來對外提供靜態文件時,/srv/http目錄將存放這些靜態文件,如果你運行一個 FTP 服務器對外提供文件,則/srv/ftp目錄將存放這些文件。
/tmp - 臨時文件目錄
應用程序會將一些臨時文件存放在 / tmp 目錄中,一般來說當系統重啟后,/tmp 下的文件會被自動清空,也會被一些監控程序清空。
/usr - 用戶二進制文件和只讀文件目錄
/usr 目錄下存放的是用戶使用的程序,可以很明顯地發現,Linux 將普通用戶和系統使用的程序分開存放,比如上面提到過,系統使用的一些重要程序存放在 / bin,而那些不重要的程序就被放在 / usr/bin。不太重要的系統管理程序存放在 / usr/sbin 而不是 / sbin。usr 也被稱為UNIX Software Resource,這是比較早期的說法。下面是 / usr 目錄下常見的幾個子目錄的含義:
/usr/bin 存放用戶命令
/usr/include 存放編程語言的頭文件和包含文件
/usr/lib 存放各個應用程序的庫函數和目標文件
/usr/local 存放系統管理員下載的軟件的安裝目錄
/usr/sbin 存放不常用的系統命令
/usr/src 存放源碼
/var - 變動數據目錄
/var 一般用來存放經常變動的數據,比如日志文件和緩存文件。下面是 / var 目錄下常見的幾個子目錄的含義:
/var/cache 存放應用程序運行產生的臨時文件
/var/lib 存放程序在執行過程中需要使用到的數據文件,每個軟件在此目錄下都有自己獨自的目錄
/var/lock 存放程序的鎖狀態
/var/log 存放各種日志文件
/var/mail 存放個人電子郵箱
/var/run 有些程序在運行后,會將他們的 pid、socket 文件放置到這個目錄中
軟件安裝規范
1. 可分享的:
可以分享給其他系統掛載使用的目錄,所以包括執行文件與用戶的郵件等數據, 是能夠分享給網絡上其他主機掛載用的目錄;
2. 不可分享的:
自己機器上面運作的裝置文件或者是與程序有關的socket文件等, 由于僅與自身機器有關,所以當然就不適合分享給其他主機了。
3. 不變的:
有些數據是不會經常變動的,跟隨著distribution而不變動。 例如函式庫、文件說明文件、系統管理員所管理的主機服務配置文件等等;
4. 可變動的:
經常改變的數據,例如登錄文件、一般用戶可自行收受的新聞組等。
事實上,FHS針對目錄樹架構僅定義出三層目錄底下應該放置什么數據而已,分別是底下這三個目錄的定義:
/(root, 根目錄):與開機系統有關
/usr (unix software resource):與軟件安裝/執行有關
/var (variable):與系統運作過程有關
Linux
版權聲明:本文內容由網絡用戶投稿,版權歸原作者所有,本站不擁有其著作權,亦不承擔相應法律責任。如果您發現本站中有涉嫌抄襲或描述失實的內容,請聯系我們jiasou666@gmail.com 處理,核實后本網站將在24小時內刪除侵權內容。
版權聲明:本文內容由網絡用戶投稿,版權歸原作者所有,本站不擁有其著作權,亦不承擔相應法律責任。如果您發現本站中有涉嫌抄襲或描述失實的內容,請聯系我們jiasou666@gmail.com 處理,核實后本網站將在24小時內刪除侵權內容。