Linux命令 - 如何查询当前已使用的内存占比

文章解释了如何结合free-h命令和awk工具,通过提取Linux系统内存使用情况的已用内存和总内存,计算并输出已用内存的百分比。
摘要由CSDN通过智能技术生成

结果先行

free -h | awk 'NR==2{printf "%.2f%%", $3*100/$2 }'

在这里插入图片描述

解释一下

这个命令组合了 free -hawk 命令来输出已用内存的百分比。我们一步一步来解析这个命令:

Step 1

free -h

free 是一个用来显示 Linux 系统内存使用情况的命令。-h 参数是 “human-readable” 的缩写,意味着输出的内存大小会以易读的格式(如 KB、MB、GB)显示。

执行 free -h 后,你会得到类似于下面的输出(实际值会有所不同):

              total        used        free      shared  buff/cache   available
Mem:           314G        215G         13G        4.0G         84G         93G
Swap:            0B          0B          0B

在以上输出结果中,Mem: 行显示了物理内存的使用情况,其中 used 列显示已用内存(215GB),free 列显示空闲内存(13GB)。

Step 2

管道符后的awk命令

awk 'NR==2{printf "%.2f%%", $3*100/$2 }'

awk 是一个文本处理工具,可以用于提取文本或者数据。此前有写过简单的介绍,有兴趣可查阅《Linux命令-awk部分命令及示例》。
在上面的命令中,awk 执行了以下操作:

NR==2:NR 是 awk 的内置变量,表示需要处理的行号。NR==2 表示只处理第二行,即 free -h 命令输出的 Mem: 行。
{printf “%.2f%%”, $3*100/$2 }:对第二行执行的处理方式。

  • $3$2 分别代表取第3列和第2列的值,即 used 列和 total 列。$3*100/$2 显而易见是已用内存占总内容存的百分比。
  • printf “%.2f%%”, … 则是各种语言都常见的格式化输出,保留两位小数,并在末尾添加 百分号。

所以,整个命令 free -h | awk ‘NR==2{printf “%.2f%%”, $3*100/$2 }’ 的作用是执行 free -h 命令,然后通过管道符 | 将输出传递给 awk 命令,awk 再提取第2行(即内存使用情况)的已用内存和总内存,并计算已用内存的百分比,最后以两位小数的形式输出这个百分比,即为 215×100÷314=68.47。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值