Linux操作系統(tǒng)學(xué)習(xí)筆記 5 —— Linux磁盤與文件系統(tǒng)管理

1.文件系統(tǒng)的概念

文件系統(tǒng)(File System)是文件管理系統(tǒng)的簡稱,根據(jù)維基百科的描述,文件系統(tǒng)是用來組織數(shù)據(jù)在存儲介質(zhì)上的存儲方式以及檢索方式的。沒有文件系統(tǒng),信息在存儲介質(zhì)上會是一個很大的信息塊,沒法知道一條信息什么時候會結(jié)束,也沒法知道信息在什么時候開始,對信息的管理就會十分的麻煩。

2.df命令

df 檢查文件系統(tǒng)的磁盤空間占用情況。
顯示已掛載的文件系統(tǒng),相當(dāng)于在windows下打開計算機(jī)C、D、E盤的大小多少。

-a ∶列出所有的文件系統(tǒng),包括系統(tǒng)特有的 /proc 等文件系統(tǒng)
-k ∶以 KBytes 的容量顯示各文件系統(tǒng)
-m ∶以 MBytes 的容量顯示各文件系統(tǒng)
-h ∶以人們較易閱讀的 GBytes, MBytes, KBytes 等格式自行顯示
-H ∶以 M=1000K 取代 M=1024K 的進(jìn)位方式
-T ∶連同該 partition 的 filesystem 名稱 (例如 ext3) 也列出
-i ∶不用磁盤容量,而以 inode 的數(shù)量來顯示

練習(xí):

1.將系統(tǒng)內(nèi)所有文件系統(tǒng)列出來(不含特殊內(nèi)存內(nèi)的文件系統(tǒng)與swap),都以1KB的容量來列出來。(tmpfs是一種虛擬內(nèi)存文件系統(tǒng),而不是塊設(shè)備,是基于內(nèi)存的文件系統(tǒng)。/dev/shm是與內(nèi)存有關(guān)的掛載)

df 
將系統(tǒng)內(nèi)所有文件系統(tǒng)列出來

2.將容量結(jié)果以易讀的方式顯示出來

df   -h   
將容量結(jié)果以易讀的方式顯示出來

3.將系統(tǒng)內(nèi)的所有特殊文件系統(tǒng)及名稱都列出來

df   -aT  
將系統(tǒng)內(nèi)的所有特殊文件系統(tǒng)及名稱都列出來

4.將/etc該目錄或文件所在的分區(qū)容量顯示出來

df   -h   /etc   
將/etc該目錄或文件所在的分區(qū)容量顯示出來

5.將目前各個分區(qū)當(dāng)中的inode數(shù)量列出

df   -ih
將目前各個分區(qū)當(dāng)中的inode數(shù)量列出

6.使用ls命令的-i選項查看文件的inode號

ls  -li
使用ls命令的-i選項查看文件的inode號

問題:

df 代表什么意思?
df . 代表什么意思?
如圖所示 df命令是檢查文件系統(tǒng)的磁盤空間占用情況。 df . 命令是檢查當(dāng)前文件夾所在的磁盤的磁盤空間占用情況

兩個命令的區(qū)別1

兩個命令的區(qū)別2

說明一下范例所輸出的結(jié)果信息:
Filesystem: 代表該文件系統(tǒng)是在哪個分區(qū),所以列出設(shè)備名稱。
1k-blocks: 說明下面的數(shù)字單位是1KB
Mounted on 掛載點

3.du命令

du 統(tǒng)計目錄(或文件)所占磁盤空間的大小(即查看文件夾大小,將里面的東西大小也顯示出來)
-a ∶分列出所有的文件與目錄容量(不可用于統(tǒng)計)。
-h ∶以人們較易讀的容量格式 (G/M) 顯示;
-s ∶統(tǒng)計目錄總?cè)萘浚c-a相對。
-k ∶以 KBytes 列出容量顯示;
-m ∶以 MBytes 列出容量顯示;
用法:du [-ahskm] 文件或目錄名稱

練習(xí):

1.列出當(dāng)前目錄下的所有目錄容量,即文件夾的大小(默認(rèn)不包含文件的容量)

du 

#直接輸入du沒有加任何參數(shù)時,則du會分析當(dāng)前所在目錄的文件與目錄所占用的硬盤空間。
#但是,實際顯示時,僅會顯示目錄容量(不含文件)。
#因此,目錄有很多文件沒有被列出來,所以全部的目錄相加不會等于.的容量
列出當(dāng)前目錄下的所有目錄容量

2.將文件的容量(大小)也列出來

du   -a         
du   -ah
將文件的容量(大小)也列出來

3.s:single的意思,只顯示單層的,即這個目錄的大小

du   -s   /etc 

4.顯示根有多大

du   -sh   / 

5.列出根目錄下每個目錄所占用的容量

du   -sm  /* 

6.列出/usr下每個目錄所占用的容量

du   -sh  /usr/*   

問題:

du 代表什么意思?
du . 代表什么意思?

du 統(tǒng)計目錄(或文件)所占磁盤空間的大小
du. 統(tǒng)計當(dāng)前目錄所占磁盤空間大小


du 統(tǒng)計目錄(或文件)所占磁盤空間的大小

4.索引節(jié)點

Linux文件是通過inode和block來存儲的。
文件系統(tǒng)存儲的最小單位是block(塊),文件的實際數(shù)據(jù)放置到block塊中。
文件數(shù)據(jù)除了文件實際內(nèi)容外,通常含有非常多的屬性。
Linux操作系統(tǒng)的文件權(quán)限(rwx)與文件屬性(所有者、群組、時間參數(shù)等)存放到inode中。一個文件占用一個inode,同時記錄此文件的數(shù)據(jù)所在的block號碼。
另外,還有一個超級快(superblock)會記錄整個文件系統(tǒng)的整體信息,包括inode與block的總量、使用量、剩余量等。

5.硬連接

硬連接是Linux和Unix里面專有的一個概念,在其它操作系統(tǒng)里面并沒有硬連接這個概念。
如A、B均指向磁盤中的同一塊空間,使用A或者B都能達(dá)到操縱文件的目的。創(chuàng)建硬連接增加連接數(shù)。
rm命令減少連接數(shù),當(dāng)連接數(shù)為0時,刪除這個文件?!斑B接”這個字段的意義為“有多少文件名連接到這個inode”,如果你將任何一個“文件名”刪除,其實inode與block都還是存在的。

硬鏈接僅能在單一文件系統(tǒng)中進(jìn)行,所有hard link是有限制的:

a.不能跨文件系統(tǒng)
b.不能連接到目錄

練習(xí):

1.新建一個目錄,在新目錄里操作

mkdir xx
cd xx

2.復(fù)制/etc/passwd,-a選項連同屬性一起復(fù)制

cp   -a   /etc/passwd   .

3.使用du命令以字節(jié)為單位顯示當(dāng)前目錄的大小,使用df命令查看當(dāng)前目錄所在分區(qū)的inode數(shù)量

du   -sb;df   -i   .

4.為passwd文件建立硬連接,ln為link的簡寫,不要寫錯了

ln   passwd   passwd-hd

5.查看當(dāng)前目錄大小和當(dāng)前目錄所在分區(qū)中的inode數(shù)量是有否變化

du   -sb;df   -i   .

6.查看文件passwd和passwd-hd的inode號是否相同?

ll   -i
#可見整個inode與block的容量并沒有改變
#硬鏈接和原文件的inode號相同,指向同一個文件,只是連接數(shù)(別名)增加了。

6.軟連接(又稱符號連接)

符號連接就是在創(chuàng)建一個獨立的文件,類似于快捷方式,B是A的符號連接,那么B可看作是A的引用。刪除B,則A繼續(xù)存在。ll命令后,箭頭右邊的文件名共有幾個英文,每個英文占1個byte,就是文件的大小幾byte。

練習(xí):

1.為文件passwd建立符合連接

ln   -s   passwd   passwd-so

2.查看當(dāng)前目錄大小和當(dāng)前目錄所在分區(qū)中的inode數(shù)量

du   -sb;df   -i   .

3.查看文件passwd和passwd-so的inode號是否相同?

ll   -i

4.整個容量和inode數(shù)量都增加了,軟連接文件有自己的inode號,所以,軟連接是增了新文件

cat  passwd-so
cat  passwd-hd  #訪問軟、硬連接文件
#刪除原文件,軟、硬連接文件還能被訪問么?
rm   -f   passwd  

7.磁盤分區(qū)fdisk

fdisk非常危險,一般我們只是使用它來查看磁盤分區(qū)情況,沒有掛載上的也能查到

練習(xí):

fdisk   -l   //列出系統(tǒng)內(nèi)能夠找到的設(shè)備的分區(qū) 

#只查看某一個硬盤
fdisk   -l   /dev/sda

練習(xí):

將系統(tǒng)現(xiàn)有磁盤的最后一個分區(qū)刪掉,重新建一個分區(qū)

fdisk   -l  //先查看一下系統(tǒng)中硬盤的名稱,eg:/dev/sda
fdisk   /dev/sda
m    //m命令是幫助
p    //打印當(dāng)前磁盤的分區(qū)情況
d    //deletc分區(qū)
3        //假設(shè)最后一個分區(qū)的分區(qū)號是3
n    //n命令可以新建一個分區(qū)
p        //新建一個主分區(qū)
4        //設(shè)置一個分區(qū)號
Enter
+512M
p       //使用p命令查看一下分區(qū)情況
n    //n命令可以新建一個分區(qū)
e        //新建一個擴(kuò)展分區(qū)
3       //設(shè)置一個分區(qū)號
Enter
Enter
p       //使用p命令查看一下分區(qū)情況
后面可以繼續(xù)在擴(kuò)展分區(qū)中建邏輯分區(qū)
q       //q命令退出未將修改保持

注意:

主分區(qū)與擴(kuò)展分區(qū)最多可以有4個擴(kuò)展分區(qū)最多只能有一個邏輯分區(qū)是由擴(kuò)展分區(qū)繼續(xù)分出來的

8.mount命令

mount掛載文件系統(tǒng)
-t ∶可以加上文件系統(tǒng)種類來指定欲掛載的文件系統(tǒng)的類型。
常見的Linux支持類型有ext2、ext3、vfat、reiserfs、iso9660(光盤格式)、nfs、cifs、smbfs(此三種為網(wǎng)絡(luò)文件系統(tǒng)類型)

練習(xí)掛載U盤:

a) 插U盤之前使用fdisk查看當(dāng)前系統(tǒng)中的磁盤情況

fdisk   -l

b) 插U盤后再次使用fdisk查看當(dāng)前系統(tǒng)中的磁盤情況,eg:/dev/sdb

fdisk   -l

c) 建立準(zhǔn)備掛載的目錄

mkdir   /mnt/usb 

d) 使用mount命令將U盤掛上去

mount   /dev/sdb   /mnt/usb
cd   /mnt/usb

e)查看U盤里的內(nèi)容

ls 

f)卸載U盤

umount   usb或umount   /dev/sdb  //使用后,卸載,拔除USB設(shè)備
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容