鳥哥的Linux私房菜 基礎學習篇讀書筆記(9):Linux磁碟與檔案系統管理(2),linux私房菜

來源:互聯網
上載者:User

鳥哥的Linux私房菜 基礎學習篇讀書筆記(9):Linux磁碟與檔案系統管理(2),linux私房菜

上一篇文章主要從理論上分析了Linux的Ext2檔案系統,這一篇主要講解如何查看Linux的檔案系統的容量以及講解Linux檔案系統中的串連檔案。

可以通過df和du命令來查看磁碟與目錄的容量,df命令用來列出檔案系統的整體磁碟容量,df命令的用法是 df  [-ahikHTm]  目錄或檔案名稱,如果df命令不加任何參數,則預設將系統內所有的檔案系統的容量以及使用方式都列出來。關於df命令還需要說明的是 df命令是查看檔案系統的整體使用方式,因此是從Super block(見前一篇文章)中讀取資訊,因此df命令的執行速度非常快。

以下是df命令的使用舉例:


可以看到,雖然用df命令查看/etc目錄的使用方式,但是df命令會自動分析該目錄所在的分區,然後將該分區的使用方式列舉出來。這裡不要犯迷糊,只要不進行磁碟限額,那麼/etc目錄能夠使用的容量就是該目錄所在檔案系統的容量。

那如果我就是要看當前/etc目錄已佔用的檔案系統容量,那就得通過 du命令,du命令主要用來查看目錄所佔的容量。不同於df命令,du命令是直接到檔案系統內去查看所有的檔案系統資料,因此執行時間可能會久一點。關於du命令還是多講一點,可能鳥哥書上講的不是很清楚,du命令預設會顯示該目錄下各個子目錄的容量,而顯示的總目錄容量是已經將該目錄下各個子目錄的容量加和的。

舉個例子,:



/home目錄下總共有三個子目錄: /home/hw , /home/test_one ,/home/fuchencong ,它們的容量(已經算上子目錄)分別是4k,52k,240k,而且可以查看到 /home 目錄自己本身(不運算元目錄的容量)是4k,所以最終顯示的/home目錄的容量是 4k + 52k + 240k + 4k= 300k。

另外在使用du命令時,如果加上-S參數,則顯示的目錄容量就不會加上子目錄的容量,此時只是顯示該目錄本身佔用的容量(當然還包括該目錄下的直接檔案),如所示: /home目錄顯示的佔用容量為4k,這就是/home目錄本身所佔用的容量,而不包括其子目錄所佔用的容量。

接下來講解Linux中的串連檔案,如果已經理解了Linux的Ext2檔案系統,那麼理解串連檔案就非常簡單了。

在Linux作業系統中,串連檔案分為兩種,硬串連(實際串連)和 符號串連。可以使用ln命令建立串連檔案,ln命令的使用方法為 ln [-sf] 源檔案 目標檔案,如果不加任何參數製作串連檔案,就是預設建立硬串連,如果加上-s參數,就是代表建立符號串連檔案。那硬串連和符號串連有什麼區別呢?

上一篇文章已經講過,Linux讀取一個檔案時,首先要從目錄block裡找出該檔案名稱對應的inode號碼,那如果同時有多個檔案名稱同時對應一個inode號碼,那麼無論通過哪個檔案名稱實際上都訪問到同一個檔案,其實這就是硬串連。 簡單的說,永久連結只是在某個目錄下建立一條檔案名稱關聯到某個inode號碼的關聯記錄而已。當有多個檔案名稱關聯到同一個inode號碼,就可以通過其中的任意一個檔案名稱來訪問該檔案的資料,而且無論通過哪個檔案名稱來修改資料,最終都會修改到實際的檔案資料。類似的,當刪除一個檔案時,其實只是將對應的inode裡的引用計數-1,並不會真的刪除檔案資料,只有當該檔案inode裡的引用計數減為0,該檔案資料才會真的被刪除。

但是硬串連也是有限制的,因為每個檔案系統都有自己的inode編號,所以目錄項裡檔案名稱對應的inode號碼只能是同一檔案系統裡的inode號碼,因此硬串連只能針對同一檔案系統建立,不能跨檔案系統建立。而且硬串連也不能串連到目錄。一方面對目錄建立硬串連會增加系統內容的複雜度,另一方面對目錄建立硬串連容易造成迴圈。因此不支援硬串連到目錄。

Linux中還有一類串連,稱為符號串連。不同於硬串連,符號串連是建立了一個獨立的檔案,只不過對這個檔案的資料讀取會被轉向為對它指向檔案的資料讀取。因此當源檔案被刪除時,符號串連就會“開不了”。而且對於一個符號串連,它的檔案長度就是它所引用檔案的檔案名稱長度,因為在串連檔案中,它的內容就是目標檔案的“檔案名稱”。

以下是硬串連和符號串連的一個執行個體:


圖中可以清晰的觀察到hard_link 和 test.file關聯到同一個inode號碼,因此這兩個檔案代表的是同一個檔案,而且引用計數為2。而symbol_link檔案的inode不同於test.file,因為symbol_link是一個獨立的檔案,只不過它是一個指向test.file的串連檔案,而且可以觀察到symbol_link的檔案長度為9位元組,其實就是test.file這個檔案的檔案名稱長度。

最後講解一下關於目錄的串連數量。每當建立一個空目錄時,該新目錄的串連數量為2。為什麼呢?首先目錄本身佔據一個串連,然後該目錄裡還有一個特殊目錄“.”,它也是代表該目錄,因此該目錄的串連數量為2。 如果在該新的目錄裡建立一個子目錄,該目錄的串連數又將+1。因為建立的子目錄裡有一個特殊目錄“..”,代表上級目錄,它也指向該目錄,因此該目錄的串連數+1。


本章Linux命令總結:

df, du, ln。



鳥哥的Linux私房菜 基礎學習篇(第二版)書後習題答案

鳥哥的網站應該有。
linux.vbird.org/
剛剛用IE訪問,顯示亂碼。呵有意思
 
學完了鳥哥的Linux私房菜基礎學習篇可以找工作

大哥你太逗了吧!
剛畢業還是怎麼著,如果剛畢業的話還是有希望的!
不知道你學linux的目的到的是什麼!也不知道你的編程基礎怎麼樣!給你點建議:
1、如果是想作營運的話建議你先學一下資料庫,MYQSL、Oracle、DB2等至少要會一樣,可以為你找工作加分
2、如果是程式員C/C++學的好的話會很受歡迎,如果你是java程式員也可以
3、最好有做過項目的經驗,包括實習的,如果沒有畢業設計也可以,要再沒有自己到網上找幾個“寫一下試試,眼過千遍不如手過一遍!書看千行不如手敲一行!手敲千行不如單步一行!單步原始碼千行不如單步對應彙編一行!”雖然這句話是針對C/C++程式員的,不過前三句對任何程式都適用!
4、多瞭解一下新技術,有空去CSDN逛一下,看看程式員應該具備哪些技巧和素質!
就寫這麼多吧,希望對你有用!
 

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.