[toc] Linux目錄配置的依據 FHS 因為利用Linux來開發產品的公司太多,例如,CentOS、Ubuntu、ReHat...,導致了配置文件存放的目錄沒有統一的標準。後來就有了FHS(Filesystem Hierarchy Standard)的標準出來了。 四種交互作用的形態 1.可分 ...
目錄
Linux目錄配置的依據--FHS
因為利用Linux來開發產品的公司太多,例如,CentOS、Ubuntu、ReHat...,導致了配置文件存放的目錄沒有統一的標準。後來就有了FHS(Filesystem Hierarchy Standard)的標準出來了。
四種交互作用的形態
1.可分享的: 可以分享給其他系統掛載使用的目錄,所以包括執行文件與用戶的郵件等數據,是能夠分享給網路上其他主機掛載用的目錄。(總結就是對系統運作沒影響的文件)
2.不可分享的: 自己機器上面運作的裝置文件或是與程式有關的socket文件等,由於僅與自身機器有關,所以當然就不適合分享給其他主機了。(總結就是會對系統運作有影響的文件)
3.不變的: 有些數據時不會經常變動的,跟隨著distribution而不變動的。例如函式庫、主機服務配置文件等。
4.可變動的: 經常改變的數據,例如登錄文件、一般用戶可自行操作的文件。
根目錄(/)的意義與內容
根目錄是整個系統最重要的一個目錄。因為不但所有目錄都是由根目錄衍生出來的,並且根目錄還有開機/還原/系統修複等動作有關。所以可以看出根目錄是有多麼的重要。
因此FHS標準建議:根目錄(/)所在的分區槽應該越小越好(其實就是根目錄下的目錄越少越好,但是必要的還是不可少),且應用程式鎖安裝的軟體最好不要與根目錄放在同一個分區槽內,保持根目錄越小越好。如此不但性能較佳,根目錄所在的文件系統也較不容易發生問題。
由於上述的說明,FHS定義的根目錄(/)底下應該有下麵這些目錄
目錄 | 放置文件內容 |
---|---|
/bin | 存放的是root與一般賬號鎖使用的可執行文件目錄,主要有:cat,chmod,chown,date,mv,mkdir,cp,bash等常用指令。 |
/boot | 這個目錄主要放置開機會使用到的文件 |
/dev | 任何裝置和介面設備都是以文件的形態存在於這個目錄當中 |
/etc | 系統主要的配置文件幾乎都放置在這個目錄內,例如人員的賬號密碼文件、各種服務的啟始文件等 |
/lib | 開機時會用到的函式庫 |
/media | 放置移除的裝置,如軟盤、光碟、DVD等都是掛載於此目錄。 |
/mnt | 在早些時候,這個目錄用途和/media相同,後來這個目錄就用來暫時掛載的。 |
/opt | 第三方軟體放置的目錄 |
/run | 開機後所產生的各項信息文件 |
/sbin | 開機過程所需要的指令,例如開機、修複、還原系統等指令 |
/srv | 可視為service的縮寫,是一些網路服務啟動之後,這些服務所需要的數據目錄。例如服務www,www伺服器所需要的網頁子類就可以放置到/srv/www/裡面。 |
/tmp | 臨時存放目錄,重要的文件不要放這裡!切記切記。 |
/usr | 下麵再詳細介紹 |
/var | 下麵再詳細介紹 |
/home | 系統預設用戶的家目錄, cd ~ 就會回到你自己家啦。 |
/root | 系統管理員(root)的家目錄。 |
/lost+found | 這個目錄是使用標準的ext2/ext3/ext4文件系統格式才會產生的一個目錄,目的在於當文件系統發生錯誤時,將一些遺失的片段放置到這個目錄下。如果是xfs文件系統就不放存放到這。 |
/proc | 放置的數據都是在記憶體當中的,例如系統核心、進程信息、裝置的狀態以及網路狀態等等。 |
/sys | 與/proc類似,主要記錄核心與系統硬體信息。 |
/usr的意義與內容
/usr裡面放置的數據屬於可分享與不可變動的內容。很多讀者都會誤會/usr為/user的縮寫(其實我也是),其實是Unix Software Resources的縮寫,即Unix操作系統軟體資源。
目錄 | 應放置文件內容 |
---|---|
/usr/bin/ | 所有一般用戶能夠使用的指令都放在這裡,CentOS 7 已將全部用戶的指令放到這裡,而且使用連接檔(暫時理解為快捷方式,後續文章會對其詳解)的方式將/bin連結到此。 |
/usr/lib/ | /lib的連結檔 |
/usr/local/ | 系統管理員在本機自行安裝的軟體,建議安裝到此目錄。 |
/usr/sbin/ | /sbin的連結檔 |
/usr/share/ | 只讀的數據文件,也包括共用文件,我們的男人 man(聯機幫助文件)就是存放於此 |
/usr/games/ | 游戲相關文件 |
/usr/include/ | c/c++等程式語言的文件頭(header)與引用文件(include)放置處。 |
/usr/libexec/ | 某些不被一般使用者管用的執行文件或腳本 |
/usr/src/ | 一般的源碼建議放到這裡,src有source的意思。 |
/var的意義與內容
如果/usr是安裝時會占用較大的硬碟的目錄,那麼/var就是在系統運行後才會漸漸占用硬碟容量的目錄,因為/var目錄主要針對常態性變動的文件。包括緩存(cache)、登錄文件、以及某些軟體運行時所產生的文件
目錄 | 應防止文件內容 |
---|---|
/var/cache/ | 應用程式本身運行過程產生的一些暫存文件(緩存文件)。 |
/var/lib/ | 程式執行過程所需要的數據文件放置的目錄。如MYSQL資料庫放置到/var/lib/mysql/ |
/var/lock/ | 某些資源一次只能被一個應用所使用到的。就放置在此目錄,因為lock上鎖嘛~ |
/var/log/ | 灰常重要!登錄文件放置的目錄!如/var/lib/messages |
/var/mail | 放置個人電子郵箱的目錄 |
/var/run | 某些程式或服務啟動後,會將他們的PID放置到這個目錄下。 |
/var/spool | 這個目錄通常存放一些隊列數據,如數據隊列。 |
絕對路徑與相對路徑
絕對路徑
由根目錄(/)開始寫起的文件名或目錄名稱,例如:/home/vagrant/
相對路徑
相對於目前路徑的文件名寫法。例如: ../home,比較特殊的連個目錄:
.
代表當前目錄,也可以使用./
..
代表上層目錄,也可以使用../
出處:https://www.cnblogs.com/Johnson-lin/
本文以學習、研究和分享為主,如需轉載,請標明作者和出處,非商業用途