在檔案系統方面,Linux可以算得上作業系統中的 “瑞士軍刀”。Linux 支援許多種檔案系統,從日志型檔案系統到叢集檔案系統和加密檔案系統,而“什麼是檔案系統”?檔案系統是對一個儲存設備上的資料和中繼資料進行組織的機制。
常見的檔案系統:ext2、ext3、ext4、xfs、jfs、reiserfs、iso9660、swap、VFAT、
VFS等
例如:EXT2 XFS JFS REISERF3等都是單個檔案系統使用
說到檔案系統,就要說一下硬碟,硬碟出廠後的第一次格式化叫做低級格式化,其作用主要是為了建立磁道,同一個編号的磁道形成一個柱面,分區時則是按照柱面進行分區,從外到裡從低到高進行劃分。每一個分區可以獨立的建立一個檔案系統。
Linux 以一組通用對象的角度看待所有檔案系統。這些對象是超級塊(superblock)、inode、dentry 和檔案。超級塊在每個檔案系統的根上,超級塊描述和維護檔案系統的狀态。檔案系統中管理的每個對象(檔案或目錄)在 Linux 中表示為一個 inode。
inode 包含管理檔案系統中的對象所需的所有中繼資料(包括可以在對象上執行的操作)。另一組結構稱為 dentry,它們用來實作名稱和 inode 之間的映射,有一個目錄緩存用來儲存最近使用的 dentry。dentry 還維護目錄和檔案之間的關系,進而支援在檔案系統中移動。最後,VFS 檔案表示一個打開的檔案;注:inode:用于存放權限,屬主屬組,大小,類型,磁盤塊的指向;目錄:每一個目錄需要一個inode,存放檔案名;位圖:索引inode 非為0/1;磁盤塊位圖:标志磁盤塊有沒有被使用。
和檔案系統有聯系的指令:
1、ln:
格式:ln [options] SRC DST 預設建立的是硬連結(不能跨分區),從檔案系統的實作上來說,硬連結其實就是将一個檔案的的的inode号多次利用,具有不同的指針,隻要結點的連接配接數不是0,檔案就一直存在,不管你删除的是源檔案還是連接配接的檔案。
常用參數:-s:建立軟連接配接,是一個獨立的檔案,使用了一個新的inode号,引用的路徑,而且可以為目錄建立,并且可以跨分區。
是以在對某些檔案進行複制,剪切和删除時其實質分别是:複制:将存有的資料所在的磁盤塊進行複制一份,并使用新的inode号,建立相應的映射,而剪切則不動資料塊,隻是将inode号中的檔案路徑映射修改了,這就是為什麼有時候我們在同一個分區上移動一個很大的檔案時,也能迅速完成的原因,而删除則是将inode号辨別為0,清除其資訊,然後将磁盤塊辨別為未使用,當有新的資料存入時就将原來的資料覆寫,由此當誤删了一些資料時隻要還未向原有位置寫入新的資料時,那些被誤删的資料均是可以找回的,像一些軟體上的粉碎功能則是想原檔案資料存儲的位置重新寫入01代碼,進而達到删除原資料的目的。
2、檔案管理
(1).du:用于估算目錄和檔案的使用量
參數:
-h:機關換算,使大小以M機關顯示
-s:顯示目錄以及目錄中所有檔案的大小
例如:#du -sh /etc
(2).df:用于顯示目前系統磁盤的使用情況
-h:機關換算
-i:顯示inode的使用情況
例如:#df -ih
(3).fdisk:磁盤管理
-l:列出目前系統的每一個磁盤及其目前分區的情況
例如:#fdisk -l
(4).壓縮工具gzip/bzip2/zip/compress/xz/7z
[1]gzip:壓縮檔案-->gunzip:解壓檔案
例如:#gzip FILENAME
#gunzip FILEMAME
-d:解壓縮
-c:gzip -c messages > messages.gz 壓縮後保留源檔案
-t:測試壓縮檔案壓縮以後是否完整
-#:(1-9)指定壓縮比,預設是6.
zcat:在不解壓的情況下檢視檔案
[3]zip:可以壓縮目錄
格式:zip [選項] 壓縮後的檔案名.zip 需要壓縮的檔案
例如:#zip message.zip message
例如:#zip myfilezip.zip message inittab 壓縮多個檔案
unzip:解壓縮
[4]tar:檔案的歸檔工具
tar tarfile.tar 檔案或目錄
-c:建立歸檔
-x:展開歸檔
-f:歸檔後檔案名
-t:不展開檢視歸檔中的檔案
-v:顯示整個歸檔回展開的過程
-z:在建立直接壓縮 gzip
-j:在建立直接壓縮 bzip2
-C:指定展開之後存放路徑
例如:#tar -cf mytar.tar message inittab 建立歸檔
例如:#tar -xf mytar.tar
例如:#tar -tf mytar.tar
例如:#tar -zcf
例如:#tar -zxf
例如:#tar xf mytar.tar.gz -C /tmp/test
3、分區:在硬碟的0扇區0磁道存放的是MBR其大小是512個位元組,其中前446哥位元組是引導扇區俗稱“BootLoader”,存放的是系統啟動的引導,其中的64個位元組是FAT分區清單,每16個位元組可以引導一個主分區,而這就是我們通常所說的一塊硬碟,隻能建立最多4個主分區,或者3主一擴充,剩下的2哥位元組是封裝碼占用。
當分區表出現錯誤或者被破壞的時候,就無法正常進入系統,是以要對系統的分區表進行備份.
指令:
sfdisk:儲存備份分區表資訊
-d:#sfdisk -d /dev/sdb > /root/sdb.part.bak 将某個磁盤的分區表儲存
#sfdisk /dev/sdb < /root/sdb.part.bak
Linux識别磁盤裝置規則:IDE或者ATA裝置被識别為hd;SATA、SCSI、USB等裝置被識别為sd; 多塊磁盤裝置時用a,b,c等字母加以差別,形如:/dev/hda /dev/hdb /dev/sda /dev/sdb
建立分區:fdisk /dev/sda
其中的子指令:
w:儲存修改并退出
p:顯示磁盤清單
n:添加一個新的分區
d:删除一個分區
q:放棄修改并退出
在分區建立完成之後,并不是立即生效,需要使用指令:
partprobe /dev/sda 通知核心重新掃描磁盤sda資訊,後若不跟磁盤名,則會掃描所有的磁盤
4、格式化:這次的格式化被稱為進階格式化
在linux下任何的磁盤或分區沒有進行格式化是不能使用的
mkfs -t TYPE DEVICE
例如:#mkfs -t ext3 /dev/sdb1
-L:指定卷标
例如:#e2label /dev/sdb1顯示其卷标
例如:#e2label /dev/sdb1 HELLO 設定卷标
mke2fs /dev/sdb2
-j:把對應的磁盤分區建立為ext3類型
-b:指定塊大小{1024|2048|4096}
-c:建立檔案系統時是否要檢查磁盤是否有壞道
-i:指定一個比例,每多少個位元組使用一個inode号{128預設|256}
-N:直接指定inode的個數
-m:指定預留給管理者的磁盤百分比
5、挂載
在Linux下任何一個儲存設備想要被通路,必須将這個裝置與根下的一個目錄相關聯起來,作為一個通路接口,而這個過程叫做挂載,去除關聯關系就叫做解除安裝。
格式:mount 裝置 挂載點
例如#mount 顯示目前所有已經挂載的檔案系統
#mount /dev/cdrom /media 将dev下的cdrom磁盤挂載到media
參數格式:mount [-t fstype] [option] 裝置 挂載點
-a:挂載所有的檔案系統 /etc/fstab #mount -a
-n:挂載時不更新/etc/mtab檔案
-r:隻讀挂載
-w:讀寫挂載
-L label:指定卷标進行挂載
-U:指定uuid進行挂載
-o:明确指定挂載選項
async:異步寫入
atime:當通路時自動更新時間
auto:可以自動挂載
exec:允許具有執行權限的檔案執行
nouser:禁止普通使用者挂載此裝置
remount:重新挂載(某個屬性沒打開,需要打開時使用此項)
ro:隻讀
rw:隻寫
例如:#mount -o ro /dev/sdb1 /mnt 以隻讀方式将dev下的sdb1分區挂載到/mnt
例如:#mount -o remount,rw /mnt
loop:挂載一個本地裝置
例如:#mount -o loop rhci.iso /mnt 挂載一個iso
6、umount:裝置解除安裝
umount 挂載點/挂載的裝置
例如:#umount /dev/sdb2
blkid DEV:檢視裝置的檔案類型
7、檢查檔案系統
(1).fsck檢查檔案系統的不一緻(具體檢查inode與檔案不一緻)
參數:-t FILETYPE:指定檢測的檔案系統的類型
例如:#fsck -e ext3
efsck:用來專門檢測ext類的檔案系統
參數:-f:強行進行檢測
-p:自動修複檔案系統的不一緻
-B:指定磁盤塊的大小
(2).dumpe2fs:詳細的顯示ext2 ext3檔案系統的資訊
參數:-f:即使檔案系統不一緻也要詳細顯示其資訊
-h:隻顯示超級塊的詳細資訊
tune2fs:修改ext類的檔案系統的屬性
參數:-j:将ext2檔案類型更新為ext3(不影響磁盤上的資料)
-m:修改保留給root使用者的磁盤塊與inode的百分比
-r:直接指定塊的個數
-L:設定卷标
-l:顯示超級快的資訊
-c:修改每隔多少次挂載後進行自檢
-i:設定每隔多少天進行一次自檢,預設機關是天
-u:指定使用者
-o:指定預設的挂載功能
(3).交換分區swap(必須是一個獨立的分區,其作用相當與windows中的虛拟記憶體,當實體記憶體即将用完或者不夠使用時才會使用到交換分區)
free -m:以M為機關顯示記憶體資訊
格式化:mkswap
參數:-L:指定卷标
啟用交換分區:swapon DEV
關閉交換分區:swapoff DEV
啟動全部:swapon -a
檢查其狀态:swapon -s
(4).建立一個本地回環檔案,也可以了解為複制,可以說是直接複制磁盤塊
格式:dd if=FILE of=FILE bs=NU count=NU
if=FILE:要複制的檔案
of=FILE:目标
bs:一次複制的機關多大,預設機關位元組
count:複制多少個塊
#dd if=/etc/issue of=/tmp/abc
#dd if=/dev/sda of=/root/mbr.bak bs=512 count=1 備份mbr Mater Boot Record
#dd if=/dev/zero of=/var/swapfile bs=1M count=1 建一個1M本地回環檔案
/dev/null
/dev/zero 用于初始化一個分區
(5)./ect/fstab 開機自動挂載的檔案系統
6個字段:
DEV-name | DEV-label | DEV-uuid
挂載點:
檔案系統類型:
挂載選項(defaults);
轉儲頻率:備份{0,1,2}{從不備份,一天一次,兩天一次}
自檢次序:{0,1,2}{從不,第一,第二},第一隻能為根
<a target="_blank" href="http://blog.51cto.com/attachment/201202/141636521.jpg"></a>
本文轉自 向陽草米奇 51CTO部落格,原文連結:http://blog.51cto.com/grass51/785156,如需轉載請自行聯系原作者