Linux裏文件擴展名和文件類型沒有關係,Linux系統中一切皆文件html
純文本文件(能夠cat的)
二進制文件(Linux的可執行文件等,如/bin/cp)
數據格式文件:有程序運行過程當中讀取某些特定格式的文件,經過last讀取(cat報亂碼錯誤)
wholog ==>who /var/log/wtmp
套接口文件:socket進程之間通訊用 進程數據庫的通訊文件
管道文件:(不重要)
附:文件類型【man find 搜索type可看 】
node
源碼.tar.gz
.sh: shell腳本文件 shell語言開發
.pl: perl語言文件 用perl語言開發
.py:使用python語言開發
.html:網頁文件
.conf: 服務的配置文件
.lock: 鎖文件
.rpm: rpm安裝包python
Inode其實是一個64字節的磁盤地址表。操做系統讀取硬盤的時候,不會一個個扇區地讀取,這樣效率過低,而是一次性連續讀取多個扇區,即一次性讀取一個"塊"(block),而後將散列在磁盤的文件組成一個邏輯文件。
這種由多個扇區組成的"塊",是文件存取的最小單位。
"塊"的大小,最多見的是4KB,即連續八個扇區sector組成一個塊block。
操做系統讀取的時候,根據磁盤地址表的順序,一次讀取塊中的內容,
stat:命令,查看某個文件的inode信息:
一、惟一表示,內核根據此區別文件是否同一文件。Linux讀取文件首先讀取這個索引點。
二、每一個Linux存儲設備(U盤,硬盤==> 整本書)或者存儲設備的分區被格式化後使用
三、inode的大小在文件系統被格式化後就沒法更改,格式化前能夠指定inode的大小
查看分區信息-->inode大小:
dumpe2fs /dev/sda1 | grep -i "inode size"
shell
Linux文件由2部分組成【inode + block】數據庫
第一部分是Inode(首頁目錄索引)
存放數據屬性[ls -l的顯示結果]以及實體文件的指向;
且文件的屬性不包括文件名 socket
第二部分是Block(書的每一頁)
存儲數據 (上級目錄存儲下一級目錄的文件名)
讀取文件流程:
1.cat file -> 2.indoe權限校驗 -->3.權限經過,訪問實體的文件內容(可能有多個block)性能
總結:
inode小結:
1.磁盤分區後生成必定數量的inode和block
2.inode是索引節點,存放文件的屬性信息以及真實的索引
3.ext4文件系統 blocK存放真實數據
4.inode是一塊存儲空間,C6是256字節
5.inode是一串數字,且在文件中有惟一標示,內核根據此查詢是不是同一文件spa
block總結:
1.磁盤讀取數據都是按照block爲單位讀取的
2.一個文件可能佔用多個block,每讀取一次都會消耗一次IO
3.若是要提高磁盤IO的性能,就儘量的一次性讀取儘可能多的數據
4.一個block只能存放一個文件的內容,不管內容多小。
若是block(非系統磁盤 4k) ,。那麼存放1k的文件就會浪費3k
5.block並不是越大越好。block太大對於小的文件會浪費磁盤空間。
例如,1000k的文件,block=4k,佔用250個block,消耗IO爲250次
block=1k,佔用1000個block,消耗IO爲1000次
6.block的設置是在格式化分區的時候
mkfs.ext4 -b 2048 -I 256 /dev/sdb
ext4文件通常設置4K操作系統