Linux命令之df
df命令与du命令极其相似,只不过前者用来显示整个系统的磁盘使用情况,而后者更侧重某个具体的文件或目录。它们的选项也是类似的,比如-a -B -h -k。先看一个例子:
m@sys:~/blog$ df
文件系统 1K-blocks 已用 可用 已用% 挂载点
/dev/sda1 249893748 7631632 229545216 4% /
none 4 0 4 0% /sys/fs/cgroup
udev 2007232 4 2007228 1% /dev
tmpfs 403372 1388 401984 1% /run
none 5120 0 5120 0% /run/lock
none 2016840 12320 2004520 1% /run/shm
none 102400 200 102200 1% /run/user
/dev/sda5 211338616 39504140 161075976 20% /home
/dev/sda7 4672640 213176 4199064 5% /boot
df后面不加任何参数的情况下,默认把所有的在磁盘上存在的文件系统列出来。注意,还有一些文件系统是所谓的虚拟文件系统,它们并不使用磁盘上的空间,而是驻留在内存中。
观察输出的信息,分为5列:第一列是代表文件系统对应的设备文件的路径名(以/dev开头的是硬盘上的分区,类似与windows下的盘符,其他的我们先不深究);第二、三、四列分别以1K为单位显示出文件系统的总大小、已使用的大小和未使用的大小;第五列为未使用空间所占比例;第六列是挂载点。
我们发现,第3,4列块数之和不等于第2列中的块数。这是因为缺省的每个分区都留了少量空间供系统管理员使用。即使遇到普通用户空间已满的情况,管理员仍能登录和留有解决问题所需的工作空间。
下面就是各个选项:
- -a:显示包括驻留在内存中的文件系统
m@sys:~$ df -a
文件系统 1K-blocks 已用 可用 已用% 挂载点
/dev/sda1 249893748 7631636 229545212 4% /
proc 0 0 0 - /proc
sysfs 0 0 0 - /sys
none 4 0 4 0% /sys/fs/cgroup
none 0 0 0 - /sys/fs/fuse/connections
none 0 0 0 - /sys/kernel/debug
none 0 0 0 - /sys/kernel/security
udev 2007232 4 2007228 1% /dev
devpts 0 0 0 - /dev/pts
tmpfs 403372 1332 402040 1% /run
none 5120 0 5120 0% /run/lock
none 2016840 16040 2000800 1% /run/shm
none 102400 44 102356 1% /run/user
none 0 0 0 - /sys/fs/pstore
/dev/sda5 211338616 39501184 161078932 20% /home
/dev/sda7 4672640 213176 4199064 5% /boot
binfmt_misc 0 0 0 - /proc/sys/fs/binfmt_misc
systemd 0 0 0 - /sys/fs/cgroup/systemd
gvfsd-fuse 0 0 0 - /run/user/1000/gvfs
可以看到,多出来的那部分文件系统其第二列都是0,即不占用磁盘空间。
- -T:显示文件系统类型
m@sys:~$ df -T
文件系统 类型 1K-blocks 已用 可用 已用% 挂载点
/dev/sda1 ext4 249893748 7631636 229545212 4% /
none tmpfs 4 0 4 0% /sys/fs/cgroup
udev devtmpfs 2007232 4 2007228 1% /dev
tmpfs tmpfs 403372 1332 402040 1% /run
none tmpfs 5120 0 5120 0% /run/lock
none tmpfs 2016840 16040 2000800 1% /run/shm
none tmpfs 102400 44 102356 1% /run/user
/dev/sda5 ext4 211338616 39501180 161078936 20% /home
/dev/sda7 ext4 4672640 213176 4199064 5% /boot
我们可以看到,那些比较奇怪的文件系统,其类型大多是tmpfs。
- -h:以人类可读的方式显示大小
m@sys:~$ df -h
文件系统 容量 已用 可用 已用% 挂载点
/dev/sda1 239G 7.3G 219G 4% /
none 4.0K 0 4.0K 0% /sys/fs/cgroup
udev 2.0G 4.0K 2.0G 1% /dev
tmpfs 394M 1.4M 393M 1% /run
none 5.0M 0 5.0M 0% /run/lock
none 2.0G 16M 2.0G 1% /run/shm
none 100M 44K 100M 1% /run/user
/dev/sda5 202G 38G 154G 20% /home
/dev/sda7 4.5G 209M 4.1G 5% /boot
这下终于明白了-h的具体含义:不足1K的,直接显示字节数,没有单位;不足1M的,以K为单位;不足1G的,以M为单位…以此类推。
- -H:容量单位切换为工业标准,即1KB=1000Bytes,1M=1000KB等等
m@sys:~/program/C_codes$ df -H
文件系统 容量 已用 可用 已用% 挂载点
/dev/sda1 256G 7.9G 236G 4% /
none 4.1k 0 4.1k 0% /sys/fs/cgroup
udev 2.1G 4.1k 2.1G 1% /dev
tmpfs 414M 1.4M 412M 1% /run
none 5.3M 0 5.3M 0% /run/lock
none 2.1G 17M 2.1G 1% /run/shm
none 105M 46k 105M 1% /run/user
/dev/sda5 217G 41G 165G 20% /home
/dev/sda7 4.8G 219M 4.3G 5% /boot
- -i:显示inode的使用情况,而非容量
m@sys:~/program/C_codes$ df -i
文件系统 Inode 已用(I) 可用(I) 已用(I)% 挂载点
/dev/sda1 15876096 423503 15452593 3% /
none 213796 2 213794 1% /sys/fs/cgroup
udev 208992 511 208481 1% /dev
tmpfs 213796 534 213262 1% /run
none 213796 5 213791 1% /run/lock
none 213796 67 213729 1% /run/shm
none 213796 27 213769 1% /run/user
/dev/sda5 13434880 120394 13314486 1% /home
/dev/sda7 305216 333 304883 1% /boot
当你监视磁盘使用情况时,你必须注意的不仅仅是磁盘空间还有“inode”的使用情况。在Linux中,inode是用来存储特定文件的元数据的一种数据结构,在创建一个文件系统时,inode的预先定义数量将被分配。这意味着,一个文件系统可能耗尽空间不只是因为大文件用完了所有可用空间,也可能是因为很多小文件用完了所有可能的inode。
- –total:显示磁盘总利用率
m@sys:~/program/C_codes$ df -h --total
文件系统 容量 已用 可用 已用% 挂载点
/dev/sda1 239G 7.3G 219G 4% /
none 4.0K 0 4.0K 0% /sys/fs/cgroup
udev 2.0G 4.0K 2.0G 1% /dev
tmpfs 394M 1.4M 393M 1% /run
none 5.0M 0 5.0M 0% /run/lock
none 2.0G 17M 2.0G 1% /run/shm
none 100M 44K 100M 1% /run/user
/dev/sda5 202G 38G 154G 20% /home
/dev/sda7 4.5G 209M 4.1G 5% /boot
total 449G 46G 381G 11% -
- -k、-m:-k其实是df默认的选项,而-m就是以1M为单位显示容量。
- -B:更改更具体的显示单位,比如-B 2K,-B 3MB等,和在du中用法相同。
完。
郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。