溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

Linux中文件系統(tǒng)的操作示例

發(fā)布時(shí)間:2021-06-03 10:30:50 來源:億速云 閱讀:155 作者:小新 欄目:服務(wù)器

這篇文章給大家分享的是有關(guān)Linux中文件系統(tǒng)的操作示例的內(nèi)容。小編覺得挺實(shí)用的,因此分享給大家做個(gè)參考,一起跟隨小編過來看看吧。

磁盤與目錄的容量

磁盤的整體數(shù)據(jù)是在superblock塊中,但是每個(gè)個(gè)別文件的容量則在inode當(dāng)中記載,常用來顯示磁盤使用量的兩個(gè)命令

df: 列出文件系統(tǒng)的整體磁盤使用量

du: 評(píng)估文件系統(tǒng)的磁盤使用量(常用于評(píng)估目錄所占容量)

$ df [-ahikHTm] [目錄或文件名]
參數(shù):
-a: 列出所有的文件系統(tǒng),包括系統(tǒng)特有的/proc(/proc掛載在內(nèi)存中,不會(huì)占用磁盤空間)等文件系統(tǒng);
-k: 以KB的容量顯示各文件系統(tǒng)
-m: 以MB的容量顯示各文件系統(tǒng)
-h:以人們較易閱讀的GB、MB、KB等格式自行顯示
-H: 以M=1000K 替換M=1024K 的進(jìn)位方式
-T: 連同該分區(qū)的文件系統(tǒng)名稱也列出(例如ext3)
-i: 不用硬盤容量,而以inode的數(shù)量顯示

df主要讀取的數(shù)據(jù)幾乎都是針對(duì)整個(gè)文件系統(tǒng),因此讀取的范圍只要是在super block內(nèi)的信息,所以這個(gè)命令顯示結(jié)果的速度非常快速。

$ du [-ahskm] 文件或者目錄名稱
參數(shù):
-a 列出所有的文件與目錄容量,因?yàn)槟J(rèn)僅統(tǒng)計(jì)目錄的文件量而已
-h 以人們較易讀的容量顯示
-s 列出總量,而不列出每個(gè)個(gè)別的目錄占用容量
-S 不包括子目錄下的總計(jì)
-k 以KB列出容量顯示
-m 以MB列出容量顯示

du會(huì)直接查找文件系統(tǒng)的所有文件數(shù)據(jù)

連接文件: ln

在linux下的連接文件有兩種:一種是類似Windows上的快捷方式,可以讓你快速連接到目標(biāo)文件或目錄。另外一種則是通過文件系統(tǒng)的inode連接來產(chǎn)生新文件名,而不是產(chǎn)生新文件,這種稱為硬鏈接(hard link)。

hard link(硬連接和實(shí)際連接)

  • 每個(gè)文件都會(huì)占用一個(gè)inode,文件的內(nèi)容由inode的記錄來指向。

  • 想要讀取文件,必須要經(jīng)過目錄記錄的文件名來指向到正確的inode號(hào)碼才能讀取。

  • 文件名與目錄有關(guān),而文件內(nèi)容則與inode有關(guān),而hard link就是在某個(gè)目錄下新建一個(gè)文件名連接到某inode號(hào)碼的關(guān)聯(lián)記錄。

vagrant@vagrant-ubuntu-trusty-64:~$ cd /tmp
vagrant@vagrant-ubuntu-trusty-64:/tmp$ touch tes
vagrant@vagrant-ubuntu-trusty-64:/tmp$ ln test test1
vagrant@vagrant-ubuntu-trusty-64:/tmp$ ll -i test test1
62273 -rw-rw-r-- 2 vagrant vagrant 0 Dec 17 12:39 test
62273 -rw-rw-r-- 2 vagrant vagrant 0 Dec 17 12:39 test1

可以看到兩個(gè)文件的inode號(hào)碼是一致的,他們的文件權(quán)限屬性完全一樣,而連接數(shù)變?yōu)榱?。

硬連接最大的好處就是安全,如果你將任何一個(gè)文件名刪除,其實(shí)inode與block都是存在的。此時(shí)可以通過另外一個(gè)文件名來讀取到正確的文件數(shù)據(jù),不論你使用哪個(gè)文件名來編輯,最終的結(jié)果都會(huì)寫到相同的inode與block中,因此均能進(jìn)行數(shù)據(jù)的修改。

一般來說,使用hard link設(shè)置連接文件時(shí),磁盤的空間和inode的數(shù)目都不會(huì)改變,hard link只是在某個(gè)目錄下的block多寫一個(gè)關(guān)聯(lián)數(shù)據(jù)而已,既不會(huì)增加inode也不會(huì)耗用block數(shù)量(除非當(dāng)你在block增加多一個(gè)關(guān)聯(lián)數(shù)據(jù)時(shí)剛好磁盤滿了,就可能需要增加多一個(gè)block來記錄文件名關(guān)聯(lián)性,而導(dǎo)致磁盤空間的變化)。

硬連接的限制:

  • 不能跨文件系統(tǒng)

  • 不能連接到目錄,因?yàn)槿绻褂胔ard link連接到目錄,連接的數(shù)據(jù)需要連同被連接目錄下面的所有數(shù)據(jù)都建立連接,會(huì)造成環(huán)境相當(dāng)大的復(fù)雜度,因此對(duì)于目錄暫時(shí)不支持

symbolic link(符號(hào)連接,也即快捷方式)

symbolic link就是創(chuàng)建一個(gè)獨(dú)立的文件,而這個(gè)文件會(huì)讓數(shù)據(jù)的讀取指向它鏈接的那個(gè)文件的文件名,由于只是利用文件作為指向的操作,所以當(dāng)源文件被刪除后,symbolic link的文件會(huì)找不到源文件而導(dǎo)致無法打開。

vagrant@vagrant-ubuntu-trusty-64:/tmp$ ln -s test test2
vagrant@vagrant-ubuntu-trusty-64:/tmp$ ll -i test test2
62273 -rw-rw-r-- 2 vagrant vagrant 0 Dec 17 12:39 test
62275 lrwxrwxrwx 1 vagrant vagrant 4 Dec 17 13:07 test2 -> test

兩個(gè)文件指向不同的inode號(hào)碼,連接文件的重要內(nèi)容就是它會(huì)寫上目標(biāo)文件的文件名,因?yàn)榧^右邊的文件是 4 Byte,所以連接文件的大小為 4 byte。

由symbolic link所創(chuàng)建的文件為一個(gè)獨(dú)立的新的文件,所以會(huì)占用掉inode與block。

修改symbolic link文件時(shí),會(huì)改動(dòng)到源文件。

$ ln [-sf] 源文件 目標(biāo)文件
參數(shù):
-s: 如果不加任何參數(shù)進(jìn)行連接,那就是hard link,至于-s就是symbolic link
-f: 如果目標(biāo)文件存在時(shí),主動(dòng)將目標(biāo)文件直接刪掉再重建。

關(guān)于目錄的連接數(shù)

當(dāng)以hard link進(jìn)行文件的連接時(shí),文件的連接數(shù)會(huì)增加1,那當(dāng)我們創(chuàng)建一個(gè)空的目錄時(shí),由于存在 . 與 .. 這兩個(gè)目錄,那么當(dāng)我們創(chuàng)建一個(gè)空的目錄/tmp/testing時(shí),基本會(huì)有3個(gè)東西:
/tmp/testing
/tmp/testing/.
/tmp/testing/..
其中 /tmp/testing 和 /tmp/testing/. 都代表該目錄,而 /tmp/testing/.. 則代表 /tmp 這個(gè)目錄,所以當(dāng)我們創(chuàng)建一個(gè)新目錄,新的目錄連接數(shù)為2,而上層目錄的連接數(shù)則會(huì)增加1。

磁盤的分區(qū)、格式化、檢驗(yàn)與掛載

如果要在系統(tǒng)中新增一塊硬盤時(shí),需要做以下動(dòng)作:

  1. 對(duì)磁盤進(jìn)行分區(qū),以新建可用的分區(qū)

  2. 對(duì)該分區(qū)進(jìn)行格式化,以創(chuàng)建系統(tǒng)可用的文件系統(tǒng)。

  3. 若想要仔細(xì)一點(diǎn),則可對(duì)剛才新建好的文件系統(tǒng)進(jìn)行檢驗(yàn)。

  4. 在linux系統(tǒng)上,需要?jiǎng)?chuàng)建掛載點(diǎn)(也即是目錄),并將它掛載上來。

磁盤分區(qū):fdisk

$ fdisk [-l] 設(shè)備名稱
參數(shù):
-l: 輸出后面接的設(shè)備所有的分區(qū)內(nèi)容。若僅有fdisk -f時(shí),則系統(tǒng)將會(huì)把整個(gè)系統(tǒng)能夠找到的設(shè)備的分區(qū)均列出來。

# 例如:
# 先找出磁盤文件名
vagrant@vagrant-ubuntu-trusty-64:/tmp$ df /
Filesystem 1K-blocks Used Available Use% Mounted on
/dev/hdc1 41251136 3631948 35883276 10% /
# 輸入fdisk,但不要加上數(shù)字
vagrant@vagrant-ubuntu-trusty-64:/tmp$ fdisk /dev/hdc
它會(huì)提示Command(m for help): 輸入m就可以看到相關(guān)參數(shù)提示
d 代表刪除一個(gè)分區(qū)
n 代表新增一個(gè)分區(qū)
p 代表在屏幕中顯示分區(qū)表
q 代表不存儲(chǔ),離開fdisk程序
w 代表將剛才的操作寫入分區(qū)表

特別注意 q 和 w,只要離開fdisk時(shí)按下q,那么所有的操作都不會(huì)生效,相反按下 w 就是操作生效的意思。

刪除磁盤分區(qū)

要?jiǎng)h除分區(qū)(例如將/dev/hdc全部分區(qū)刪除)需要做下面幾步:

  1. fdisk /dev/hdc: 先進(jìn)入fdisk界面

  2. p:先看下分區(qū)信息,假設(shè)要?jiǎng)h掉/dev/hdc1

  3. d: 這個(gè)時(shí)候要選擇一個(gè)分區(qū),就選1

  4. w 或者 q: w可存儲(chǔ)到磁盤數(shù)據(jù)表,并離開fdisk; 如果后悔,直接按下q就可以取消剛才的刪除操作。

新增磁盤分區(qū)

需要進(jìn)行一下的動(dòng)作:

  1. fdisk /dev/hdc: 先進(jìn)入fdisk界面

  2. n: 新增分區(qū)

  3. p 或 e 或 l:選擇不同的分區(qū)類型,其中p代表主分區(qū),e代表擴(kuò)展分區(qū),l代表邏輯分區(qū)

  4. 1 - 4:分區(qū)號(hào),可選1-4,如果是邏輯分區(qū),則不需要輸入分區(qū)號(hào)

  5. 輸入結(jié)束柱面號(hào)碼,如果要自己計(jì)算柱面/分區(qū)的大小太麻煩,可以使用類似"+512M"的形式,來讓系統(tǒng)幫我們分配最接近512M的柱面號(hào)碼

  6. p: 查看分區(qū)信息

  7. w 或者 q: w可存儲(chǔ)到磁盤數(shù)據(jù)表,并離開fdisk; 如果后悔,直接按下q就可以取消剛才的刪除操作。

對(duì)于創(chuàng)建分區(qū)的形式(主分區(qū)/擴(kuò)展分區(qū)/邏輯分區(qū))以及分區(qū)的大小,一般來說新建分區(qū)的形式會(huì)有下面的幾種情況:

  1. 1-4號(hào)尚有剩余,且系統(tǒng)未有擴(kuò)展分區(qū):此時(shí)會(huì)出現(xiàn)讓你挑選Primary/Extended的選項(xiàng),且你可以指定1~4號(hào)間的號(hào)碼

  2. 1-4號(hào)尚有剩余,且系統(tǒng)有擴(kuò)展分區(qū):此時(shí)會(huì)出現(xiàn)讓你挑選Primary/Logical的選項(xiàng),若選擇p你還需指定1~4號(hào)間的號(hào)碼;若選擇l則不需要設(shè)置號(hào)碼,因?yàn)橄到y(tǒng)會(huì)自動(dòng)指定邏輯分區(qū)的文件名號(hào)碼

  3. 1-4沒有剩余,且系統(tǒng)有擴(kuò)展分區(qū):此時(shí)不會(huì)讓你挑選分區(qū)類型,直接會(huì)進(jìn)入logical的分區(qū)形式

一般分區(qū)完是需要重啟(reboot)才能更新內(nèi)核的分區(qū)表信息,可以使用"partprobe"強(qiáng)制讓內(nèi)核重新找一次分區(qū)表

感謝各位的閱讀!關(guān)于“Linux中文件系統(tǒng)的操作示例”這篇文章就分享到這里了,希望以上內(nèi)容可以對(duì)大家有一定的幫助,讓大家可以學(xué)到更多知識(shí),如果覺得文章不錯(cuò),可以把它分享出去讓更多的人看到吧!

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI