歡迎您光臨本站 註冊首頁

Linux中的文件系統

←手機掃碼閱讀     火星人 @ 2014-03-09 , reply:0
Linux操作系統中的文件系統
文件系統是對一個存儲設備上的數據和元數據進行組織的機制.
文件系統是Linux操作系統的重要組成部分,Linux文件具有強大的功功能.文件系
統中的文件是數據的集合,文件系統不僅包含著文件中的數據而且還有文件系統的結構,所 有Linux 用戶和程序看到的文件、目錄、軟連接及文件保護信息等都存儲在其中.
Linux系統中常用的文件系統:
ext2;ext3;ext4;
xfs;reiserfs;jfs(集群文件系統);iso9660;swap;
GFS2;OCFS2(oracle的文件系統);NFS;SMBFS(cifs)
VFAT;NTFS;
一)相關知識
1、文件的數據包括文件的元數據(相關屬性信息)和文件的內容信息;
2、inode表(inode Table)
我們知道,一個文件除了數據需要存儲之外,一些描述信息也需要存儲,例如文件類型(常
規、目錄、符號鏈接等),許可權,文件大小,創建/修改/訪問時間等,也就是ls -l命令看 到的那些信息,這些信息存在inode中而不是數據塊中.每個文件都有一個inode,一個塊組 中的所有inode組成了inode表.
3、目錄--目錄也是一個文件,存放通過該目錄可以直接找到的文件名,和對應的
inode信息;
4、塊點陣圖(Block Bitmap)就是用來描述整個塊組中哪些塊已用哪些塊空閑的,
它本身佔一個塊,其中的每個bit代表本塊組中的一個塊,這個bit為1表示該塊已用,這個 bit為0表示該塊空閑可用.
5、inode點陣圖(inode Bitmap)和塊點陣圖類似,本身佔一個塊,其中每個bit表示
一個inode是否空閑可用.


6、數據塊(Data Block)
a、對於常規文件,文件的數據存儲在數據塊中.
b、對於目錄,該目錄下的所有文件名和目錄名存儲在數據塊中,注意文
件名保存在它所在目錄的數據塊中,除文件名之外,ls -l命令看到的其它信息都保存在該 文件的inode中.注意這個概念:目錄也是一種文件,是一種特殊類型的文件.
c、對於符號鏈接,如果目標路徑名較短則直接保存在inode中以便更快地
查找,如果目標路徑名較長則分配一個數據塊來保存.
d、設備文件、FIFO和socket等特殊文件沒有數據塊,設備文件的主設備
號和次設備號保存在inode中.
二)分區的創建
#fdisk DEV_NAME
p --顯示分區表
n --增加一個分區
e--新建擴展分區
p--新建主分區
#{K|M|G}--分配多少空間
d --刪除一個分區
t --改變分區的系統id
l --列出磁碟分區的系統id
w --保存修改並退出
q --放棄修改並退出
(注!!!)新建一個分區時,系統可能沒有識別,這時需要命令:partprobe
DEV_NAME --系統重新掃描磁碟
sfdisk --
-d /dev/sdb --顯示磁碟分區表;
eg:sfdisk -d /dev/sdb > /root/sdb.partion.bak
格式化:(高級格式化)
#mkfs -t TYPE /dev/sdb1
-L label --指定卷標
#e2label /dev/sdb1:顯示卷標;
#e2label /dev/sdb1 LABEL :指定卷標;
mkfs -t ext2=mkfs.ext2
#mke2fs /dev/sdb1--格式化為ext2
-j--ext3
-L --指定卷標
-b --指定塊大小{1024|2048|4096},默認為4096,4K(取決於頁
框『page frame』的大小)
-c--創建文件系統前檢查分區是否有壞塊;


-i--決定inode的個數;指定位元組/inode 的比例;
-N--直接指定inode的個數;
-m--預留給超級用戶的磁碟塊的百分比(默認為5%)
#mount --顯示當前系統上所有已掛載的文件系統;(/etc/mtab--隨時記錄當前系
統上掛載的文件系統)
-t--指定文件系統類型;
-a--掛載所有文件系統(/etc/fstab)
-n--掛載時不更新/etc/mtab文件;
-r--只讀掛載;
-w--讀寫掛載;
-L label --把卷標為label的設備掛載到指定的掛載點
-U uuid
-o 指定掛載時的選項;
async --非同步寫入;
atime --更新訪問時間』
auto -- 自動掛載;
defaults--
exec--具有執行許可權的文件可自動執行;
dev--允許在分區上創建設備文件;
noatime--不更新訪問時間;
remount--重新掛載;mount -o remount,rw /mnt
ro--只讀
rw--讀寫
user--允許普通用戶掛載 ;
loop--掛載迴環設備(iso)
--bind --將兩個目錄綁定起來;
mount DEV mount_point
mount [-t fstype] [option] DEV MOUNT_POINT
#umount DEV
#umount mount_point
#fuser -v MOUNT_POINT --查看那個用戶的那個進程在訪問掛載點;
#fuser -km MOUNT_POINT --將訪問掛載點的進程kill掉
#blkid DEV--查看文件系統類型;
UUID--磁碟分區的編號;
三)文件管理相關命令
#du --查看文件大小
option:-h --以M為單位顯示;
-s --顯示目錄及文件的總大小;
#df --顯示每一個分區的磁碟空間的使用情況
-h --以M為單位顯示
-i --顯示分區inode的個數
文件壓縮/解壓縮的相關命令
#gzip --只能壓縮文件,不能壓縮目錄
-d --解壓
-c --壓縮完成後不刪除原文件


eg:gzip -c FILE > FLIE.gz
-t --用於測試壓縮文件的完整性;
-# --#(1-9)指定壓縮比(數值越大,壓縮比越大,速度越慢)
與之對應的解壓縮命令#gunzip FILE.gz(解壓后原文件被刪除!)
#zcat --在不解壓的情況下查看文件內容
格式:zcat FILE.gz
#bzip2 --功能強大的文件壓縮工具
-d --解壓
-k --壓縮完成後不刪除原文件
-t --用於測試壓縮文件的完整性;
-# --#(1-9)指定壓縮比(數值越大,壓縮比越大,速度越慢)
#bzcat FILE.bz2 --不解壓直接查看文件;
#bunzip2 FILE.bz2
#zip ZIPFILE FILE,...
eg:zip inittab.zip inittab,message --先指定壓縮后的名稱,再指定
需要壓縮的文件名
#unzip ZIPFILE --解壓縮

文件歸檔工具:
#tar --打包多個文件,並不壓縮文件
-c --創建歸檔文件
-f --指定歸檔文件名
-x --展開歸檔文件
-t -- 在不展開歸檔文件的情況下,查看裡面存在什麼文件
-v -- 顯示文件打包工程的詳細信息
-z --使用gzip壓縮
-j --使用bzip2壓縮
-C --指定展開的歸檔文件的目錄
常用選項的組合
eg:tar -zcf --既歸檔有壓縮文件
tar -zxf --展開既歸檔又壓縮的文件
總結:文件系統是操作系統用於明確磁碟或分區上的文件的方法和數據結構;即在磁碟上組織文件的方法.了解文件系統的工作原理,有助於我們更好的利用磁碟空間,也不會出現一些誤操作,進而保障文件系統的安全,穩定.

本文出自 「Linux」 博客,請務必保留此出處http://wld6linux.blog.51cto.com/4356376/780806


[火星人 ] Linux中的文件系統已經有386次圍觀

http://coctec.com/docs/linux/show-post-47094.html