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

时间:2023-03-10 05:21:37
linux命令详解之df(6/19)

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

每天一个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