Linux文件系统层级标准fhs,文件系统层次标准(FHS)简介
原標(biāo)題:文件系統(tǒng)層次標(biāo)準(zhǔn)(FHS)簡介
當(dāng)你好奇地看著系統(tǒng)的根目錄(/)的時(shí)候,可能會發(fā)現(xiàn)自己有點(diǎn)不知所措。大多數(shù)三個(gè)字母的目錄名稱并沒有告訴你它們是做什么的,如果你需要做出一些重要的修改,那就很難知道在哪里可以查看。
-- Jonathan Terrasi
本文導(dǎo)航
-有用的工具05%
-根目錄之旅24%
-結(jié)尾84%
當(dāng)你好奇地看著系統(tǒng)的根目錄(/)的時(shí)候,可能會發(fā)現(xiàn)自己有點(diǎn)不知所措。大多數(shù)三個(gè)字母的目錄名稱并沒有告訴你它們是做什么的,如果你需要做出一些重要的修改,那就很難知道在哪里可以查看。
我想給那些沒有深入了解過自己的根目錄的人簡單地介紹下它。
有用的工具
在我們開始之前,這里有幾個(gè)需要熟悉的工具,它們可以讓您隨時(shí)挖掘那些您自己找到的有趣的東西。這些程序都不會對您的文件進(jìn)行任何更改。
最有用的工具是 ls -- 它列出了使用完整路徑或相對路徑(即從當(dāng)前目錄開始的路徑)作為參數(shù)給出的任何目錄的內(nèi)容。
$ls路徑
當(dāng)您進(jìn)一步深入文件系統(tǒng)時(shí),重復(fù)輸入長路徑可能會變得很麻煩,所以如果您想簡化這一操作,可以用 cd 替換 ls 來更改當(dāng)前的工作目錄到該目錄。與 ls 一樣,只需將目錄路徑作為 cd 的參數(shù)。
$cd路徑
如果您不確定某個(gè)文件是什么文件類型的,可以通過運(yùn)行 file 并且將文件名作為 file 命令的參數(shù)。
$file文件名
最后,如果這個(gè)文件看起來像是適宜閱讀的,那么用 less 來看看(不用擔(dān)心文件有改變)。與最后一個(gè)工具一樣,給出一個(gè)文件名作為參數(shù)來查看它。
$less文件名
完成文件翻閱后,點(diǎn)擊 q 鍵退出,即可返回到您的終端。
根目錄之旅
現(xiàn)在就開始我們的旅程。我將按照字母順序介紹直接放在根目錄下的目錄。這里并沒有介紹所有的目錄,但到最后,我們會突出其中的亮點(diǎn)。
我們所有要遍歷的目錄的分類及功能都基于 Linux 的文件系統(tǒng)層次標(biāo)準(zhǔn)(FHS)。Linux 基金會[1]維護(hù)的 Linux FHS 幫助發(fā)行版和程序的設(shè)計(jì)者和開發(fā)人員來規(guī)劃他們的工具的各個(gè)組件應(yīng)該存放的位置。
通過將各個(gè)程序的所有文件、二進(jìn)制文件和幫助手冊保存在一致的組織結(jié)構(gòu)中,FHS 讓對它們的學(xué)習(xí)、調(diào)試或修改更加容易。想象一下,如果不是使用 man 命令找到使用指南,那么你就得對每個(gè)程序分別尋找其手冊。
按照字母順序和結(jié)構(gòu)順序,我們從 /bin 開始。該目錄是存放所有核心系統(tǒng)二進(jìn)制文件的地方,其包含的命令可以在 shell (解釋終端指令的程序)中使用。沒有這個(gè)目錄的內(nèi)容,你的系統(tǒng)就基本沒法使用。
接下來是 /boot 目錄,它存儲了您的計(jì)算機(jī)啟動所需的所有東西。其中最重要的是引導(dǎo)程序和內(nèi)核。引導(dǎo)程序是一個(gè)通過初始化一些基礎(chǔ)工具,使引導(dǎo)過程得以繼續(xù)的程序。在初始化結(jié)束時(shí),引導(dǎo)程序會加載內(nèi)核,內(nèi)核允許計(jì)算機(jī)與所有其它硬件和固件進(jìn)行接口。從這一點(diǎn)看,它可以使整個(gè)操作系統(tǒng)工作起來。
/dev 目錄用于存儲類似文件的對象來表示被系統(tǒng)識別為“設(shè)備”的各種東西。這里包括許多顯式的設(shè)備,如計(jì)算機(jī)的硬件組件:鍵盤、屏幕、硬盤驅(qū)動器等。
此外,/dev 還包含被系統(tǒng)視為“設(shè)備”的數(shù)據(jù)流的偽文件。一個(gè)例子是流入和流出您的終端的數(shù)據(jù),可以分為三個(gè)“流”。它讀取的信息被稱為“標(biāo)準(zhǔn)輸入”。命令或進(jìn)程的輸出是“標(biāo)準(zhǔn)輸出”。最后,被分類為調(diào)試信息的輔助性輸出指向到“標(biāo)準(zhǔn)錯(cuò)誤”。終端本身作為文件也可以在這里找到。
/etc(發(fā)音類似工藝商業(yè)網(wǎng)站 “Etsy”,如果你想讓 Linux 老用戶驚艷一下的話,囧),許多程序在這里存儲它們的配置文件,用于改變它們的設(shè)置。一些程序存儲這里的是默認(rèn)配置的副本,這些副本將在修改之前復(fù)制到另一個(gè)位置。其它的程序在這里存儲配置的唯一副本,并期望用戶可以直接修改。為 root 用戶保留的許多程序常用一種配置模式。
/home 目錄是用戶個(gè)人文件所在的位置。對于桌面用戶來說,這是您花費(fèi)大部分時(shí)間的地方。對于每個(gè)非特權(quán)用戶,這里都有一個(gè)具有相應(yīng)名稱的目錄。
/lib 是您的系統(tǒng)賴以運(yùn)行的許多庫的所在地。許多程序都會重復(fù)使用一個(gè)或多個(gè)功能或子程序,它們經(jīng)常會出現(xiàn)在幾十上百個(gè)程序中。所以,如果每個(gè)程序在其二進(jìn)制文件中重復(fù)寫它需要的每一個(gè)組件,結(jié)果會是產(chǎn)生出一些大而無當(dāng)?shù)某绦?#xff0c;作為更好的替代方案,我們可以通過進(jìn)行“庫調(diào)用”來引用這些庫中的一個(gè)或多個(gè)。
在 /media 目錄中可以訪問像 USB 閃存驅(qū)動器或攝像機(jī)這樣的可移動媒體。雖然它并不是所有系統(tǒng)上都有,但在一些專注于直觀的桌面系統(tǒng)中還是比較普遍的,如 Ubuntu。具有存儲能力的媒體在此處被“掛載”,這意味著當(dāng)設(shè)備中的原始位流位于 /dev 目錄下時(shí),用戶通??梢栽谶@里訪問那些可交互的文件對象。
/proc 目錄是一個(gè)動態(tài)顯示系統(tǒng)數(shù)據(jù)的虛擬文件系統(tǒng)。這意味著系統(tǒng)可以即時(shí)地創(chuàng)建 /proc 的內(nèi)容,用包含運(yùn)行時(shí)生成的系統(tǒng)信息(如硬件統(tǒng)計(jì)信息)的文件進(jìn)行填充。
/tmp 正如其名字,用于放置緩存數(shù)據(jù)等臨時(shí)信息。這個(gè)目錄不做其他更多的事情。
現(xiàn)代 Linux 系統(tǒng)上大多數(shù)程序的二進(jìn)制文件保存在 /usr 目錄中。為了統(tǒng)一包含二進(jìn)制文件的各種目錄,/usr 包含 /bin、/sbin 和 /lib 中的所有內(nèi)容的副本。
最后,/var 里保存“可變variable”長度的數(shù)據(jù)。這里的可變長度數(shù)據(jù)的類型通常是會累積的數(shù)據(jù),就像日志和緩存一樣。一個(gè)例子是你的內(nèi)核保留的日志。
為了避免硬盤空間用盡和崩潰的情況,/var 內(nèi)置了“日志旋轉(zhuǎn)”功能,可刪除舊信息,為新信息騰出空間,維持固定的最大大小。
結(jié)尾
正如我所說,這里介紹的絕對不是您在根目錄中可以找到的一切,但是確定系統(tǒng)核心功能所在地是一個(gè)很好的開始,而且可以更深入地研究這些功能是什么。
所以,如果你不知道要學(xué)習(xí)什么,就可能有很多的想法。如果你想得到一個(gè)更好的想法,就在這些目錄中折騰自己吧!
作者簡介:
自 2017 年以來 Jonathan Terrasi 一直是 ECT 新聞網(wǎng)的專欄作家。他的主要興趣是計(jì)算機(jī)安全(特別是 Linux 桌面),加密和分析政治和時(shí)事。他是全職自由作家和音樂家。他的背景包括在芝加哥委員會發(fā)表的保衛(wèi)人權(quán)法案文章中提供技術(shù)評論和分析。
總結(jié)
以上是生活随笔為你收集整理的Linux文件系统层级标准fhs,文件系统层次标准(FHS)简介的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: office2010c盘_Microso
- 下一篇: linux绑定ip mac地址,人文网-