1. 程式人生 > >linux命令詳解之df(6/19)

linux命令詳解之df(6/19)

AS true 設置 符號鏈接 disk var aci 實例 logs

df命令作用是列出文件系統的整體磁盤空間使用情況。可以用來查看磁盤已被使用多少空間和還剩余多少空間。
df命令顯示系統中包含每個文件名參數的磁盤使用情況,如果沒有文件名參數,則顯示所有當前已掛載文件系統的磁盤空間使用情況,參考示例1。
在默認情況下,磁盤空間是以1KB為單位進行顯示的,但是,如果POSIXLY_CORRECT環境變量被設置為true,這種情況下默認使用512字節為單位顯示,參考示例9。

df命令語法

df [選項] [文件名]
參數:
-a--all,顯示所有的文件系統,包括虛擬文件系統,參考示例2。
-B--block-size,指定單位大小。比如1k,1m等,參考示例3。
-h

--human-readable,以人們易讀的GB、MB、KB等格式顯示,參考示例4。
-H--si,和-h參數一樣,但是不是以1024,而是1000,即1k=1000,而不是1k=1024。
-i--inodes,不用硬盤容量,而是以inode的數量來顯示,參考示例5。
-k:以KB的容量顯示各文件系統,相當於--block-size=1k
-m:以KB的容量顯示各文件系統,相當於--block-size=1m
-l--local,只顯示本地文件系統。
--no-sync:在統計使用信息之前不調用sync命令(默認)。
-sync:在統計使用信息之前調用sync命令。
-P--portability
,使用POSIX格式顯示,參考示例6。
-t--type=TYPE,只顯示指定類型的文件系統,參考示例7。
-T--print-type,顯示文件系統類型,參考示例8。
-x--exclude-type=TYPE,不顯示指定類型的文件系統。
--help:顯示幫助信息。
--version:顯示版本信息。

df命令示例

示例1:查看包含給定文件磁盤空間使用情況

[root@localhost ~]# df /home   #指定一個文件夾,查看該文件夾所在磁盤的使用情況
Filesystem           1K-blocks      Used Available Use% Mounted on
/dev/sda2             16036224   2749160  12459316  19% /

[root@localhost ~]# df /bin/ls   #指定一個文件
Filesystem           1K-blocks      Used Available Use% Mounted on
/dev/sda2             16036224   2749160  12459316  19% /

[root@localhost ~]# df /bin/ls /home  #指定多個文件或文件夾
Filesystem           1K-blocks      Used Available Use% Mounted on
/dev/sda2             16036224   2749160  12459316  19% /
/dev/sda2             16036224   2749160  12459316  19% /

[root@localhost ~]# df /bin/ls /home /usr/  #指定多個文件或文件夾
Filesystem           1K-blocks      Used Available Use% Mounted on
/dev/sda2             16036224   2749160  12459316  19% /
/dev/sda2             16036224   2749160  12459316  19% /
/dev/sda2             16036224   2749160  12459316  19% /

[root@localhost ~]# df   # 默認情況
Filesystem           1K-blocks      Used Available Use% Mounted on
/dev/sda2             16036224   2750464  12458012  19% /
/dev/sda1               295561     16911    263390   7% /boot
tmpfs                  1028272         0   1028272   0% /dev/shm

輸出結果列說明:

  • Filesystem:代表該文件系統時哪個分區,所以列出的是設備名稱。
  • 1K-blocks:說明下面的數字單位是1KB,可利用-h-m來改變單位大小,也可以用-B來設置。
  • Used:已經使用的空間大小。
  • Available:剩余的空間大小。
  • Use%:磁盤使用率。如果使用率在90%以上時,就需要註意了,避免磁盤容量不足出現系統問題,尤其是對於文件內容增加較快的情況(如/home、/var/spool/mail等)。
  • Mounted on:磁盤掛載的目錄,即該磁盤掛載到了哪個目錄下面。

示例2:查看所有文件系統

[root@localhost ~]# df -a    #包括虛擬文件系統
Filesystem           1K-blocks      Used Available Use% Mounted on
/dev/sda2             16036224   2749160  12459316  19% /
proc                         0         0         0   -  /proc

[root@localhost ~]# df     # 默認
Filesystem           1K-blocks      Used Available Use% Mounted on
/dev/sda2             16036224   2749160  12459316  19% /
/dev/sda1               295561     16911    263390   7% /boot
tmpfs                  1028272         0   1028272   0% /dev/shm
  • 說明:系統裏面存在很多特殊的文件系統,這些比較特殊的文件系統幾乎都是在內存當中,(如/proc掛載點),所以,這些特殊文件系統都不會占據硬盤空間。

示例3:指定單位大小

[root@localhost ~]# df -B 1k    #1k為單位
Filesystem           1K-blocks      Used Available Use% Mounted on
/dev/sda2             16036224   2749160  12459316  19% /
/dev/sda1               295561     16911    263390   7% /boot
tmpfs                  1028272         0   1028272   0% /dev/shm

[root@localhost ~]# df --block-size 1m   #1M為單位
Filesystem           1M-blocks      Used Available Use% Mounted on
/dev/sda2                15661      2685     12168  19% /
/dev/sda1                  289        17       258   7% /boot
tmpfs                     1005         0      1005   0% /dev/shm
  • 示例4:以人們易讀的方式顯示
[root@localhost ~]# df -h
Filesystem            Size  Used Avail Use% Mounted on
/dev/sda2              16G  2.7G   12G  19% /
/dev/sda1             289M   17M  258M   7% /boot
tmpfs                1005M     0 1005M   0% /dev/shm

示例5:以inode的數量顯示

[root@localhost ~]# df -i
Filesystem            Inodes   IUsed   IFree IUse% Mounted on
/dev/sda2            4141216  101279 4039937    3% /
/dev/sda1              76304      35   76269    1% /boot
tmpfs                 257068       1  257067    1% /dev/shm
  • 示例6:使用POSIX格式顯示
[root@localhost ~]# df -P  #使用POSIX格式顯示
Filesystem         1024-blocks      Used Available Capacity Mounted on
/dev/sda2             16036224   2750464  12458012      19% /
/dev/sda1               295561     16911    263390       7% /boot
tmpfs                  1028272         0   1028272       0% /dev/shm

[root@localhost ~]# df 
Filesystem           1K-blocks      Used Available Use% Mounted on
/dev/sda2             16036224   2750464  12458012  19% /
/dev/sda1               295561     16911    263390   7% /boot
tmpfs                  1028272         0   1028272   0% /dev/shm
  • 示例7:只顯示類型為ext3的文件系統
[root@localhost ~]# df -t ext3
Filesystem           1K-blocks      Used Available Use% Mounted on
/dev/sda2             16036224   2750464  12458012  19% /
/dev/sda1               295561     16911    263390   7% /boot

示例8:顯示出每個文件系統的類型

[root@localhost ~]# df -T
Filesystem    Type   1K-blocks      Used Available Use% Mounted on
/dev/sda2     ext3    16036224   2750464  12458012  19% /
/dev/sda1     ext3      295561     16911    263390   7% /boot
tmpfs        tmpfs     1028272         0   1028272   0% /dev/shm
  • 示例9:顯示出每個文件系統的類型
[root@localhost ~]# df   #默認情況是1024
Filesystem           1K-blocks      Used Available Use% Mounted on
/dev/sda2             16036224   2750464  12458012  19% /
/dev/sda1               295561     16911    263390   7% /boot
tmpfs                  1028272         0   1028272   0% /dev/shm

[root@localhost ~]# export POSIXLY_CORRECT=true   #設置POSIXLY_CORRECT為true

[root@localhost ~]# df    #POSIXLY_CORRECT為true時默認512
Filesystem         512B-blocks      Used Available Use% Mounted on
/dev/sda2             32072448   5500928  24916024  19% /
/dev/sda1               591122     33822    526780   7% /boot
tmpfs                  2056544         0   2056544   0% /dev/shm

[root@localhost ~]# unset POSIXLY_CORRECT   #取消設置POSIXLY_CORRECT
[root@localhost ~]# df 
Filesystem           1K-blocks      Used Available Use% Mounted on
/dev/sda2             16036224   2750464  12458012  19% /
/dev/sda1               295561     16911    263390   7% /boot
tmpfs                  1028272         0   1028272   0% /dev/shm

[root@CT1190 log]# df -H

文件系統 容量 已用 可用 已用% 掛載點

/dev/sda7 21G 913M 19G 5% /

[root@CT1190 log]# df -lh

文件系統 容量 已用 可用 已用% 掛載點

/dev/sda7 19G 871M 18G 5% /

[root@CT1190 log]# df -k

文件系統 1K-塊 已用 可用 已用% 掛載點

/dev/sda7 19840892 890896 17925856 5% /

/dev/sda9 203727156 93292572 99918840 49% /opt

/dev/sda8 4956284 570188 4130264 13% /var

du查看目錄大小,df查看磁盤使用情況。
我常使用的命令(必要時,sudo使用root權限),
1.查看某個目錄的大小:du -hs /home/master/documents
查看目錄下所有目錄的大小並按大小降序排列:sudo du -sm /etc/* | sort -nr | less
2.查看磁盤使用情況(文件系統的使用情況):sudo df -h
df --block-size=GB

-h是使輸出結果更易於人類閱讀;du -s只展示目錄的使用總量(不分別展示各個子目錄情況),-m是以MB為單位展示目錄的大小(當然-k/-g就是KB/GB了)。
更多信息,還是man du 和 man df 來獲得吧。

du

du的英文為:disk usage,含義是磁盤空間使用情況,功能是逐級進入指定目錄的每一個子目錄並顯示該目錄占用文件系統數據塊的情況,如果沒有指定目錄,則對當前的目錄進行統計。
du的命令各個選項含義如下:

a:顯示全部目錄和其次目錄下的每個檔案所占的磁盤空間
s:只顯示各檔案大小的總合
b:大小用bytes來表示
x:跳過在不同文件系統上的目錄不予統計
a:遞歸地顯示指定目錄中各文件及子孫目錄中各文件占用的數據塊數
...
使用du進行查看
root@tech163:/home/htmlfile# du
16 ./test
60 ./bbb
84 .

其中第一列是以塊為單位計的磁盤空間容量,第二列列出目錄中使用這些空間的目錄名稱

1)查看當前目錄包含子目錄的大小
root@tech163:/home/htmlfile# du -sm .
1 .
其中的du -sm . 的“.”是代表當前目錄。

2)查看當前目錄以及子目錄的大小
root@tech163:/home/htmlfile# du -h
16K ./test
60K ./bbb
84K .
其中 -h 表示使用K,M,G的人性化形式顯示。

3)看到當前目錄下的bbb目錄大小,但不想查看其他目錄以及子目錄
root@tech163:/home/htmlfile# du -ch bbb | tail -n 1
60K total
使用了管道包含了du和tail兩個命令,-c表示最後計算出所列目錄的大小之和。

4)列出當前目錄下所有目錄和文件的大小
root@tech163:/home/htmlfile# du -ah bbb
4.0K bbb/mysql.php
4.0K bbb/index.htm
4.0K bbb/p.php
其中-a表示包含目錄和文件

5)不換行列出目錄以及子目錄大小的信息
root@tech163:/home/htmlfile# du -0h
16K ./test60K ./bbb84K .root@tech163:/home/htmlfile#
其中 -0 表示列出一條信息後不換行,接著輸出第二條信息

實例8:顯示幾個文件或目錄各自占用磁盤空間的大小,還統計它們的總和

命令:du -c log30.tar.gz log31.tar.gz

實例7:文件和目錄都顯示

命令:

輸出:[root@localhost soft]# du -ah test

df [選項] [文件名]
參數:
-a--all,顯示所有的文件系統,包括虛擬文件系統,參考示例2。
-B--block-size,指定單位大小。比如1k,1m等,參考示例3。
-h--human-readable,以人們易讀的GB、MB、KB等格式顯示,參考示例4。
-H--si,和-h參數一樣,但是不是以1024,而是1000,即1k=1000,而不是1k=1024。
-i--inodes,不用硬盤容量,而是以inode的數量來顯示,參考示例5。
-k:以KB的容量顯示各文件系統,相當於--block-size=1k
-m:以KB的容量顯示各文件系統,相當於--block-size=1m
-l--local,只顯示本地文件系統。
--no-sync:在統計使用信息之前不調用sync命令(默認)。
-sync:在統計使用信息之前調用sync命令。
-P--portability,使用POSIX格式顯示,參考示例6。
-t--type=TYPE,只顯示指定類型的文件系統,參考示例7。
-T--print-type,顯示文件系統類型,參考示例8。
-x--exclude-type=TYPE,不顯示指定類型的文件系統。
--help:顯示幫助信息。
--version:顯示版本信息。

df命令示例

示例1:查看包含給定文件磁盤空間使用情況

[root@localhost ~]# df /home   #指定一個文件夾,查看該文件夾所在磁盤的使用情況
Filesystem           1K-blocks      Used Available Use% Mounted on
/dev/sda2             16036224   2749160  12459316  19% /

[root@localhost ~]# df /bin/ls   #指定一個文件
Filesystem           1K-blocks      Used Available Use% Mounted on
/dev/sda2             16036224   2749160  12459316  19% /

[root@localhost ~]# df /bin/ls /home  #指定多個文件或文件夾
Filesystem           1K-blocks      Used Available Use% Mounted on
/dev/sda2             16036224   2749160  12459316  19% /
/dev/sda2             16036224   2749160  12459316  19% /

[root@localhost ~]# df /bin/ls /home /usr/  #指定多個文件或文件夾
Filesystem           1K-blocks      Used Available Use% Mounted on
/dev/sda2             16036224   2749160  12459316  19% /
/dev/sda2             16036224   2749160  12459316  19% /
/dev/sda2             16036224   2749160  12459316  19% /

[root@localhost ~]# df   # 默認情況
Filesystem           1K-blocks      Used Available Use% Mounted on
/dev/sda2             16036224   2750464  12458012  19% /
/dev/sda1               295561     16911    263390   7% /boot
tmpfs                  1028272         0   1028272   0% /dev/shm

輸出結果列說明:

  • Filesystem:代表該文件系統時哪個分區,所以列出的是設備名稱。
  • 1K-blocks:說明下面的數字單位是1KB,可利用-h-m來改變單位大小,也可以用-B來設置。
  • Used:已經使用的空間大小。
  • Available:剩余的空間大小。
  • Use%:磁盤使用率。如果使用率在90%以上時,就需要註意了,避免磁盤容量不足出現系統問題,尤其是對於文件內容增加較快的情況(如/home、/var/spool/mail等)。
  • Mounted on:磁盤掛載的目錄,即該磁盤掛載到了哪個目錄下面。

示例2:查看所有文件系統

[root@localhost ~]# df -a    #包括虛擬文件系統
Filesystem           1K-blocks      Used Available Use% Mounted on
/dev/sda2             16036224   2749160  12459316  19% /
proc                         0         0         0   -  /proc

[root@localhost ~]# df     # 默認
Filesystem           1K-blocks      Used Available Use% Mounted on
/dev/sda2             16036224   2749160  12459316  19% /
/dev/sda1               295561     16911    263390   7% /boot
tmpfs                  1028272         0   1028272   0% /dev/shm
  • 說明:系統裏面存在很多特殊的文件系統,這些比較特殊的文件系統幾乎都是在內存當中,(如/proc掛載點),所以,這些特殊文件系統都不會占據硬盤空間。

示例3:指定單位大小

[root@localhost ~]# df -B 1k    #1k為單位
Filesystem           1K-blocks      Used Available Use% Mounted on
/dev/sda2             16036224   2749160  12459316  19% /
/dev/sda1               295561     16911    263390   7% /boot
tmpfs                  1028272         0   1028272   0% /dev/shm

[root@localhost ~]# df --block-size 1m   #1M為單位
Filesystem           1M-blocks      Used Available Use% Mounted on
/dev/sda2                15661      2685     12168  19% /
/dev/sda1                  289        17       258   7% /boot
tmpfs                     1005         0      1005   0% /dev/shm
  • 示例4:以人們易讀的方式顯示
[root@localhost ~]# df -h
Filesystem            Size  Used Avail Use% Mounted on
/dev/sda2              16G  2.7G   12G  19% /
/dev/sda1             289M   17M  258M   7% /boot
tmpfs                1005M     0 1005M   0% /dev/shm

示例5:以inode的數量顯示

[root@localhost ~]# df -i
Filesystem            Inodes   IUsed   IFree IUse% Mounted on
/dev/sda2            4141216  101279 4039937    3% /
/dev/sda1              76304      35   76269    1% /boot
tmpfs                 257068       1  257067    1% /dev/shm
  • 示例6:使用POSIX格式顯示
[root@localhost ~]# df -P  #使用POSIX格式顯示
Filesystem         1024-blocks      Used Available Capacity Mounted on
/dev/sda2             16036224   2750464  12458012      19% /
/dev/sda1               295561     16911    263390       7% /boot
tmpfs                  1028272         0   1028272       0% /dev/shm

[root@localhost ~]# df 
Filesystem           1K-blocks      Used Available Use% Mounted on
/dev/sda2             16036224   2750464  12458012  19% /
/dev/sda1               295561     16911    263390   7% /boot
tmpfs                  1028272         0   1028272   0% /dev/shm
  • 示例7:只顯示類型為ext3的文件系統
[root@localhost ~]# df -t ext3
Filesystem           1K-blocks      Used Available Use% Mounted on
/dev/sda2             16036224   2750464  12458012  19% /
/dev/sda1               295561     16911    263390   7% /boot

示例8:顯示出每個文件系統的類型

[root@localhost ~]# df -T
Filesystem    Type   1K-blocks      Used Available Use% Mounted on
/dev/sda2     ext3    16036224   2750464  12458012  19% /
/dev/sda1     ext3      295561     16911    263390   7% /boot
tmpfs        tmpfs     1028272         0   1028272   0% /dev/shm
  • 示例9:顯示出每個文件系統的類型
[root@localhost ~]# df   #默認情況是1024
Filesystem           1K-blocks      Used Available Use% Mounted on
/dev/sda2             16036224   2750464  12458012  19% /
/dev/sda1               295561     16911    263390   7% /boot
tmpfs                  1028272         0   1028272   0% /dev/shm

[root@localhost ~]# export POSIXLY_CORRECT=true   #設置POSIXLY_CORRECT為true

[root@localhost ~]# df    #POSIXLY_CORRECT為true時默認512
Filesystem         512B-blocks      Used Available Use% Mounted on
/dev/sda2             32072448   5500928  24916024  19% /
/dev/sda1               591122     33822    526780   7% /boot
tmpfs                  2056544         0   2056544   0% /dev/shm

[root@localhost ~]# unset POSIXLY_CORRECT   #取消設置POSIXLY_CORRECT
[root@localhost ~]# df 
Filesystem           1K-blocks      Used Available Use% Mounted on
/dev/sda2             16036224   2750464  12458012  19% /
/dev/sda1               295561     16911    263390   7% /boot
tmpfs                  1028272         0   1028272   0% /dev/shm

[root@CT1190 log]# df -H

文件系統 容量 已用 可用 已用% 掛載點

/dev/sda7 21G 913M 19G 5% /

[root@CT1190 log]# df -lh

文件系統 容量 已用 可用 已用% 掛載點

/dev/sda7 19G 871M 18G 5% /

[root@CT1190 log]# df -k

文件系統 1K-塊 已用 可用 已用% 掛載點

/dev/sda7 19840892 890896 17925856 5% /

/dev/sda9 203727156 93292572 99918840 49% /opt

/dev/sda8 4956284 570188 4130264 13% /var

du查看目錄大小,df查看磁盤使用情況。
我常使用的命令(必要時,sudo使用root權限),
1.查看某個目錄的大小:du -hs /home/master/documents
查看目錄下所有目錄的大小並按大小降序排列:sudo du -sm /etc/* | sort -nr | less
2.查看磁盤使用情況(文件系統的使用情況):sudo df -h
df --block-size=GB

-h是使輸出結果更易於人類閱讀;du -s只展示目錄的使用總量(不分別展示各個子目錄情況),-m是以MB為單位展示目錄的大小(當然-k/-g就是KB/GB了)。
更多信息,還是man du 和 man df 來獲得吧。

du

du的英文為:disk usage,含義是磁盤空間使用情況,功能是逐級進入指定目錄的每一個子目錄並顯示該目錄占用文件系統數據塊的情況,如果沒有指定目錄,則對當前的目錄進行統計。
du的命令各個選項含義如下:

a:顯示全部目錄和其次目錄下的每個檔案所占的磁盤空間
s:只顯示各檔案大小的總合
b:大小用bytes來表示
x:跳過在不同文件系統上的目錄不予統計
a:遞歸地顯示指定目錄中各文件及子孫目錄中各文件占用的數據塊數
...
使用du進行查看
root@tech163:/home/htmlfile# du
16 ./test
60 ./bbb
84 .

其中第一列是以塊為單位計的磁盤空間容量,第二列列出目錄中使用這些空間的目錄名稱

1)查看當前目錄包含子目錄的大小
root@tech163:/home/htmlfile# du -sm .
1 .
其中的du -sm . 的“.”是代表當前目錄。

2)查看當前目錄以及子目錄的大小
root@tech163:/home/htmlfile# du -h
16K ./test
60K ./bbb
84K .
其中 -h 表示使用K,M,G的人性化形式顯示。

3)看到當前目錄下的bbb目錄大小,但不想查看其他目錄以及子目錄
root@tech163:/home/htmlfile# du -ch bbb | tail -n 1
60K total
使用了管道包含了du和tail兩個命令,-c表示最後計算出所列目錄的大小之和。

4)列出當前目錄下所有目錄和文件的大小
root@tech163:/home/htmlfile# du -ah bbb
4.0K bbb/mysql.php
4.0K bbb/index.htm
4.0K bbb/p.php
其中-a表示包含目錄和文件

5)不換行列出目錄以及子目錄大小的信息
root@tech163:/home/htmlfile# du -0h
16K ./test60K ./bbb84K .root@tech163:/home/htmlfile#
其中 -0 表示列出一條信息後不換行,接著輸出第二條信息

實例8:顯示幾個文件或目錄各自占用磁盤空間的大小,還統計它們的總和

命令:du -c log30.tar.gz log31.tar.gz

實例7:文件和目錄都顯示

命令:

輸出:[root@localhost soft]# du -ah test

每天一個linux命令(2):file 命令

作用:查看文件類型信息

格式:file[OPTIONS...] [FILE...]

主要參數:

--help            顯示幫助信息

-v,--version         輸出版本信息並退出

-b,--brief         不顯示文件名字

-f,--files-fromFILE      顯示指定文件的類型(可指定多個用" "分開)

-F,--seperatorSTRING    使用字符串作為分隔符,不再使用“:”

-i,--mime           顯示文件的mime類型

--mime-type

--mime-encoding

-L,--dereference       顯示符號鏈接所指向文件信息

-h,--no-dereference

-d,--debug          輸出調試信息

示例:

查看當前路徑下所有文件信息

file *

不顯示文件名稱

file --brief 1.txt

顯示文件mime類型

file --mime 1.txt

顯示名稱列表所列文件信息

file -f 1.txt

顯示符號鏈接所指向類型

file -L 1.txt

顯示幫助信息

file --help

顯示版本信息

file--version


 

linux命令詳解之df(6/19)