背景

 我想Linux的free命令对于很多的Linux老司机来说,应该是非常熟悉的了。我作为一个小白,下面来详细分析一下Linux 的free 命令。

free详解

目录

  • 用处

  • free的详细解析

  • free的一些语法

用处

在这里简单的说一下free的用处。

 free 命令显示系统使用和空闲的内存情况,包括物理内存、交互区内存(swap)和内核缓冲区内存,共享内存将被忽略。

free的详细解析

在Linux服务器上使用free -m 命令,得到下面的结果:

感兴趣的可以看一下官方对于结果中的每一项是怎么解析的:

Linux Free命令

接下来我再用我的渣渣英语来翻译一下,画重点了:

可以把结果看为3部分,分别是Mem部分和-/+ buffers/cache部分还有Swap部分: Mem:表示物理内存统计。

total:表示物理内存总量(total = used + free)。

used:表示总计分配给缓存(包含buffers 与cache )使用的数量,但其中可能部分缓存并未实际使用。

free:未被分配的内存。

shared:共享内存,一般系统不会用到,这里也不讨论。

buffers:系统分配但未被使用的buffers 数量。 cached:系统分配但未被使用的cache 数量。

-/+ buffers/cache:表示物理内存的缓存统计。

Swap:表示硬盘上交换分区的使用情况,这里我们不去关心。

接下来我用我的大学数学来计算各个部分之间的关系(由于我使用了mb而不是kb来显示,可能会有误差)。

  1. total = used + free,也就是7872=3503+4368

  2. used1=buffers+cache+user2,也就是 3503=153+1707+1642

  3. free2=free1+buffers+cache,也就是6229=4368+153+1707

那么我们看Linux系统的可用内存究竟看的是那一部分呢?

根据上面的分析和计算,我们可以知道,我们应该看的是free2那部分。因为free2=free1+buffers+cache。如果你看到free的值过小了,那么你就需要提高警惕了。

free的一些语法

感兴趣的可以先看一下官方的介绍,就问你燃不燃:

Linux 之free命令详解

接下来看一下菜鸟教程给出的翻译:

语法 free [-bkmotV][-s <间隔秒数>]

参数说明:

-b  以Byte为单位显示内存使用情况。

-k  以KB为单位显示内存使用情况。

-m  以MB为单位显示内存使用情况。

-o  不显示缓冲区调节列。 -s<间隔秒数>  持续观察内存使用状况。

-t  显示内存总和列。

-V  显示版本信息。

我们看到官方教程里有一个/proc/meminfo的东东,这是干啥用的?我先来cat一下:

关于/proc/meminfo的内容,具体的我也没有去研究。但是通过文档我可以总结出的就是free -m显示的结果就是通过统计/proc/meminfo的内容来得到的。

感谢&总结

 本文主要分享了linux的free命令。如果我们想要查看系统的可用内存,那么我们应当关注free2这个值。"日拱一卒无有尽 功不唐捐终入海",每天进步一点点,量变引起质变,最后,我们还是可以取得长足的进步的,共勉。

 我的微信公众号

LInux的free命令相关推荐

  1. linux下find命令的使用和总结

    背景:find命令十分的好用,特别是在查找文件的时候,这个时候需要和文件通配符一起使用. 1 前言 我们为什么要学会使用find命令? 每一种操作系统都有成千上万的文件组成,对于linux这样&quo ...

  2. linux 判断某个命令是否安装

    linux 判断某个命令是否安装 if ! [ -x "$(command -v git)" ]; thenecho 'Error: git is not installed.' ...

  3. linux下比较文件并输出,Linux使用diff命令比较文件找出文件之间相同的部分

    如果你需要比较系统文件的内容,那么你就会是使用到diff命令,可找出文件之间相同的部分,下面小编就给大家详细介绍下Linux diff命令的用法. diff 命令是 linux上非常重要的工具,用于比 ...

  4. Linux的watch命令--实时监测命令的运行结果

    watch 是一个非常实用的命令,基本所有的 Linux 发行版都带有这个小工具,如同名字一样,watch 可以帮你监测一个命令的运行结果,省得你一遍遍的手动运行.直接在 watch 后面接你想运行的 ...

  5. linux的strace命令

    linux的strace命令 strace 命令是一种强大的工具,它能够显示所有由用户空间程序发出的系统调用. strace 显示这些调用的参数并返回符号形式的值.strace 从内核接收信息,而且不 ...

  6. Linux下addr2line命令用法

    Linux下addr2line命令用于将程序指令地址转换为所对应的函数名.以及函数所在的源文件名和行号.当含有调试信息(-g)的执行程序出现crash时(core dumped),可使用addr2li ...

  7. Linux查看WAS的jvm信息,linux 下使用命令查看jvm信息

    java程序员除了编写业务代码之外,特别是项目上线之后,更需要关注的是系统的性能表现,这个时候就需要了解一下jvm的性能表现了,可以借助于java虚拟机自带的一些分析工具,主要有三个常用的命令. 1. ...

  8. linux命令注入,Linux kernel本地命令注入漏洞

    Linux kernel本地命令注入漏洞 2005-10-19 eNet&Ciweek Linux kernel 2.2.6 Linux kernel 2.2.5 Linux kernel 2 ...

  9. linxu passwd 给linux用户设置密码 命令

    [root@localhost ~]# passwd # 修改 root 用户的密码 passwd 给linux用户设置密码 命令 passwd www 直接passwd是当前用户设置密码 非交互式修 ...

  10. Linux之链接命令

    Linux之链接命令 1. 链接命令的介绍 链接命令是创建链接文件,链接文件分为: 软链接 硬链接 命令 说明 ln -s 创建软链接 ln 创建硬链接 2. 软链接 类似于Windows下的快捷方式 ...

最新文章

  1. JavaBean简单及使用
  2. 西湖大学生命科学学院杨剑教授实验室招聘启事
  3. things to do in English debate: scenario
  4. linux中的目录结构---Linux学习笔记
  5. 安装oracle-java,并覆盖原先的OpenJDK
  6. [html] websocket握手阶段是通过什么协议传输的?
  7. 如何查看服务器数据库型号,如何查看服务器里的数据库
  8. Linux使用LVM逻辑卷 给分区扩容 不重启 热扩容
  9. 金字塔型php的9x9乘法口诀表,python中打印金字塔和九九乘法表的几种方法
  10. MYSQL 开发技巧
  11. java 调用mysql存储过程实例_java调用mysql存储过程实例分析
  12. Python(十六):标准库
  13. linux 切换内核版本,切换 Linux 内核版本
  14. 蝶形算法(H.264)
  15. ~《概率论》~贝叶斯公式
  16. Tomcat出现中文乱码
  17. ant design java_SpringBoot整合Ant Design Pro进行部署
  18. 概率论的学习和整理--番外5:等差数列求和公式,等比数列求和公式,以及比较 数列,函数,级数等相似概念
  19. C#用NPOI控件把MySQL数据库中查询符合条件的数据导出到EXCEL
  20. 【新手】网络拓扑图要这样画

热门文章

  1. joycon 连不上_任天堂承认Switch左边Joy-Con手柄有连接问题,但已经修复
  2. 3月14日 我用Python几十行代码为女朋友画了一个爱心
  3. 区块链和NGO组织为难民社区带来希望
  4. 工业4.0让德国制造业两年受损500亿?中国应怎样学习前车之鉴
  5. 字符串反射调用与字符串同名函数方法且带任意参数的通用封装
  6. 挂载目录进不去怎么办?
  7. Flutter showDialog/showModalBottomSheet刷新UI
  8. nginx实现session共享
  9. 软件测试工程师笔试题(附带答案)
  10. Latex数学公式渲染学习