1.磁盤與目錄的容量
現在我們知道磁盤的整體數據是在超級區塊中,但是每個文件的容量則在inode 當中記載。
那在命令行模式下面該如何顯示這幾個數據?下面就讓我們來談一談這兩個命令:
- df:列出文件系統的整體磁盤使用量;
- du:查看文件系統的磁盤使用量(常用在查看目錄所占磁盤空間);
1.1.df
選項與參數:
- -a:列出所有的文件系統,包括系統特有的/proc等文件系統;
- -k:以KBytes的容量顯示各文件系統;
- -m:以MBytes的容量顯示各文件系統;
- -h:以人們較易閱讀的GBytes、Mbytes、KBytes等格式自行顯示
- -H:以 M=1000K替換 M=1024K的進位方式;
- -T:連同該硬盤分區的文件系統名稱(例如xfs)也列出;
- -i:不用磁盤容量,而以inode 的數量來顯示;
范例一:將系統內所有的文件系全列出來。
在 linux 不面如果 df 沒有加任何選項,那么默認會將系統內所有的(不含特殊的內存內的文件系統與swap)都以1KBytes 的容量來列出來,至于那個/dev/shm是與內存有關的掛載,
先來說明一下范例一所輸出的結果信息為:
- Filesystem:代表該文件系統是在哪個硬盤分區,所以列出設備名稱;
- 1k-blocks:說明下面的數字單位是1KB,可利用-h或-m來改變容量;
- Used:顧名思義,就是使用掉的磁盤空間;
- Available:也就是剩下的磁盤空間大小;
- Use%:就是磁盤的使用率,如果使用率高達90%以上,最好需要注意一下,免得容量不足造成系統問題,例如最容易被占滿的/var/spool/mail這個保存郵件的目錄;
- Mounted on:就是磁盤的掛載目錄。(掛載點)
范例二:將容量結果以易讀的格式顯示出來
不同于范例一這里會以G/M等容量格式顯示出來,比較容易看
范例三:將系統內的所有特殊文件格式及名稱都列出來
這里只截取了一小部分
- /boot系統里面其實還有很多特殊的文件系統存在。
- 那些比較特殊的文件系統幾乎都是在內存當中,例如/proc這個掛載點
- 因此,這些特殊的文件系統都不會占據磁盤空間。
范例四:將/etc下面的可用的磁盤容量以易讀的容量格式顯示。
這個范例比較有趣一點,在df后面加上目錄或是文件時,df會自動的分析該目錄或文件所在的硬盤分區,并將該硬盤分區的容量顯示出來,所以,您就可以知道某個目錄下面還有多少容量可以使用了。
范例五:將目前各個硬盤分區可用的inode數量列出。
這個范例則主要列出可用的inode剩余量與總容量。分析一下與范例一的關系,你可以清楚地發現到,通常inode的剩余數量都比區塊還要多。
由于df主要讀取的數據幾乎都是針對一整個文件系統,因此讀取的范圍主要是在超級區塊內的信息,所以這個命令顯示結果的速度非常快。
在顯示的結果中你需要特別留意的是根目錄(/)的剩余容量。因為我們所有的數據都是由根目錄衍生出來的,因此當根目錄的剩余容量剩下0時,你的Linux可能就問題很大了。
????????另外需要注意的是,如果使用-a這個參數時,系統出現/proc這個掛載點,但是里面的東西都是0,不要緊張。/proc的東西都是Linux系統所需要加載的系統數據,而且是掛載在內存當中,所以當然沒有占任何的磁盤空間。
????????至于那個/dev/shm/目錄,其實是利用內存虛擬出來的磁盤空間,通常是總物理內存的一半。由于是通過內存模擬出來的磁盤,因此你在這個目錄下面建立任何數據文件時,訪問速度是非常快的。(在內存中工作。)不過,也由于它是內存模擬出來的,因此這個文件系統的大小在每臺主機上都不樣,而且建立的東西在下次啟動時就會消失,因為是在內存中嘛。
1.2.du
[root@study~]# du [-ahskm]文件或目錄名稱
?
選項與參數:
- -a:列出所有的文件與目錄容量,因為默認僅統計目錄下面的文件量;
- -h;以人們較易讀的容量格式(G/M)顯示;
- -s;僅列出總量,而不列出每個各別的目錄占用容量;
- -S:不包括子目錄下的總計,與-s 有點差別;
- -k:以KBytes列出容量顯示;
- -m;以MBytes列出容量顯示;
范例一,列出當前目錄下的所有文件容量?
直接輸入du沒有加任何選項時,則du會分析【目前所在目錄】的文件與目錄所占用的磁盤空間。
但是,實際顯示時,僅會顯示目錄容量(不含文件),因此(.)目錄有很多文件沒有被列出來,所以全部的目錄相加不會等于(.)的容量,此外,輸出的數值數據為 1K大小的容量單位。
范例二:同范例一,但是將文件的容量也列出來。
范例三:檢查根目錄下面每個目錄所占用的容量
這是個經常被使用的功能,利用通配符*來代表每個目錄,如果想要檢查某個目錄下,哪個子目錄占用最大的容量,可以用這個方法找出來。
值得注意的是,如果剛剛安裝好Linux時,那么整個系統容量最大的應該是/usr。
而/proc雖然有列出容量,但是它的容量是在內存中,?不占磁盤空間。至于/proc 里面會列出一堆【No such file or directory】的錯誤,別擔心,因為是內存中的程序,程序執行結束就會消失,因此會有些目錄找不到是正確的.
????????與df不一樣的是,du 這個命令其實會直接到文件系統內去查找所有的文件數據,所以上述第三個范例命令的運行會執行一小段時間。
????????此外,在默認的情況下,容量的輸出是以KB 為單位,如果你想要知道目錄占了多少MB,那么就使用-m 這個參數即可。如果你只想要知道該目錄占了多少容量的話,使用-S就可以。
????????至于-S 這個選項部分,由于du 默認會將所有文件的大小均列出,因此假設你在/etc下面使用du時,所有的文件大小,包括/etc 下面的子目錄容量也會被計算一次。然后最終的容量(/etc)也會相加一次,因此很多朋友都會誤會du分析的結果不太對勁,
所以,如果想要列出某目錄下的全部數據,或許也可以加上-S的選項,減少子目錄的相加。