di:比 df 更有用的磁盤信息工具
如果你是個(gè)Linux命令行用戶,你肯定會(huì)使用df命令檢查文件系統(tǒng)的磁盤使用情況。盡管df是一個(gè)受歡迎的命令,但仍然不能提供一些高級(jí)的功能,如一個(gè)用戶實(shí)際的磁盤可用空間,以及各種有用的顯示格式等。還有另一個(gè)命令行實(shí)用工具可用,不僅提供了這些高級(jí)功能,也提供了df的所有特性。在本文中,我們將討論磁盤信息工具 -- di。
注釋 - 如果你想了解 df 更多信息,查看 df命令教程。
di - 磁盤信息工具
從這個(gè)di幫助手冊(cè)頁(yè)很明顯的發(fā)現(xiàn) di 提供了一些很有價(jià)值的特性,值得一試。讓我們看一些這個(gè)工具實(shí)際使用的例子。
測(cè)試環(huán)境
- OS – Ubuntu 13.04
- Shell – Bash 4.2.45
- Application – di 4.30
一個(gè)簡(jiǎn)短的教程
下面是一些 di 工具的示例:
1. 默認(rèn)的輸出
默認(rèn)情況下di命令生成人們易讀的輸出格式
這里有個(gè)示例:
- $ di
- Filesystem Mount Size Used Avail %Used fs Type
- /dev/sda6 / 28.1G 20.2G 6.5G 77% ext4
- udev /dev 1.5G 0.0G 1.5G 0% devtmpfs
- tmpfs /run 300.2M 0.9M 299.3M 0% tmpfs
所以你能發(fā)現(xiàn)用千兆字節(jié)(G)和兆字節(jié)(M)做磁盤使用情況的數(shù)據(jù)單位。這絕對(duì)是比 df 默認(rèn)的輸出產(chǎn)生的效果好。(譯注:df也可以輸出帶類似單位的顯示,只是需要額外加參數(shù) -h)
2. 用 -A 選項(xiàng)打印類似掛載點(diǎn)、特殊設(shè)備名稱等全部字段
選項(xiàng) -A可以用來(lái)極詳細(xì)的打印掛載點(diǎn),特殊設(shè)備名稱等。
這里有個(gè)示例:
- $ di -A
- Mount fs Type Filesystem
- Options
- Size Used Free %Used %Free
- Size Used Avail %Used %Free
- Size Used Avail %Used
- Inodes Iused Ifree %Iused
- / ext4 /dev/sda6
- rw,errors=remount-ro
- 28.1G 20.2G 8.0G 72% 28%
- 28.1G 21.6G 6.5G 77% 23%
- 26.7G 20.2G 6.5G 75%
- 1884160 389881 1494279 21%
- /dev devtmpfs udev
- rw,mode=0755
- 1.5G 0.0G 1.5G 0% 100%
- 1.5G 0.0G 1.5G 0% 100%
- 1.5G 0.0G 1.5G 0%
- 381805 571 381234 0%
- /run tmpfs tmpfs
- rw,noexec,nosuid,size=10%,mode=0755
- 300.2M 0.9M 299.3M 0% 100%
- 300.2M 0.9M 299.3M 0% 100%
- 300.2M 0.9M 299.3M 0%
- 384191 549 383642 0%
所以你可以看到所有的字段,可以用于調(diào)試目的時(shí)打印輸出。
3. 用 -a選項(xiàng)打印所有掛載設(shè)備
這里是個(gè)示例:
- $ di -a
- Filesystem Mount Size Used Avail %Used fs Type
- /dev/sda6 / 28.1G 20.2G 6.5G 77% ext4
- udev /dev 1.5G 0.0G 1.5G 0% devtmpfs
- devpts /dev/pts 0.0M 0.0M 0.0M 0% devpts
- proc /proc 0.0M 0.0M 0.0M 0% proc
- binfmt_misc /proc/sys/fs/bi 0.0M 0.0M 0.0M 0% binfmt_misc
- tmpfs /run 300.2M 0.9M 299.3M 0% tmpfs
- none /run/lock 0.0M 0.0M 0.0M 0% tmpfs
- none /run/shm 0.0M 0.0M 0.0M 0% tmpfs
- none /run/user 0.0M 0.0M 0.0M 0% tmpfs
- gvfsd-fuse /run/user/himan 0.0M 0.0M 0.0M 0% fuse.gvfsd-fuse
- sysfs /sys 0.0M 0.0M 0.0M 0% sysfs
- none /sys/fs/cgroup 0.0M 0.0M 0.0M 0% tmpfs
- none /sys/fs/fuse/co 0.0M 0.0M 0.0M 0% fusectl
- none /sys/kernel/deb 0.0M 0.0M 0.0M 0% debugfs
- none /sys/kernel/sec 0.0M 0.0M 0.0M 0% securityfs
所以你能看到與所有設(shè)備相關(guān)的所有信息,被打印出來(lái)了。
4. 用 -c 選項(xiàng)用逗號(hào)作為值的分隔符
選項(xiàng) -c 用命令分隔的值將附上雙引號(hào)
這里是個(gè)示例:
- $ di -c
- s,m,b,u,v,p,T
- /dev/sda6,/,28.1G,20.2G,6.5G,77%,ext4
- udev,/dev,1.5G,0.0G,1.5G,0%,devtmpfs
- tmpfs,/run,300.2M,0.9M,299.3M,0%,tmpfs
如上,你可以看到打印了用逗號(hào)分隔符輸出的值。(譯注:這種輸出便于作為其他程序的輸入解析)
5. 用 -g 選項(xiàng)通過(guò)千兆字節(jié)(G)打印大小
下面是個(gè)示例:
- $ di -g
- Filesystem Mount Gibis Used Avail %Used fs Type
- /dev/sda6 / 28.1 20.2 6.5 77% ext4
- udev /dev 1.5 0.0 1.5 0% devtmpfs
- tmpfs /run 0.3 0.0 0.3 0% tmpfs
當(dāng)然,你能看到所有與大小有關(guān)的值都用千兆字節(jié)(G)打印出來(lái)。
同樣的你可以用 -k 和 -m 選項(xiàng)來(lái)分別的顯示千字節(jié)(K)大小和兆字節(jié)(M)大小。
6. 通過(guò) -I 選項(xiàng)顯示特定的文件系統(tǒng)類型的相關(guān)信息
假設(shè)你想顯示只跟tmpfs文件系統(tǒng)相關(guān)的信息。下面將告訴你如何用 -I 選項(xiàng)完成任務(wù)。
- $ di -I tmpfs
- Filesystem Mount Size Used Avail %Used fs Type
- tmpfs /run 300.2M 0.9M 299.3M 0% tmpfs
- none /run/lock 5.0M 0.0M 5.0M 0% tmpfs
- none /run/shm 1.5G 0.0G 1.5G 0% tmpfs
- none /run/user 100.0M 0.0M 100.0M 0% tmpfs
- none /sys/fs/cgroup 0.0M 0.0M 0.0M 0% tmpfs
Ok 你能看到只有tmpfs類型相關(guān)文件系統(tǒng)信息被輸出并顯示出來(lái)了。
7. 用 -n 選項(xiàng)跳過(guò)標(biāo)題行的輸出
如果你正試圖通過(guò)一個(gè)腳本(或程序)解析該命令的輸出結(jié)果并希望 di 命令跳過(guò)顯示的標(biāo)題行,那么用 -n 選項(xiàng)是絕佳的方法。
下面是個(gè)示例:
- $ di -n
- /dev/sda6 / 28.1G 20.2G 6.5G 77% ext4
- udev /dev 1.5G 0.0G 1.5G 0% devtmpfs
- tmpfs /run 300.2M 0.9M 299.3M 0% tmpfs
如上,你能發(fā)現(xiàn)輸出中并沒(méi)有顯示標(biāo)題行。
8. 通過(guò) -t 選項(xiàng)在文件系統(tǒng)列表底下再打印一行總計(jì)行
如果想要顯示所有相關(guān)列的總數(shù),用 -t 選項(xiàng)。
示例:
- $ di -t
- Filesystem Mount Size Used Avail %Used fs Type
- /dev/sda6 / 28.1G 20.2G 6.5G 77% ext4
- udev /dev 1.5G 0.0G 1.5G 0% devtmpfs
- tmpfs /run 300.2M 0.9M 299.3M 0% tmpfs
- Total 29.9G 20.2G 8.3G 72%
觀察到最后一行的值為所有文件系統(tǒng)的統(tǒng)計(jì)數(shù)據(jù)。
9. 通過(guò) -s 選項(xiàng) 排序輸出
-s選項(xiàng)可用于排序該命令的輸出結(jié)果(譯注:默認(rèn)按照掛載點(diǎn)名稱排序)
下面告訴你如何反向排序輸出:
- $ di -sr
- Filesystem Mount Size Used Avail %Used fs Type
- tmpfs /run 300.2M 0.9M 299.3M 0% tmpfs
- udev /dev 1.5G 0.0G 1.5G 0% devtmpfs
- /dev/sda6 / 28.1G 20.2G 6.5G 77% ext4
你也可以在-s后添加子選項(xiàng)'r'逆序排序輸出。
類似的,你可以使用 -s 選項(xiàng)做一些其他類型的排序。以下是摘自man手冊(cè)供您參考:
-s 排序方式可以指定排序方式。 默認(rèn)排序方式的按照掛載點(diǎn)的名稱進(jìn)行排序。支持如下的排序方式: m :按照掛載點(diǎn)名稱排序(默認(rèn)) n :不排序(即按照在掛載表/etc/fstab中的順序) s :按照特殊設(shè)備名稱t :按照文件系統(tǒng)類型 r :逆序排序 排序方式可以組合使用,如: di --stsrm :按照類型、設(shè)備、掛載點(diǎn)逆序排序。di --strsrm :按照類型、設(shè)備逆序、掛載點(diǎn)逆序排序。 |
10. 通過(guò) -f 選項(xiàng)指定輸出格式
你可以通過(guò)結(jié)合-f選項(xiàng)和其子選項(xiàng)指定輸出格式字符串。
例如,用 -fm,打印掛載點(diǎn)的名稱。
示例:
- $ di -fm
- Mount
- /
- /dev
- /run
如上你可以看到只有掛載點(diǎn)的名字被打印出來(lái)。
同樣的,打印文件系統(tǒng)的類型,用 -ft
示例:
- $ di -ft
- fsType
- ext4
- devtmpf
- tmpfs
如果你想快速查找,這里有個(gè)其他可用的格式選項(xiàng)截圖。
更完整的選項(xiàng),參考di命令man文檔。
下載/安裝
這里有一些關(guān)于di命令的重要鏈接:
命令行工具 di 也能通過(guò)apt、yum等命令在命令行下載和安裝。Ubuntu用戶也可以從Ubuntu 軟件中心下載這個(gè)命令。
優(yōu)點(diǎn)
- 提供了許多高級(jí)功能
- 跨平臺(tái)
缺點(diǎn)
- 在大多數(shù)的Linux發(fā)行版沒(méi)有預(yù)裝
- 大量選項(xiàng)需要學(xué)習(xí)
結(jié)論
最后,di命令提供了一些非常有用的特性,比df命令更強(qiáng)大。如果你正在尋找一個(gè)類似df,但比df更強(qiáng)大的關(guān)于磁盤信息的命令行工具,那么di是最理想的選擇。試試吧,包你滿意!!!