linux基本功之df命令实战

在这里插入图片描述

😄 大家好,我是沐风晓月,双一流本科,计算机专业,一起学习,努力成长!
🛰️🛰️ 本文选如系列专栏:【linux基本功-基础命令实战】
💓 想要学好Linux,命令是基本功,企业中常用的命令大约200多个,不管是写shell脚本还是管理操作系统,最常用的命令必须要牢牢掌握,像我们以前学乘法口诀一样,烂熟于心,唯有如此,才能打牢基础。
💓 只要地球不爆炸,我们永远不放假,只要宇宙不重启,我们永远不休息,,风里雨里节日里我们都在机房等着你
💓 知识最重要的是记忆,反复练习才能有所成就
💓 入门须知: 想要人生从容,必须全力以赴,努力才是你最终的入场券🚀🚀🚀 💕 最后:
努力 成长自己,愿我们都能在看不到的地方闪闪发光 ,一起加油进步🍺🍺🍺

一. df命令介绍

大家好,又见面了,我是沐风晓月,未来的计算机程序猿+翻译,今天一起看看df命令

df命令的英文全称即“Disk Free”,主要用于显示操作系统的可用的磁盘空间。

一般情况下,默认单位为KB,建议使用“df -h”的参数组合,根据磁盘容量自动变换合适的单位,更利于阅读。

日常工作中,主要用该命令查看磁盘被占用了多少空间、还剩多少空间等信息。

二. 语法格式及常用选项

依据惯例,我们还是先查看帮助,使用 df --help

用法:df [选项]... [文件]...
Show information about the file system on which each FILE resides,
or all file systems by default.

Mandatory arguments to long options are mandatory for short options too.
  -a, --all             include pseudo, duplicate, inaccessible file systems
  -B, --block-size=SIZE  scale sizes by SIZE before printing them; e.g.,
                           '-BM' prints sizes in units of 1,048,576 bytes;
                           see SIZE format below
      --direct          show statistics for a file instead of mount point
      --total           produce a grand total
  -h, --human-readable  print sizes in human readable format (e.g., 1K 234M 2G)
  -H, --si              likewise, but use powers of 1000 not 1024
  -i, --inodes		显示inode 信息而非块使用量
  -k			即--block-size=1K
  -l, --local		只显示本机的文件系统
      --no-sync		取得使用量数据前不进行同步动作(默认)
      --output[=FIELD_LIST]  use the output format defined by FIELD_LIST,
                               or print all fields if FIELD_LIST is omitted.
  -P, --portability     use the POSIX output format
      --sync            invoke sync before getting usage info
  -t, --type=TYPE       limit listing to file systems of type TYPE
  -T, --print-type      print file system type
  -x, --exclude-type=TYPE   limit listing to file systems not of type TYPE
  -v                    (ignored)
      --help		显示此帮助信息并退出
      --version		显示版本信息并退出

所显示的数值是来自 --block-size、DF_BLOCK_SIZE、BLOCK_SIZE 
及 BLOCKSIZE 环境变量中第一个可用的 SIZE 单位。
否则,默认单位是 1024 字节(或是 512,若设定 POSIXLY_CORRECT 的话)。

SIZE is an integer and optional unit (example: 10M is 10*1024*1024).  Units
are K, M, G, T, P, E, Z, Y (powers of 1024) or KB, MB, ... (powers of 1000).

FIELD_LIST is a comma-separated list of columns to be included.  Valid
field names are: 'source', 'fstype', 'itotal', 'iused', 'iavail', 'ipcent',
'size', 'used', 'avail', 'pcent', 'file' and 'target' (see info page).

为了更直观一些,我们把查出来的参数用表格来展示:

参数描述
GNU 参数说明
-a,列出包括BLOCK为0的文件系统
–block-size=SIZE指定块的大小
-h,–huma-readable用常见的格式显示出大小(例如:1K 234M 2G)
-H,–si"同上,但是这里的1k等于1000字节而不是1024字节
-i, --inodes用信息索引点代替块表示使用状况
-k, --kilobytes指定块大小等于1024字节来显示使用状况
-l, --local只显示本地文件系统使用状况
-m, --megabytes以指定块大小等于1048576字节(1M)来显示使用状况
-t, --type=TYPE只显示指定类型(TYPE)的文件系统
-T, --print-type输出每个文件系统的类型
-x, --exclude-type=TYPE只显示指定类型(TYPE)之外的文件系统.
–help输出该命令的帮助信息并退出

有了具体的参数之后,我们再来看实战案例:

三. 参考案例

3.1 查看系统磁盘设备的信息

此时,无需加任何参数,默认是KB为单位

[root@mufenggrow ~]# df
文件系统                   1K-块    已用     可用 已用% 挂载点
/dev/mapper/centos-root 17811456 4522712 13288744   26% /
devtmpfs                  914564       0   914564    0% /dev
tmpfs                     931624       0   931624    0% /dev/shm
tmpfs                     931624   18776   912848    3% /run
tmpfs                     931624       0   931624    0% /sys/fs/cgroup
/dev/sda1                1038336  182700   855636   18% /boot
tmpfs                     186328       8   186320    1% /run/user/42
tmpfs                     186328      56   186272    1% /run/user/0
/dev/sr0                 4480476 4480476        0  100% /mnt


上述代码,执行df后显示的没一列的信息入下表:

列数描述
第一列代表文件系统对应的设备文件的路径名(一般是硬盘上的分区)
第二列给出分区包含的数据块(1024字节)的数目
第三列已经使用的块数
第四列还可以使用的块数
第五列普通用户空间使用的百分比
第六列Mounted on列表示文件系统的挂载点

这里需要注意的是:

第3,4列块数之和不等于第2列中的块数。

这是因为缺省的每个分区都留了少量空间供系统管理员使用。即使遇到普通用户空间已满的情况,让管理员仍能登录和留有解决问题所需的工作空间

3.2 用常见的格式显示出大小

所谓的常见格式指的是K,M, G 等单位。

这里用到-h参数,,–human-readable ,人类易读的信息

[root@mufenggrow ~]# df -h
文件系统                 容量  已用  可用 已用% 挂载点
/dev/mapper/centos-root   17G  4.4G   13G   26% /
devtmpfs                 894M     0  894M    0% /dev
tmpfs                    910M     0  910M    0% /dev/shm
tmpfs                    910M   19M  892M    3% /run
tmpfs                    910M     0  910M    0% /sys/fs/cgroup
/dev/sda1               1014M  179M  836M   18% /boot
tmpfs                    182M  8.0K  182M    1% /run/user/42
tmpfs                    182M   56K  182M    1% /run/user/0
/dev/sr0                 4.3G  4.3G     0  100% /mnt

我们也经常用这个方法查看 光盘的挂载镜像位置和是否已经挂载,本文中是挂载到了/mnt

有的小伙伴会发现个问题,这里的大小好像并不等于磁盘总数, 这是因为: df -H 显示的时候,默认让1k等于1000字节,而不是1024字节,所以会有误差。

3.3 查看全部文件系统

此处使用-a 参数,列出包括BLOCK为0的文件系统

[root@mufenggrow ~]# df -a
文件系统                   1K-块    已用     可用 已用% 挂载点
rootfs                         -       -        -     - /
sysfs                          0       0        0     - /sys
proc                           0       0        0     - /proc
devtmpfs                  914564       0   914564    0% /dev
securityfs                     0       0        0     - /sys/kernel/security
tmpfs                     931624       0   931624    0% /dev/shm
devpts                         0       0        0     - /dev/pts
tmpfs                     931624   18736   912888    3% /run
tmpfs                     931624       0   931624    0% /sys/fs/cgroup
cgroup                         0       0        0     - /sys/fs/cgroup/systemd
pstore                         0       0        0     - /sys/fs/pstore
cgroup                         0       0        0     - /sys/fs/cgroup/pids
cgroup                         0       0        0     - /sys/f

说明:系统里面存在很多特殊的文件系统,这些比较特殊的文件系统几乎都是在内存当中,(如/proc挂载点),所以,这些特殊文件系统都不会占据硬盘空间。

3.4 显示指定文件所在分区的磁盘使用情况

此时可以直接在df后面跟上想要显示的文件分区名字

案例一: 展示/dev/sr0分区

[root@mufenggrow ~]# df /dev/sr0
文件系统         1K-块    已用  可用 已用% 挂载点
/dev/sr0       4480476 4480476     0  100% /mnt

知道这个用法之后,我们在后面写脚本的时候,就多了一种截取思路。一旦发现某个磁盘使用率超过了指定值,就可以单独显示这个分区的情况,不至于受其他磁盘的干扰。

3.5 以inode模式来显示磁盘使用情况

这里我们用到-i参数,用于显示inode号:

[root@mufenggrow ~]# df -i
文件系统                  Inode 已用(I) 可用(I) 已用(I)% 挂载点
/dev/mapper/centos-root 8910848  150978 8759870       2% /
devtmpfs                 228641     351  228290       1% /dev
tmpfs                    232906       1  232905       1% /dev/shm
tmpfs                    232906     905  232001       1% /run
tmpfs                    232906      16  232890       1% /sys/fs/cgroup
/dev/sda1                524288     341  523947       1% /boot
tmpfs                    232906       7  232899       1% /run/user/42
tmpfs                    232906      25  232881       1% /run/user

工作中有时候我们会遇到磁盘有空间,但显示磁盘不足,无法创建文件的情况,很大程度上是因为inode号不足了。 这时候就可以使用df -i查看inode是否有剩余。

如果要列出每个磁盘的inode情况,可以使用 -ai

[root@mufenggrow ~]# df -ai
文件系统                  Inode 已用(I) 可用(I) 已用(I)% 挂载点
rootfs                        -       -       -        - /
sysfs                         0       0       0        - /sys
proc                          0       0       0        - /proc
devtmpfs                 228641     351  228290       1% /dev
securityfs                    0       0       0        - /sys/kernel/security
tmpfs                    232906       1  232905       1% /dev/shm
devpts                        0       0       0        - /dev/pts
tmpfs                    232906     905  232001       1% /run
tmpfs                    232906      16  232890       1% /sys/fs/cgroup

3.6 输出每个文件系统的类型

-T参数可以输出文件系统的类型,这里可以使用df -T 参数

文件系统                类型        1K-块    已用     可用 已用% 挂载点
/dev/mapper/centos-root xfs      17811456 4528808 13282648   26% /
devtmpfs                devtmpfs   914564       0   914564    0% /dev
tmpfs                   tmpfs      931624       0   931624    0% /dev/shm
tmpfs                   tmpfs      931624   18736   912888    3% /run
tmpfs                   tmpfs      931624       0   931624    0% /sys/fs/cgroup
/dev/sda1               xfs       1038336  182700   855636   18% /boot
tmpfs                   tmpfs      186328       8   186320    1% /run/user/42
tmpfs                   tmpfs      186328      56   186272    1% /run/user/0
/dev/sr0                iso9660   4480476 4480476        0  100% /mnt

文件系统类型有: XFS, EXT系列,以及上面代码的iso9660和一些不常见的文件类型,比如tmpfs

3.7 指定单位大小显示:

此时可以用 --lock-size来指定大小,比如指定为1M ,就可以使用 block-size 1m


# 我们先来看不指定大小的情况
[root@mufenggrow ~]# df -h
文件系统                 容量  已用  可用 已用% 挂载点
/dev/mapper/centos-root   17G  4.4G   13G   26% /
devtmpfs                 894M     0  894M    0% /dev
tmpfs                    910M     0  910M    0% /dev/shm
tmpfs                    910M   19M  892M    3% /run
tmpfs                    910M     0  910M    0% /sys/fs/cgroup
/dev/sda1               1014M  179M  836M   18% /boot
tmpfs                    182M  8.0K  182M    1% /run/user/42
tmpfs                    182M   56K  182M    1% /run/user/0
/dev/sr0                 4.3G  4.3G     0  100% /mnt
文件系统                1M-块  已用  可用 已用% 挂载点

# 再查看指定大小的情况
[root@mufenggrow ~]# df --block-size 1m
文件系统                1M-块  已用  可用 已用% 挂载点
/dev/mapper/centos-root 17394  4423 12972   26% /
devtmpfs                  894     0   894    0% /dev
tmpfs                     910     0   910    0% /dev/shm
tmpfs                     910    19   892    3% /run
tmpfs                     910     0   910    0% /sys/fs/cgroup
/dev/sda1                1014   179   836   18% /boot
tmpfs                     182     1   182    1% /run/user/42
tmpfs                     182     1   182    1% /run/user/0
/dev/sr0                 4376  4376     0  100% /mnt

你会发现,自己指定大小后,就不会出现 G和M单位混用了,而是全部都使用M来显示,统一了单位,我们写脚本的时候,就无需进行单位的换算了。

当然如果不关心磁盘使用量,只想看看磁盘的大小,可以使用lsblk命令

[root@mufenggrow ~]# lsblk
NAME            MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT
sda               8:0    0   20G  0 disk 
├─sda1            8:1    0    1G  0 part /boot
└─sda2            8:2    0   19G  0 part 
  ├─centos-root 253:0    0   17G  0 lvm  /
  └─centos-swap 253:1    0    2G  0 lvm  [SWAP]
sr0              11:0    1  4.3G  0 rom  /mnt

我是沐风晓月,关注我,下篇文章我们来探讨linux基本功系列之lsblk命令的使用。

总结

df命令在日常工作中,应用的比较广泛,一定要认真学习,记熟记牢常用参数。

💕💕💕 好啦,这就是今天要分享给大家的全部内容了,我们下期再见!✨ ✨ ✨
🍻🍻🍻如果你喜欢的话,就不要吝惜你的一键三连了~

请添加图片描述
在这里插入图片描述

评论 21
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值