linux连接教程视频,[原创]linux视频教程之连接
這次說一下ln的相關原理和用法
在開始介紹連接( Link ) 之前,我們得先來了解一下什么是inode 這個東西?
說實在的,這個東西真的很重要,不了解它的時候,很容易搞錯很多的東西
什么是inodes ?
要提到inode 之前,我們得先來了解一下硬盤的整體構造才行!硬盤里面有多個硬盤盤片組合在一起
而一個硬盤盤片為圓形的,其中,每一個硬盤盤片上面都有個可以讀寫的磁頭( Head ),
而當這個磁頭固定住,讓硬盤盤片轉一圈,那么那一個圓形的就是磁道( Track ),而在硬盤內的幾個
硬盤盤片同半徑的那一圈的磁道總和稱為磁柱( Cylinder ),而由圓心向外畫出直線,那就是硬盤的
最小儲存物理量,我們稱為扇區( setctor ),一個扇區的物理量大約是512 bytes ( 約0.5K )。
磁頭( Head ) :可擦寫的金屬磁盤;
磁道( Track ) :讀寫頭轉一圈( 同心圓的一圈) 的量;
扇區( Sector ) :最小的物理儲存量。
知道了大體的硬盤構造之后,再來談一談怎么硬盤分割( partition ) 我們在進行硬盤分割的時候,
最小都是以磁柱為單位進行分割的,那么分割完成之后自然就是格式化( format ),在Linux 里面
我們在進行格式化的時候必須要考慮到Block 與inode 的信息,這個block 還好理解,他是我們磁
盤可以記錄的最小單位,是由數個sector 所組成的,所以他的大小通常為n*512 bytes ,例如4K 。
那么inode 是什么? Block 是記錄『文件內容數據』的地區,而inode 則是記錄『該文件的屬性、
及該文件放置在哪一個Block 之內』的信息!所以,每個文件都會占用到至少一個inode 。而當我
們Linux 系統要找到這個文件時,他會先去搜尋inode table 找到這個文件的屬性及數據放置的地區
然后再到數據去找到數據存放的Block 進而將數據取出利用。這個inode 數目在一開始就會被設定好
他的設定方式通常是利用( 硬盤大小/ 一個容量),這個容量至少應該比Block 要大一些較佳,例如
剛剛的Block 訂為4K ,那么inode 可以訂為8K 左右。所以,一個1GB 的硬盤,如果以8K 來規劃他的
inode 數時,他的inode 就會有131072 個inode !而一個inode的大小為128 bytes 這么大!這么一來
的話,我們就可以清楚的知道了,那就是一個partition 格式化為一個filesystem 之后,基本上,
他一定會有inode table 與data area 兩個區塊,一個用來記錄文件的信息與該文件放置的block 區塊
一個用來記錄文件的內容!
由于我們Linux 在讀取數據的時候,是先查詢inode table 以得到數據是放在那個Block 里面,然后再
去該Block 里面讀取真正的數據內容!然后,那個block 是我們在格式化硬盤的時候規定出來的一個值
這個block 是由2 的n 次方個sector 所集結而成的!所以,他是0.5K 的倍數!假設我們block 規劃為
4KBytes 好了,那么由于一個inode 與一個block 最多均只紀錄一個文件,所以,如果你的一個文件有
0.1 K bytes 這么大時,你要曉得的是,由于你的block為4K bytes ,因此,你就會有3.9 Kbytes 的空
間『浪費掉』 !所以,當你在格式化硬盤的時候,請千萬注意到你的系統未來的使用方向 !
當block 越小( 最小為0.5K ) 、inodes 越多,可利用空間越多,但是大文件寫入效率較差
適合文件數量多但是文件容量小的系統,例如BBS 或者新聞群組news 這方面的服務之系統
當block 越大( 最大可到16 * 0.5K 以上) 、inodes 數越少,大文件寫入效率較佳,但浪費的空間
較多適合檔案容量大的系統。
以上內容一定要看會
簡單的說
inode 是記錄 Block 的信息
Block 是記錄 數 據 的地區
ln
知道了什么是inode 與他的功能之后,接著下來就要來介紹link!說到link 其實也沒有什么大不了的,
說穿了,就真的有點像是Windows 的『快捷方式』一樣,不過, link 的功能要好的多 Link 又分為
hard link 與symbolic link 兩種
Hard Links
剛剛說過,當系統要讀取某一個文件的時候,就會先去讀inode table ,然后再根據inode 的信息到
block area 去將數據取出來利用!而hard link 就是直接再建立一個inode 連結到文件放置的block
區塊。也就是說,進行hardlink 的時候,實際上,你的文件內容不會改變,只是你在查詢的時候,利用
原來的inode 與后來的inode 均可被指定到該文件放置的地點,因此兩個文件的內容會是一樣的!所以
讀取任何一個inode 的結果都是存取在同一個文件的內容就是了。不過,這樣一來就有個問題 ,因為
inode 是會連結到block 區域去的,而『目錄』本身僅消耗inode 而已,那么一來的話, hard link 不
就不能link 目錄 ?對的!沒錯! Hard link 有兩個最大的限制
1. 不能跨filesystem ,因為不同的filesystem 有不同的inode table
2. 不能link 目錄!
Symbolic Links:
相對于hard link , Symbolic link 可就好理解多了,基本上,他就是在建立一個獨立的文件,而這個
文件會讓數據讀取指向他link 的那個文件內容!由于只是利用文件來做為指向的動作,所以,當來源檔
被刪除之后,symbolic link 的文件用不了了
看樣子,似乎hard link 比較安全,因為即使某一個inode 被刪掉了,只要有任何一個inode 存在,
那么該文件就不會不見!不過,由于Hard Link 的限制太多了,包括無法做『目錄』的link ,所以
在用途上面是比較受限的!反而是Symbolic Link 的使用方向較廣
簡單的說
Hard Links 就是直接再建立一個inode 連接
Symbolic Links 就是在建立一個獨立的文件,指向它link 的那個文件內容
如果不加任何參數的話,那么就是Hard Link !
看到了吧,這個1變成2了,這就是占用掉的inodes的數值
-s 就表示是 Symbolic Links
跟cp 也不一樣!因為雖然Hard Link 的文件看起來是有容量的,但是基本上還是指向原來的
文件,所以 ,整體容量是沒有增大的 !
加了一個Hard Link后,還是沒變
但加了一個Symbolic Links 整體和容量就變大了
而如果這個時候刪掉passwd 會發生什么事情呢?
passwd-hard的內容還是會跟原來passwd 相同,但是passwd-sym 就會找不到該文件 !
就是因為這兩種連接連的東西不一樣
雖然使用-s 的參數時,就做成差不多是Windows 底下的『快捷方式』的意思(Symbolic Link)不過
需要特別注意的是, Linux 的link 與Windows 的快捷方式是不一樣的東西!舉個例子說,當你在
Windows 建立一個快捷方式時,你可以在這個快捷方式內修改任何數據,而你的原始數據并不會跟著變!
不過,當你修改Linux 下的link 文件時,則更動的其實是『原始文件』,所以不論你的這個原始檔被
連結到哪里去,只要你修改了連結檔原始文件就跟著變 !
如果你做了底下這樣的連結
ln –s /bin /root/bin
那么如果你進入/root/bin 這個目錄下,『請注意!該目錄其實是/bin 這個目錄,因為你做了連結了』
所以,如果你進入/root/bin 這個剛剛建立的連結目錄,并且將其中的數據刪掉時,/bin 里面的數據
就通通不見了!這點請千萬注意!并不是/root 底下的資料都是root 的!還需要注意一下該屬性才行!
看,以a開頭的那些文件沒了 現在在/root/bin下
我們去/bin下去看看
看,也是一樣
所以,文件的屬性要多意思一下
刪文件也是
上面有很多文字的東西,要看明白
成功!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
附件下載:
總結
以上是生活随笔為你收集整理的linux连接教程视频,[原创]linux视频教程之连接的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 电脑录屏ppt讲解怎么露脸电脑录屏PPT
- 下一篇: 家用照片打印利器家用相片打印