当前位置: 首页 > news >正文

Linux shell编程学习笔记39:df命令

  1. 0 前言
  2. 1  df命令的功能、格式和选项说明
    1. 1.1 df命令的功能
    2. 1.2 df命令的格式
    3. 1.3 df命令选项说明 
  3. 2 df命令使用实例 
    1. 2.1  df:显示主要文件系统信息
    2. 2.2 df -a:显示所有文件系统信息
    3. 2.3 df -t[=]TYPE或--type[=]TYPE:显示TYPE指定类型的文件系统信息
    4. 2.4 df --total:追加显示统计信息
    5. 2.5 df -l 或 --local:只显示本地文件系统信息
    6. 2.6 df -B[=]SIZE或--block-size[=]SIZE:按按 SIZE指定的单位来打印大小信息
    7. 2.7 df -h或--human-readable:以人类可读格式打印尺寸
    8. 2.8 df -i或--inodes: 列出索引节点而不是块使用情况信息
    9. 2.9 df-T或--print-type:打印文件系统类型
    10. 2.10 df -P或--portability:使用 POSIX 输出格式
    11. 2.11 df -x=TYPE或--exclude-type=TYPE:显示非TYPE指定类型的文件系统信息

0 前言

说到DF,你最先想起的是啥呢?

我最选想来的是以前玩过的由 NovaLogic 开发和出版的一款第一人称射击游戏,名字是《Delta Force | 三角洲特种部队》,简写就是DF,启动游戏的文件是df.exe。

那么,在Linux中,df命令的功能是什么呢?

 1  df命令的功能、格式和选项说明

我们可以使用 help def命令查看 df命令的帮助信息。

purpleEndurer @ bash ~ $df --help
Usage: df [OPTION]... [FILE]...
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          list inode information instead of block usage
  -k                    like --block-size=1K
  -l, --local           limit listing to local file systems
      --no-sync         do not invoke sync before getting usage info (default)
      --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     display this help and exit
      --version  output version information and exit

Display values are in units of the first available SIZE from --block-size,
and the DF_BLOCK_SIZE, BLOCK_SIZE and BLOCKSIZE environment variables.
Otherwise, units default to 1024 bytes (or 512 if POSIXLY_CORRECT is set).

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 coreutils online help: <http://www.gnu.org/software/coreutils/>
Report df translation bugs to <http://translationproject.org/team/>
For complete documentation, run: info coreutils 'df invocation'

1.1 df命令的功能

df命令是一个外部命令,其功能是显示有关每个 指定FILE 所在的文件系统的信息,或者默认显示所有文件系统的信息。
 

purpleEndurer @ bash ~ $ type -p df
/usr/bin/df
purpleEndurer @ bash ~ $ 

 

 1.2 df命令的格式

 df [选项]... [文件]...

1.3 df命令选项说明 

选项功能
-a或--all显示所有系统,包括虚拟(伪)、重定向、不可访问的文件系统
-B[=]SIZE或--block-size=SIZE

按 SIZE指定的单位来打印大小信息

SIZE 包括一个整数和可选单位K、M、G、T、P、E、Z、Y(1024 的幂)或 KB、MB、...(1000 的幂)。

例如:

-BM 以1024*1024 = 1,048,576 字节为单位来打印

-B10M 是以 10*1024*1024 = 10,485,760 字节为单位来打印

--direc显示文件而不是挂载点统计信息
--total追加显示统计信息
-h或--human-readable以人类可读格式打印尺寸(例如,1K 234M 2G)
-H或--si使用 1000 的幂而不是 1024 的幂
-i或--inodes列出 索引节点 信息而不是块使用情况。
-k类似--block-size=1K
-l或--local只显示本地文件系统
--no-sync在获取使用情况信息之前不调用同步(默认)
--output[=FIELD_LIST]使用FIELD_LIST定义的输出格式,如果省略FIELD_LIST则打印所有字段。
-P或--portability使用 POSIX 输出格式
--sync在获取使用情况信息之前调用同步
-t[=]TYPE或--type[=]TYPE显示TYPE 指定类型的文件系统信息
-T或--print-type打印文件系统类型
-x=TYPE或--exclude-type=TYPE显示非指定 TYPE 类型的文件系统信息
-v(忽略)
--help显示此帮助并退出
--version输出版本信息并退出

2 df命令使用实例 

2.1  df:显示主要文件系统信息

purpleEndurer @ bash ~ $df
Filesystem     1K-blocks    Used Available Use% Mounted on
overlay         30336008 3149316  25765272  11% /
tmpfs              65536       0     65536   0% /dev
tmpfs            2001376       0   2001376   0% /sys/fs/cgroup
/dev/vda5       30336008 3149316  25765272  11% /etc/hosts
overlay         10218772 5892684   3785416  61% /etc/hostname
shm                65536       0     65536   0% /dev/shm
tmpfs            2001376       0   2001376   0% /proc/acpi
tmpfs            2001376       0   2001376   0% /proc/scsi
tmpfs            2001376       0   2001376   0% /sys/firmware

overlayfs文件系统是一种堆叠文件系统,可以将多个目录的内容叠加到另一个目录上,不影响磁盘空间结构。

默认的Linux发行版中的内核配置都会开启tmpfs,并映射到了/dev/shm目录。

/dev/shm/这个目录不在硬盘上,而是在内存里。

 2.2 df -a:显示所有文件系统信息

purpleEndurer @ bash ~ $df -a
Filesystem     1K-blocks    Used Available Use% Mounted on
overlay         30336008 3149316  25765272  11% /
proc                   0       0         0    - /proc
tmpfs              65536       0     65536   0% /dev
devpts                 0       0         0    - /dev/pts
mqueue                 0       0         0    - /dev/mqueue
sysfs                  0       0         0    - /sys
tmpfs            2001376       0   2001376   0% /sys/fs/cgroup
cgroup                 0       0         0    - /sys/fs/cgroup/systemd
cgroup                 0       0         0    - /sys/fs/cgroup/cpuset
cgroup                 0       0         0    - /sys/fs/cgroup/cpu,cpuacct
cgroup                 0       0         0    - /sys/fs/cgroup/hugetlb
cgroup                 0       0         0    - /sys/fs/cgroup/freezer
cgroup                 0       0         0    - /sys/fs/cgroup/devices
cgroup                 0       0         0    - /sys/fs/cgroup/perf_event
cgroup                 0       0         0    - /sys/fs/cgroup/blkio
cgroup                 0       0         0    - /sys/fs/cgroup/net_cls,net_prio
cgroup                 0       0         0    - /sys/fs/cgroup/ioasids
cgroup                 0       0         0    - /sys/fs/cgroup/memory
cgroup                 0       0         0    - /sys/fs/cgroup/rdma
cgroup                 0       0         0    - /sys/fs/cgroup/pids
/dev/vda5       30336008 3149316  25765272  11% /etc/hosts
/dev/vda5       30336008 3149316  25765272  11% /dev/termination-log
overlay         10218772 5892692   3785408  61% /etc/hostname
overlay         10218772 5892692   3785408  61% /etc/resolv.conf
shm                65536       0     65536   0% /dev/shm
devpts                 0       0         0    - /dev/console
proc                   0       0         0    - /proc/bus
proc                   0       0         0    - /proc/fs
proc                   0       0         0    - /proc/irq
proc                   0       0         0    - /proc/sys
proc                   0       0         0    - /proc/sysrq-trigger
tmpfs            2001376       0   2001376   0% /proc/acpi
tmpfs              65536       0     65536   0% /proc/kcore
tmpfs              65536       0     65536   0% /proc/keys
tmpfs              65536       0     65536   0% /proc/timer_list
tmpfs              65536       0     65536   0% /proc/sched_debug
tmpfs            2001376       0   2001376   0% /proc/scsi
tmpfs            2001376       0   2001376   0% /sys/firmware
purpleEndurer @ bash ~ $

proc是一种伪文件系统(也即虚拟文件系统),它存储的是当前内核运行状态的一系列特殊文件,用户可以通过这些文件查看有关系统硬件及当前正在运行进程的信息,甚至可以通过更改其中某些文件来改变内核的运行状态。 

devpts是一个虚拟文件系统,用于实现终端设备的动态分配和管理。

mqueue是Linux进程间通信-消息队列。

sysfs 是一个伪文件系统,用于对具体的内核对象(例如物理设备)进行建模,并提供一种将设备和设备驱动程序关联起来的方法。

cgroups(Control Groups),是Linux内核提供的物理资源隔离机制,通过这种机制,可以实现对Linux进程或者进程组的资源限制、隔离和统计功能。

2.3 df -t[=]TYPE或--type[=]TYPE:显示TYPE指定类型的文件系统信息

显示 tmpfs类型的文件系统信息:

purpleEndurer @ bash ~ $ df -t tmpfs
Filesystem     1K-blocks  Used Available Use% Mounted on
tmpfs              65536     0     65536   0% /dev
tmpfs            2001376     0   2001376   0% /sys/fs/cgroup
shm                65536     0     65536   0% /dev/shm
tmpfs            2001376     0   2001376   0% /proc/acpi
tmpfs            2001376     0   2001376   0% /proc/scsi
tmpfs            2001376     0   2001376   0% /sys/firmware
purpleEndurer @ bash ~ $ df --type tmpfs
Filesystem     1K-blocks  Used Available Use% Mounted on
tmpfs              65536     0     65536   0% /dev
tmpfs            2001376     0   2001376   0% /sys/fs/cgroup
shm                65536     0     65536   0% /dev/shm
tmpfs            2001376     0   2001376   0% /proc/acpi
tmpfs            2001376     0   2001376   0% /proc/scsi
tmpfs            2001376     0   2001376   0% /sys/firmware
purpleEndurer @ bash ~ $ 

2.4 df --total:追加显示统计信息

 显示 tmpfs类型的文件系统信息及统计信息:

purpleEndurer @ bash ~ $ df -t tmpfs --total
Filesystem     1K-blocks  Used Available Use% Mounted on
tmpfs              65536     0     65536   0% /dev
tmpfs            2001376     0   2001376   0% /sys/fs/cgroup
shm                65536     0     65536   0% /dev/shm
tmpfs            2001376     0   2001376   0% /proc/acpi
tmpfs            2001376     0   2001376   0% /proc/scsi
tmpfs            2001376     0   2001376   0% /sys/firmware
total            8136576     0   8136576   0% -
purpleEndurer @ bash ~ $ 

命令执行结果末尾增加了一行统计信息:

total            8136576     0   8136576   0% -

2.5 df -l 或 --local:只显示本地文件系统信息

purpleEndurer @ bash ~ $ df -l
Filesystem     1K-blocks    Used Available Use% Mounted on
overlay         30336008 3149440  25765148  11% /
tmpfs              65536       0     65536   0% /dev
tmpfs            2001376       0   2001376   0% /sys/fs/cgroup
/dev/vda5       30336008 3149440  25765148  11% /etc/hosts
overlay         10218772 5892672   3785428  61% /etc/hostname
shm                65536       0     65536   0% /dev/shm
tmpfs            2001376       0   2001376   0% /proc/acpi
tmpfs            2001376       0   2001376   0% /proc/scsi
tmpfs            2001376       0   2001376   0% /sys/firmware
purpleEndurer @ bash ~ $ 

 2.6 df -B[=]SIZE或--block-size[=]SIZE:按按 SIZE指定的单位来打印大小信息

分别以 M 和 10M为单位显示 tmpfs类型的文件系统信息

purpleEndurer @ bash ~ $ df -t tmpfs -BM
Filesystem     1M-blocks  Used Available Use% Mounted on
tmpfs                64M    0M       64M   0% /dev
tmpfs              1955M    0M     1955M   0% /sys/fs/cgroup
shm                  64M    0M       64M   0% /dev/shm
tmpfs              1955M    0M     1955M   0% /proc/acpi
tmpfs              1955M    0M     1955M   0% /proc/scsi
tmpfs              1955M    0M     1955M   0% /sys/firmware
purpleEndurer @ bash ~ $ df -t tmpfs -B10M
Filesystem     10M-blocks  Used Available Use% Mounted on
tmpfs                   7     0         7   0% /dev
tmpfs                 196     0       196   0% /sys/fs/cgroup
shm                     7     0         7   0% /dev/shm
tmpfs                 196     0       196   0% /proc/acpi
tmpfs                 196     0       196   0% /proc/scsi
tmpfs                 196     0       196   0% /sys/firmware
purpleEndurer @ bash ~ $ 

2.7 df -h或--human-readable:以人类可读格式打印尺寸

以人类可读格式显示tmpfs类型的文件系统信息

purpleEndurer @ bash ~ $ df -t tmpfs -h
Filesystem      Size  Used Avail Use% Mounted on
tmpfs            64M     0   64M   0% /dev
tmpfs           2.0G     0  2.0G   0% /sys/fs/cgroup
shm              64M     0   64M   0% /dev/shm
tmpfs           2.0G     0  2.0G   0% /proc/acpi
tmpfs           2.0G     0  2.0G   0% /proc/scsi
tmpfs           2.0G     0  2.0G   0% /sys/firmware
purpleEndurer @ bash ~ $ 

2.8 df -i或--inodes: 列出索引节点而不是块使用情况信息

显示tmpfs类型的文件系统索引节点信息

purpleEndurer @ bash ~ $  df -t tmpfs -i
Filesystem     Inodes IUsed  IFree IUse% Mounted on
tmpfs          500345    18 500327    1% /dev
tmpfs          500345    18 500327    1% /sys/fs/cgroup
shm            500345     1 500344    1% /dev/shm
tmpfs          500345     1 500344    1% /proc/acpi
tmpfs          500345     1 500344    1% /proc/scsi
tmpfs          500345     1 500344    1% /sys/firmware
purpleEndurer @ bash ~ $ 

可以看到,命令返回信息中:

第2列是Inodes而不是Size

第3列是Iused而不是Used

第5列是是IUse%而不是Use%.

2.9 df-T或--print-type:打印文件系统类型

显示tmpfs类型的文件系统包括系统类型的信息

purpleEndurer @ bash ~ $  df -t tmpfs -T
Filesystem     Type  1K-blocks  Used Available Use% Mounted on
tmpfs          tmpfs     65536     0     65536   0% /dev
tmpfs          tmpfs   2001380     0   2001380   0% /sys/fs/cgroup
shm            tmpfs     65536     0     65536   0% /dev/shm
tmpfs          tmpfs   2001380     0   2001380   0% /proc/acpi
tmpfs          tmpfs   2001380     0   2001380   0% /proc/scsi
tmpfs          tmpfs   2001380     0   2001380   0% /sys/firmware

命令返回信息中增加了第2列Type。

可见/dev/shm也是tmpfs类型的文件系统。

显示本地文件系统包括系统类型的信息

purpleEndurer @ bash ~ $  df -l -T
Filesystem     Type    1K-blocks    Used Available Use% Mounted on
overlay        overlay  30336008 3149388  25765200  11% /
tmpfs          tmpfs       65536       0     65536   0% /dev
tmpfs          tmpfs     2001380       0   2001380   0% /sys/fs/cgroup
/dev/vda5      ext4     30336008 3149388  25765200  11% /etc/hosts
overlay        overlay  10218772 5892484   3785616  61% /etc/hostname
shm            tmpfs       65536       0     65536   0% /dev/shm
tmpfs          tmpfs     2001380       0   2001380   0% /proc/acpi
tmpfs          tmpfs     2001380       0   2001380   0% /proc/scsi
tmpfs          tmpfs     2001380       0   2001380   0% /sys/firmware

可见/dev/vda5其实是ext4文件系统。

2.10 df -P或--portability:使用 POSIX 输出格式


使用 POSIX 输出格式显示tmpfs类型的文件系统信息

purpleEndurer @ bash ~ $  df -t tmpfs -P
Filesystem     1024-blocks  Used Available Capacity Mounted on
tmpfs                65536     0     65536       0% /dev
tmpfs              2001380     0   2001380       0% /sys/fs/cgroup
shm                  65536     0     65536       0% /dev/shm
tmpfs              2001380     0   2001380       0% /proc/acpi
tmpfs              2001380     0   2001380       0% /proc/scsi
tmpfs              2001380     0   2001380       0% /sys/firmware
purpleEndurer @ bash ~ $ 

2.11 df -x=TYPE或--exclude-type=TYPE:显示非指定 TYPE 类型的文件系统信息

显示非tmpfs类型的文件系统信息

purpleEndurer @ bash ~ $  df -x tmpfs
Filesystem     1K-blocks    Used Available Use% Mounted on
overlay         30336008 3149468  25765120  11% /
/dev/vda5       30336008 3149468  25765120  11% /etc/hosts
overlay         10218772 5892808   3785292  61% /etc/hostname
purpleEndurer @ bash ~ $ 

相关文章:

  • Go语言使用gosseract 库来进行图像文字识别,识别出来的中文是乱码的?如何解决?
  • linux项目部署(jdk,tomcat,mysql,nginx,redis)
  • python学习笔记10(选择结构2、循环结构1)
  • 【Linux】Linux系统编程——Linux目录结构
  • 【驱动】TI AM437x(内核调试-02):dynamic 动态打印调试
  • 微信小程序Canvas画布绘制图片、文字、矩形、(椭)圆、直线
  • Spring整理-Spring框架的国际化
  • 根据gbt81702008数值修约的C#函数
  • Logstash:迁移数据到 Elasticsearch
  • MySQL 8.0中新增的功能(八)
  • Python+甘特图及标签设置
  • 计算机网络层之ICMP与IGMP
  • 已解决java.lang.NoSuchFieldException异常的正确解决方法,亲测有效!!!
  • Python 网络爬虫入门详解
  • 图解Kubernetes的服务(Service)
  • Android优雅地处理按钮重复点击
  • Apache的基本使用
  • bearychat的java client
  • canvas绘制圆角头像
  • Create React App 使用
  • IDEA常用插件整理
  • JavaScript 一些 DOM 的知识点
  • JSONP原理
  • Linux各目录及每个目录的详细介绍
  • orm2 中文文档 3.1 模型属性
  • PHP 程序员也能做的 Java 开发 30分钟使用 netty 轻松打造一个高性能 websocket 服务...
  • Promise面试题,控制异步流程
  • vagrant 添加本地 box 安装 laravel homestead
  • VUE es6技巧写法(持续更新中~~~)
  • Webpack 4x 之路 ( 四 )
  • webpack4 一点通
  • WinRAR存在严重的安全漏洞影响5亿用户
  • Yii源码解读-服务定位器(Service Locator)
  • 订阅Forge Viewer所有的事件
  • 聊聊springcloud的EurekaClientAutoConfiguration
  • 前端性能优化--懒加载和预加载
  • 浅谈web中前端模板引擎的使用
  • 探索 JS 中的模块化
  • 腾讯视频格式如何转换成mp4 将下载的qlv文件转换成mp4的方法
  • 微信如何实现自动跳转到用其他浏览器打开指定页面下载APP
  • 与 ConTeXt MkIV 官方文档的接驳
  • 2017年360最后一道编程题
  • ​Base64转换成图片,android studio build乱码,找不到okio.ByteString接腾讯人脸识别
  • ​Linux Ubuntu环境下使用docker构建spark运行环境(超级详细)
  • #Lua:Lua调用C++生成的DLL库
  • #我与Java虚拟机的故事#连载04:一本让自己没面子的书
  • #在 README.md 中生成项目目录结构
  • (1)STL算法之遍历容器
  • (52)只出现一次的数字III
  • (超简单)构建高可用网络应用:使用Nginx进行负载均衡与健康检查
  • (附源码)计算机毕业设计ssm基于Internet快递柜管理系统
  • (附源码)计算机毕业设计SSM疫情下的学生出入管理系统
  • (理论篇)httpmoudle和httphandler一览
  • (最优化理论与方法)第二章最优化所需基础知识-第三节:重要凸集举例
  • .NET Framework 4.6.2改进了WPF和安全性