Linux文件系統

文件是什么?
存儲空間內存儲的有邊界的一段流式數據,對數據可以做到按名存取。
眾多文件是如何有效的組織起來?
1.  平面化
把眾多文件放在一起。當想查找某個文件時,需要遍歷所有文件,當文件數目足夠多的時候,查找一個文件將會非常慢,效率極低。
2.  層級結構化
根據后續查找文件的篩選條件進行分類,逐層放置,通常要查找一個文件,只需要從最高層級開始,逐層進行查找,最后在底層層級的存儲單元內進行文件遍歷,極大的提升了文件查找效率。

總結
從上述兩種管理方式的對比來看,針對于海量文件的管理來講,層級結構化管理,無疑是最適合的方式,Linux也采用了這種文件管理理念。

FHS(Filesystem Hierarchy Standard):文件系統層級結構標準
為了規范各Linux發行版的文件系統層級結構設定,FHS出現了,對目錄層級結構做出了如下定義:

目錄 | 目錄存在的目的
—— | ———————
/bin | 所有用戶可用的基本命令程序文件
/sbin | 供系統管理使用的工具程序
/boot | 引導加載器必須用到的各靜態文件:kernel, initramfs(initrd), grub等
/dev | 存儲特殊文件或設備文件(包括字符設備、塊設備)
/etc | 系統程序的靜態配置文件,只能是靜態的,不存放二進制可執行文件
/home | 普通用戶的家目錄的集中位置
/lib | 為系統啟動或根文件系統上的應用程序(/bin,/sbin等)提供共享庫,以及為內核提供內核模塊(/lib/modules目錄)
/lib64 | 64位系統特有的存放64位共享庫的路徑
/media | 便攜式設備掛載點,例如:cdrom, floppy等
/mnt | 其他文件系統的臨時掛載點
/opt | 附加應用程序的安裝位置
/root | root用戶的家目錄
/srv | 當前主機為服務提供的數據
/tmp | 為那些會產生臨時文件的程序提供的用于存儲臨時文件的目錄,可供所有用戶執行寫入操作,有特殊權限
/usr | 全局共享的只讀數據路徑,自己本身是一個層級結構
/var | 存儲經常發生變化的數據的目錄,自己本身是一個層級結構
/proc | 虛擬文件系統,為內核和進程存儲其相關信息,多為內核參數,例如:net.ipv4.ip_forward,虛擬為/proc/sys/net/ipv4/ip_forward
/sys | sysfs虛擬文件系統提供了一種比proc更為理想的訪問內核數據的途徑,其主要作用在于為管理Linux設備提供了一種統一模型的接口
 

設備文件包含字符設備和塊設備,其中

設備名 | 意義
———— | ———
字符設備      | 線性設備,有次序的,以字符為單位,比如鍵盤
塊設備          | 隨機訪問設備,可以實現隨機訪問,被分為指定大小的數據塊,比如磁盤

/lib目錄下的共享庫文件中

庫名類型 | 意義
———— | —–
libc.so.*  | C語言的動態鏈接庫
ld*          | 運行時鏈接器或加載器
modules | 存放內核模塊的目錄

/usr目錄層級結構

目錄 | 目錄存在的目的 | 是否必選
—— | ——————— | ————
bin | 大多數用戶命令 | 是
include | C程序用到的頭文件 | 是
lib | 庫文件 | 是
local | 讓系統管理員安裝本地應用程序,也通常用于安裝第三方應用程序,也是一個層級目錄 | 是
sbin | 非系統自身運行和維護需要用到的管理命令 | 是
share | 與架構無關的數據,例如命令幫助文件,命令自帶說明文件 | 是
X11R6 | X Windows程序的安裝位置,11是版本,6是發行號 | 否
games | 游戲和有關教育的二進制程序文件 | 否
lib64 | 其他可選庫文件 | 否
src | 源碼 | 否

/usr/local目錄層級結構

目錄 | 目錄存在的目的 
—— | ———————
bin | 本地二進制程序文件 
etc | 本地程序文件的配置文件存放目錄
games | 本地游戲程序文件
include | 本地C語言程序頭文件
lib | 本地庫文件
man | 本地在線幫助文檔
sbin | 本地系統程序文件
share | 本地與架構無關的層級目錄
src | 本地源碼

/var目錄層級機構

目錄 | 目錄存在的目的 
—— | ———————
cache | 應用緩存數據
lib | 變量狀態信息
local | /usr/local目錄的變量數據
lock | 鎖文件
log | 日志文件和目錄
opt | /opt目錄的變量數據
run | 正在運行進程的相關數據
spool | 應用程序的假脫機數據
tmp | 系統重新啟動時保存的臨時文件

/sys目錄的層級結構

目錄 | 目錄存在的目的 
—— | ———————
devices | 這是內核對系統中所有設備的分層次表達模型,也是/sys文件系統管理設備的最重要的目錄結構
dev | 這個目錄下維護一個按字符設備和塊設備的主次號碼(major.minor)連接到真實的設備(/sys/devices下)的符號鏈接文件,它是在內核2.6.26首次引入
bus | 這是內核設備按總線類型分層放置的目錄結構,devices中的所有設備都是連接于某種總線之下,在這里的每一種具體總線之下可以找到每一個具體設備的符號鏈接,它也是構成Linux統一設備模型的一部分
class | 這是按照設備功能分類的設備模型,如系統所有輸入設備都會出現在/sys/class/input之下,而不論它們是以何種總線連接到系統,它也是構成Linux統一設備模型的一部分
block | 這里是系統中當前所有的塊設備所在,從2.6.22開始已經標記為過時
firmware | 這里是系統加載固件機制的對用戶控件的接口,關于固件有專用于固件加載的一套API
fs | 這里按照設計是用于描述系統中所有文件系統,包括文件系統本身和按文件系統分類存放的已掛載點,但目前只有fuse, gfs2等少數文件系統支持sysfs接口
kernel | 這里是內核所有可調整參數的位置
module | 這里有系統中所有模塊的信息
power | 這里是系統中電源選項,這個目錄下有幾個屬性文件可以用于控制整個機器的電源狀態,如可以向其中寫入控制命令讓機器關機、重啟等

原創文章,作者:N27_sapbcs,如若轉載,請注明出處:http://www.www58058.com/86313

(0)
N27_sapbcsN27_sapbcs
上一篇 2017-09-05 09:46
下一篇 2017-09-05 21:41

相關推薦

  • N25-第四周作業

    1、復制/etc/skel目錄為/home/tuse1,要求/home/tuse1及其內部文件的屬組和其它用戶均沒有任何訪問權限。   cp -r /etc/skel /home/tuser1;chmod go= /home/tuse1 2、編輯/etc/group文件,添加組hadoop    vi /et…

    Linux干貨 2016-12-27
  • N22+張zhangzhang+第6周博客作業

    請詳細總結vim編輯器的使用并完成以下練習題   vim編輯器是vi編輯器的增強版,是全屏文本編輯器,用于完成文本的輸出、刪除、查找、替換、塊操作等眾多功能。一般分三種模式:編輯模式、輸入模式、末行模式。 vim各種按鍵的功能 編輯模式: 1、復制/etc/rc.d/rc.sysinit文件至/tmp目錄,將/tmp/rc.sysinit文件中的以…

    Linux干貨 2016-09-20
  • http

    http 筆記整理

    Linux干貨 2018-01-31
  • liunx文本處理三劍客及文本處理工具的使用與練習。

    linux文本處理三劍客: grep ==擅長過濾,把想要的或者不想要的分離開。linux三劍客 老三  -A: 除了顯示匹配的一行之外,并顯示該行之前的num行;-B:除了顯示匹配的一行之外,并顯示該行之后的num行;-C:除了顯示匹配的一行之外,并顯示該行之前后各num行     sed==擅長取行、替換。三劍客老…

    2017-07-28
  • grep常見應用實例

      在我們實際應用中,正則表達式的應用是非常廣泛的,今天我就大家分享幾個比較常見的正則表達式的應用實例,不周之處,還望高人多多指點!   一:使用正則表達式搜索郵箱地址 二:使用正則表達式搜索手機號 三:使用正則表達式搜索身份證號 四:使用正則表達式取網絡配置文件中的IP地址的過程解析   一:使用正則表達式搜索郵箱地址: [r…

    系統運維 2016-08-08
  • 軟件包管理

    軟件包的分類,主要有以下兩大類    源碼包    二進制包(rpm包,系統默認包) rpm包由Redhat公司提出,被眾多linux發行版所采用。 優點:建立統一的數據庫文件,詳細記錄軟件包的安裝、卸載等變化信息,能夠自動的分析軟件包依賴關系。 查詢已安裝的rpm軟件信息: 格式:     rpm…

    Linux干貨 2016-08-25
欧美性久久久久