您好,登錄后才能下訂單哦!
這篇文章給大家分享的是有關Linux中文件系統的操作示例的內容。小編覺得挺實用的,因此分享給大家做個參考,一起跟隨小編過來看看吧。
磁盤與目錄的容量
磁盤的整體數據是在superblock塊中,但是每個個別文件的容量則在inode當中記載,常用來顯示磁盤使用量的兩個命令
df: 列出文件系統的整體磁盤使用量
du: 評估文件系統的磁盤使用量(常用于評估目錄所占容量)
$ df [-ahikHTm] [目錄或文件名] 參數: -a: 列出所有的文件系統,包括系統特有的/proc(/proc掛載在內存中,不會占用磁盤空間)等文件系統; -k: 以KB的容量顯示各文件系統 -m: 以MB的容量顯示各文件系統 -h:以人們較易閱讀的GB、MB、KB等格式自行顯示 -H: 以M=1000K 替換M=1024K 的進位方式 -T: 連同該分區的文件系統名稱也列出(例如ext3) -i: 不用硬盤容量,而以inode的數量顯示
df主要讀取的數據幾乎都是針對整個文件系統,因此讀取的范圍只要是在super block內的信息,所以這個命令顯示結果的速度非常快速。
$ du [-ahskm] 文件或者目錄名稱 參數: -a 列出所有的文件與目錄容量,因為默認僅統計目錄的文件量而已 -h 以人們較易讀的容量顯示 -s 列出總量,而不列出每個個別的目錄占用容量 -S 不包括子目錄下的總計 -k 以KB列出容量顯示 -m 以MB列出容量顯示
du會直接查找文件系統的所有文件數據
連接文件: ln
在linux下的連接文件有兩種:一種是類似Windows上的快捷方式,可以讓你快速連接到目標文件或目錄。另外一種則是通過文件系統的inode連接來產生新文件名,而不是產生新文件,這種稱為硬鏈接(hard link)。
hard link(硬連接和實際連接)
每個文件都會占用一個inode,文件的內容由inode的記錄來指向。
想要讀取文件,必須要經過目錄記錄的文件名來指向到正確的inode號碼才能讀取。
文件名與目錄有關,而文件內容則與inode有關,而hard link就是在某個目錄下新建一個文件名連接到某inode號碼的關聯記錄。
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
可以看到兩個文件的inode號碼是一致的,他們的文件權限屬性完全一樣,而連接數變為了2。
硬連接最大的好處就是安全,如果你將任何一個文件名刪除,其實inode與block都是存在的。此時可以通過另外一個文件名來讀取到正確的文件數據,不論你使用哪個文件名來編輯,最終的結果都會寫到相同的inode與block中,因此均能進行數據的修改。
一般來說,使用hard link設置連接文件時,磁盤的空間和inode的數目都不會改變,hard link只是在某個目錄下的block多寫一個關聯數據而已,既不會增加inode也不會耗用block數量(除非當你在block增加多一個關聯數據時剛好磁盤滿了,就可能需要增加多一個block來記錄文件名關聯性,而導致磁盤空間的變化)。
硬連接的限制:
不能跨文件系統
不能連接到目錄,因為如果使用hard link連接到目錄,連接的數據需要連同被連接目錄下面的所有數據都建立連接,會造成環境相當大的復雜度,因此對于目錄暫時不支持
symbolic link(符號連接,也即快捷方式)
symbolic link就是創建一個獨立的文件,而這個文件會讓數據的讀取指向它鏈接的那個文件的文件名,由于只是利用文件作為指向的操作,所以當源文件被刪除后,symbolic link的文件會找不到源文件而導致無法打開。
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
兩個文件指向不同的inode號碼,連接文件的重要內容就是它會寫上目標文件的文件名,因為箭頭右邊的文件是 4 Byte,所以連接文件的大小為 4 byte。
由symbolic link所創建的文件為一個獨立的新的文件,所以會占用掉inode與block。
修改symbolic link文件時,會改動到源文件。
$ ln [-sf] 源文件 目標文件 參數: -s: 如果不加任何參數進行連接,那就是hard link,至于-s就是symbolic link -f: 如果目標文件存在時,主動將目標文件直接刪掉再重建。
關于目錄的連接數
當以hard link進行文件的連接時,文件的連接數會增加1,那當我們創建一個空的目錄時,由于存在 . 與 .. 這兩個目錄,那么當我們創建一個空的目錄/tmp/testing時,基本會有3個東西:
/tmp/testing
/tmp/testing/.
/tmp/testing/..
其中 /tmp/testing 和 /tmp/testing/. 都代表該目錄,而 /tmp/testing/.. 則代表 /tmp 這個目錄,所以當我們創建一個新目錄,新的目錄連接數為2,而上層目錄的連接數則會增加1。
磁盤的分區、格式化、檢驗與掛載
如果要在系統中新增一塊硬盤時,需要做以下動作:
對磁盤進行分區,以新建可用的分區
對該分區進行格式化,以創建系統可用的文件系統。
若想要仔細一點,則可對剛才新建好的文件系統進行檢驗。
在linux系統上,需要創建掛載點(也即是目錄),并將它掛載上來。
磁盤分區:fdisk
$ fdisk [-l] 設備名稱 參數: -l: 輸出后面接的設備所有的分區內容。若僅有fdisk -f時,則系統將會把整個系統能夠找到的設備的分區均列出來。 # 例如: # 先找出磁盤文件名 vagrant@vagrant-ubuntu-trusty-64:/tmp$ df / Filesystem 1K-blocks Used Available Use% Mounted on /dev/hdc1 41251136 3631948 35883276 10% / # 輸入fdisk,但不要加上數字 vagrant@vagrant-ubuntu-trusty-64:/tmp$ fdisk /dev/hdc 它會提示Command(m for help): 輸入m就可以看到相關參數提示 d 代表刪除一個分區 n 代表新增一個分區 p 代表在屏幕中顯示分區表 q 代表不存儲,離開fdisk程序 w 代表將剛才的操作寫入分區表
特別注意 q 和 w,只要離開fdisk時按下q,那么所有的操作都不會生效,相反按下 w 就是操作生效的意思。
刪除磁盤分區
要刪除分區(例如將/dev/hdc全部分區刪除)需要做下面幾步:
fdisk /dev/hdc: 先進入fdisk界面
p:先看下分區信息,假設要刪掉/dev/hdc1
d: 這個時候要選擇一個分區,就選1
w 或者 q: w可存儲到磁盤數據表,并離開fdisk; 如果后悔,直接按下q就可以取消剛才的刪除操作。
新增磁盤分區
需要進行一下的動作:
fdisk /dev/hdc: 先進入fdisk界面
n: 新增分區
p 或 e 或 l:選擇不同的分區類型,其中p代表主分區,e代表擴展分區,l代表邏輯分區
1 - 4:分區號,可選1-4,如果是邏輯分區,則不需要輸入分區號
輸入結束柱面號碼,如果要自己計算柱面/分區的大小太麻煩,可以使用類似"+512M"的形式,來讓系統幫我們分配最接近512M的柱面號碼
p: 查看分區信息
w 或者 q: w可存儲到磁盤數據表,并離開fdisk; 如果后悔,直接按下q就可以取消剛才的刪除操作。
對于創建分區的形式(主分區/擴展分區/邏輯分區)以及分區的大小,一般來說新建分區的形式會有下面的幾種情況:
1-4號尚有剩余,且系統未有擴展分區:此時會出現讓你挑選Primary/Extended的選項,且你可以指定1~4號間的號碼
1-4號尚有剩余,且系統有擴展分區:此時會出現讓你挑選Primary/Logical的選項,若選擇p你還需指定1~4號間的號碼;若選擇l則不需要設置號碼,因為系統會自動指定邏輯分區的文件名號碼
1-4沒有剩余,且系統有擴展分區:此時不會讓你挑選分區類型,直接會進入logical的分區形式
一般分區完是需要重啟(reboot)才能更新內核的分區表信息,可以使用"partprobe"強制讓內核重新找一次分區表
感謝各位的閱讀!關于“Linux中文件系統的操作示例”這篇文章就分享到這里了,希望以上內容可以對大家有一定的幫助,讓大家可以學到更多知識,如果覺得文章不錯,可以把它分享出去讓更多的人看到吧!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。