Linux学习-37-查看文件系统硬盘信息(df、du命令)

114 篇文章 8 订阅
10.2 df用法详解:查看文件系统硬盘使用情况
  • Linux 磁盘管理好坏直接关系到整个系统的性能问题。df (disk free)命令,检查文件系统的磁盘空间占用情况,包括文件系统所在硬盘分区的总容量、已使用的容量、剩余容量等。

Linux 操作系统的文件数据除了文件实际内容外,通常含有非常多的属性,例如 Linux 操作系统的文件权限(rwx)与文件属性(拥有者、群组、时间参数等)。文件系统通常会将这两部分的数据分别存放在不同的区块,权限与属性存放在 inode 中,至于实际数据则放置到 data block 区块中。另外,还有一个超级区块(superblock)会记录整个文件系统的整体信息,包括 inode 与 block 的总量、使用量、剩余量等。

inode:记录文件的属性,一个文件占用一个 inode,同时记录此文件的数据所在的 block。

df 命令主要读取的数据几乎都针对的是整个文件系统,所以 df 命令主要是从各文件系统的 Super block 中读取数据。

  • 可以使用 stat 命令查看某个文件的 inode 信息:
[root@CncLucZK ~]# stat /test/user		#目录inode信息
  File: /test/user
  Size: 4096      	Blocks: 8          IO Block: 4096   directory
Device: fd01h/64769d	Inode: 1048584     Links: 4
Access: (0711/drwx--x--x)  Uid: (    0/    root)   Gid: (    0/    root)
Access: 2022-10-23 10:13:12.026008909 +0800
Modify: 2022-10-16 13:52:11.446111165 +0800
Change: 2022-10-16 13:52:11.446111165 +0800
 Birth: -
[root@CncLucZK ~]# stat /test/tmp.txt	#文件inode信息
  File: /test/tmp.txt
  Size: 77        	Blocks: 8          IO Block: 4096   regular file
Device: fd01h/64769d	Inode: 1048621     Links: 2
Access: (0644/-rw-r--r--)  Uid: (    0/    root)   Gid: (    0/    root)
Access: 2022-10-19 09:57:12.706650044 +0800
Modify: 2022-10-19 09:57:09.392640825 +0800
Change: 2022-10-19 09:57:09.392640825 +0800
 Birth: -
  • df 命令的基本格式为:
[root@CncLucZK ~]# df [选项] [目录或文件名]
  • 选项及作用。

    选项作用
    -a显示所有文件系统信息,包括系统特有的 /proc、/sysfs 等文件系统;
    -m以 MB 为单位显示容量;
    -k以 KB 为单位显示容量,默认以 KB 为单位;
    -h使用人们习惯的 KB、MB 或 GB 等单位自行显示容量;
    -H以 M=1000K 取代 M=1024K 的进位方式;
    -T显示文件系统类型, 连同该 partition 的 filesystem 名称 (例如 ext3) 也列出
    -i不用硬盘容量显示,而是以含有 inode 的数量来显示。
  • 将系统内所有的文件系统列出来!

[root@CncLucZK ~]# df
Filesystem      1K-blocks      Used Available Use% Mounted on
/dev/hdc2         9920624   3823112   5585444  41% /
/dev/hdc3         4956316    141376   4559108   4% /home
/dev/hdc1          101086     11126     84741  12% /boot
tmpfs              371332         0    371332   0% /dev/shm

不使用任何选项的 df 命令,默认会将系统内所有的 (不含特殊内存内的文件系统与 swap) 文件系统信息,以 KB 为单位显示出来。

  • 由 df 命令显示出的各列信息的含义分别是:
    • Filesystem:表示该文件系统位于哪个分区,因此该列显示的是设备名称;
    • 1K-blocks:此列表示文件系统的总大小,默认以 KB 为单位;
    • Used:表示用掉的硬盘空间大小;
    • Available:表示剩余的硬盘空间大小;
    • Use%:硬盘空间使用率。如果使用率高达 90% 以上,就需要额外注意,因为容量不足,会严重影响系统的正常运行;
    • Mounted on:文件系统的挂载点,也就是硬盘挂载的目录位置。
  • 这里使用了 -h 选项,因此文件系统的各种容量数据,将容量结果以易读的容量格式显示出来(通常使用 GB 或 MB)。
[root@CncLucZK ~]# df -h
Filesystem            Size  Used Avail Use% Mounted on
/dev/hdc2             9.5G  3.7G  5.4G  41% /
/dev/hdc3             4.8G  139M  4.4G   4% /home
/dev/hdc1              99M   11M   83M  12% /boot
tmpfs                 363M     0  363M   0% /dev/shm

#这里在 df 命令后添加了目录名,在这种情况下,df 命令会自动分析该目录所在的分区,并将所在分区的有关信息显示出来。由此,我们就可以知道,该目录下还可以使用多少磁盘容量。
[root@CncLucZK ~]# df -h /etc
Filesystem      Size  Used Avail Use% Mounted on
/dev/vda1        50G  8.5G   39G  18% /
#将 /etc 底下的可用的磁盘容量以易读的容量格式显示

在这里插入图片描述

devtmpfs 、tmpfs 、这些是硬盘的驱动程序 , /dev/sdal 是第一个分区,它的后面放了一个/boot是Linux的启动文件 .

/dev/mapper/centos-root 是逻辑卷

  • 将系统内的所有特殊文件格式及名称都列出来
[root@localhost ~]# df -aT
Filesystem    Type 1K-blocks    Used Available Use% Mounted on
/dev/hdc2     ext3   9920624 3823112   5585444  41% /
proc          proc         0       0         0   -  /proc
sysfs        sysfs         0       0         0   -  /sys
devpts      devpts         0       0         0   -  /dev/pts
/dev/hdc3     ext3   4956316  141376   4559108   4% /home
/dev/hdc1     ext3    101086   11126     84741  12% /boot
tmpfs        tmpfs    371332       0    371332   0% /dev/shm
none   binfmt_misc         0       0         0   -  /proc/sys/fs/binfmt_misc
sunrpc  rpc_pipefs         0       0         0   -  /var/lib/nfs/rpc_pipefs

注意,使用 -a 选项,会将很多特殊的文件系统显示出来,这些文件系统包含的大多是系统数据,存在于内存中,不会占用硬盘空间,因此你会看到,它们所占据的硬盘总容量为 0。

10.3 du命令:统计目录或文件所占磁盘空间大小
  • du (disk used)命令:是统计目录或文件所占磁盘空间大小的命令用以检查磁盘空间使用量。我们在统计目录时,用ls -l命令只能查看父目录下的子目录和子文件占用了多少空间,而是想看父目录下的子目录和子文件的总磁盘占用量大小,这时就需要使用 du 命令才能统计目录的真正磁盘占用量大小
[root@CncLucZK test]# ll -dh user
drwx--x--x 4 root root 4.0K Oct 16 13:52 user

注意,使用"ls -h"命令也是可以看到文件的大小的。但在使用"ls -h"命令査看目录大小时,目录的大小多数是 4KB,这是因为目录下的子目录名和子文件名是保存到父目录的 block(默认大小为 4KB)中的,如果父目录下的子目录和子文件并不多,一个 block 就能放下,那么这个父目录就只占用了一个 block 大小。

  • du 命令的格式如下:
[root@CncLucZK ~]# du [选项] [目录或文件名]
  • 选项:
    • -a:显示每个子文件的磁盘占用量。默认只统计子目录的磁盘占用量
    • -h:使用习惯单位显示磁盘占用量,如 KB、MB 或 GB 等;
    • -s:统计总磁盘占用量,而不列出子目录和子文件的磁盘占用量
    • -S :不包括子目录下的总计,与 -s 有点差别。
    • -k :以 KBytes 列出容量显示;
    • -m :以 MBytes 列出容量显示;
  • 直接输入 du 没有加任何选项时,则 du 会分析当前所在目录里的子目录(包括隐藏文件夹)不统计子文件所占用的硬盘空间:
#每个目录都会列出来
[root@CncLucZK test]# du
#磁盘占用量的大小。默认单位为KB   #统计每个子目录的大小
4	./users/u3
4	./users/tmp
4	./users/u1
4	./users/u2
36	./users
4	./tproject/dict1
4	./tproject/dict
12	./tproject
4	./user/tmp
4	./user/config
3180	./user
4	./config/users
8	./config
8508	.
#统计当前目录总大小
  • 将文件的容量也列出来
[root@CncLucZK test]# du -a
4	./demo.txt.bz2
4	./demo2.txt
4	./demotmo.txt
4	./differ.patch
4	./user.txt
4	./users/u3
4	./users/tmp
....
3180	./user
4	./config/users
8	./config
8508	.
#统计当前目录的总大小,同时会统计当前目录下所有子文件和子目录磁盘占用量的大小。默认单位为 KB
[root@CncLucZK test]# du -sh
8.4M	.
#只统计当前目录在磁盘占用量总的大小,同时使用习惯单位显示
  • 检查根目录底下每个目录所占用的容量
[root@CncLucZK ~]# du -sh /*				#通配符 * 来代表每个目录。

16K	/app
0	/bin
122M	/boot
8.0K	/data
16K	/dev
24M	/etc
168K	/home
0	/lib
0	/lib64
16K	/lost+found
4.0K	/media
4.0K	/mnt
4.2M	/opt
du: cannot access '/proc/790422/task/790422/fd/4': No such file or directory
du: cannot access '/proc/790422/task/790422/fdinfo/4': No such file or directory
du: cannot access '/proc/790422/fd/4': No such file or directory
du: cannot access '/proc/790422/fdinfo/4': No such file or directory
0	/proc
1.6M	/root
420K	/run
0	/sbin
4.0K	/srv
0	/sys
8.4M	/test
72K	/tmp
4.0K	/tproject
2.8G	/usr
4.0G	/var		#系统初期最大文件
1.4G	/www
  • du命令和df命令的区别:使用 du 命令和 df 命令去统计分区的使用情况时,得到的数据是不一样的。那是因为df命令是从文件系统整体的角度考虑的,通过文件系统中未分配的空间来确定文件系统中已经分配的空间大小。也就是说,在使用 df 命令统计分区时,不仅要考虑文件占用的空间,还要统计被命令或程序占用的空间(最常见的就是文件已经删除,但是程序并没有释放空间)。而 du 命令是面向文件的,只会计算文件或目录占用的磁盘空间,会直接到文件系统内去搜寻所有的文件数据。也就是说,df 命令统计的分区更准确,是真正的空闲空间。

参考文献:
Linux df用法详解:查看文件系统硬盘使用情况
Linux 磁盘管理

下一篇:Linux学习-38-硬盘分区命令fdisk介绍
  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Linux是一种开源的操作系统,常常被用于服务器和网络设备中。在这些设备中,硬盘容量的管理是非常重要的,因为硬盘是存储数据的主要设备之一。有许多不同的方法可以用来查看硬盘容量,下面介绍几种常用的方法。 第一种方法是使用df命令df命令可以显示当前系统中各个文件系统的磁盘使用情况,包括硬盘容量、已用空间、可用空间等信息。该命令的语法如下: df [-ahiklmPtvx] [--block-size=size] [--help] [--version] [文件名|目录名] 其中,-h选项可以让命令输出结果以人类易读的方式显示;-a选项可以查看所有文件系统信息;-i选项可以查看文件系统的节点使用情况等等。如果需要查看特定文件夹的容量信息,可以在命令行中指定该文件夹的路径。 第二种方法是使用du命令du命令可以显示指定文件或目录的磁盘使用情况,也可以以递归方式查看指定目录及其子目录下所有文件的磁盘使用情况。该命令的语法如下: du [-achklmsx] [--block-size=size] [--exclude=pattern] [--help] [--version] [文件名|目录名] 其中,-h选项可以让命令输出结果以人类易读的方式显示;-a选项可以查看每个文件的磁盘使用情况;-c选项可以显示指定目录及其子目录的总磁盘使用情况等等。如果需要排除某些文件或者文件夹不计算在内,可以使用--exclude选项。 以上是两种常用的查看硬盘容量的命令,可根据实际需要选择使用。此外,还有一些其他的命令和工具也可以用来查看硬盘容量,比如fdisk、lsblk、parted等等。这些工具都有各自的特点和用途,在实际使用中需要仔细了解和选择。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值