一切即文件 「給不一樣的問題提供相同的解決方式」node
在linux中全部的設備都被當作一個文件來處理,包括咱們的IO設備也是同樣的,通常來講,他們被放在/dev這個目錄下linux
eg: IDE硬盤 /dev/hd[a-p] (a-p是它的編號)ide
磁盤分區表ui
a.主引導分區MBR:安裝引導加載程序,共446bytesspa
b. 分區表:記錄整塊硬盤分區的狀態,共64bytes3d
分區表位於第一扇區的MBR裏,記錄了每一個分區的範圍,咱們所說的分區實際上是在對分區表作設置日誌
**分區表默認會寫入四組分區orm
BIOS:開機執行的第一個程序blog
CMOS:記錄硬盤各項參數,嵌入在主板的存儲器索引
開機流程:BIOS根據用戶設置取得能開機的硬盤->讀取第一扇區MBR->MBR中的引導加載程序來加載內核文件->內核文件工做
[TAB] 補全命令
[CTRL]+c 中止當前正在運行的程序
[CTRL]+d 直接離開文字界面,至關於exit
使用man命令查詢某個命令的參數是咱們會看見被查詢的命令含有一個編號例如:man date 就會看見 DATE(1)
編號表明的意思與該文件用途有關以下表:
try:man null
試試上面的命令,咱們會發現NULL(4),對照上面的意思看看它是什麼意思
正確的關機方法:由於Linux能夠多用戶工做,因此咱們在關機前務必查看誰在線(使用who命令),
不要暴力關機不要破壞別人的數據
關機以前要通知在線用戶 可使用shutdown和erboot命令~
在系統重啓活或者關機以前多使用幾回sycn
系統運做模式: 0 關機 3 純命令模式 5 圖形界面 6 重啓
普通用戶權限: r - 讀 w - 寫 x - 執行
改變權限命令: chmod、chattr(隱藏權限) (參數都可使用man查詢)
查看權限命令: ll 、llattr
改變文件所屬用戶組:chagrp
(文件擁有者,文件擁有用戶組,其餘人)
改變用戶全部者:chown
文件種類:
普通文件 [ - ]、目錄[ d ]、鏈接文件[ l ]
塊設備文件:存儲文件,硬盤、軟盤
字符設備文件:串行端口接口文件,鍵盤、鼠標等
EXT2文件系統:Linux的正規文件系統(文件系統規定的文件屬性/權限不一樣)
inode:文件權限和屬性,記錄文件數據所在的block編號
data block:實際數據(文件大時可能會佔用多個block)
superblock:記錄文件系統的總體信息
根據inode裏的信息咱們能夠找到存放文件數據的block,這種文件系統被稱爲索引式文件系統
*若是一個文件存儲的block太分散在讀取的時候磁盤尋址時間就會更久因此所謂的「碎片」
碎片整理即將同一個文件所屬的block匯合在一塊兒
block
Block大小根據實際狀況選擇,若是說選擇4KB而存儲的全是小文件就會形成不少的浪費
inode
訪問模式,全部者,大小,建立和狀態改變時間,最近讀取時間,最近修改時間,特性標誌,內容指向
每一個inode大小是128b 是每一個文件都佔用一個ionode
*文件系統可以建立的文件數量和inode的數量有關
讀取文件時先找到inode並查看權限是否吻合,若是吻合再找到相應的block
指向block方式:直接,間接,單間接,雙間接,三間接
總額:直接+間接
superblock
block和inode的總量,文件系統掛載時間,block,inode大小,validbit數值:若是一個文件系統被掛在則爲0不然爲1
塊對照表,inode對照表,文件系統說明
*大小爲1024b 每一個區段的superblock可用dumpe2fs查詢
查看目錄裏的文件佔用的inode的號碼使用ls -i
讀取一個文件的流程
新增一個文件的流程:
1.肯定用戶對於該文件的權限是否有w x,若是有才能添加
2.根據inode bitmap找到沒有使用的inode號碼,將新文件的屬性和權限寫入
3.查找block bitmap找到沒有使用的block號碼,並將實際的數據寫入,更新inode對於block的指向
4.更新inode bitmap和block bitmap
**日誌文件系統:解決數據不一致狀態問題(Ext3)
咱們在文件系統中專門劃分一塊block專門用於記錄文件寫入或者修訂的步驟
預備:系統要寫入一個文件時先記錄要寫入的信息
寫入:寫入文件數據,更新meta data
結束:完成更新meta data以後記錄下來