2019独角兽企业重金招聘Python工程师标准>>>

在 Linux 系统上,有时你可能想从命令行快速地了解系统的已使用和未使用的内存空间。如果你是一个 Linux 新手,有个好消息:有一条系统内置的命令可以显示这些信息:free。在本文中,我们会讲到 free 命令的基本用法以及它所提供的一些重要的功能,文中提到的所有命令和用法都是在 Ubuntu 16.04LTS 上测试过的。

Linux free 命令

让我们看一下 free 命令的语法:

free [options]

free 命令的 man 手册如是说:

free 命令显示了系统的可用和已用的物理内存及交换内存的总量,以及内核用到的缓存空间。这些信息是从 /proc/meminfo 中得到的。

接下来我们用问答的方式了解一下 free 命令是怎么工作的。

Q1. 怎么用 free 命令查看已使用和未使用的内存?

这很容易,您只需不加任何参数地运行 free 这条命令就可以了:

free

这是 free 命令在我的系统上的输出:

这些列是什么意思呢?

  • total - 安装的内存的总量(等同于 /proc/meminfo 中的 MemTotal 和 SwapTotal)
  • used - 已使用的内存(计算公式为:used = total - free - buffers - cache)
  • free - 未被使用的内存(等同于 /proc/meminfo 中的 MemFree 和 SwapFree)
  • shared - 通常是临时文件系统使用的内存(等同于 /proc/meminfo 中的 Shmem;自内核 2.6.32 版本可用,不可用则显示为 0)
  • buffers - 内核缓冲区使用的内存(等同于 /proc/meminfo 中的 Buffers)
  • cache - 页面缓存和 Slab 分配机制使用的内存(等同于 /proc/meminfo 中的 Cached 和 Slab)
  • buff/cache - buffers 与 cache 之和
  • available - 在不计算交换空间的情况下,预计可以被新启动的应用程序所使用的内存空间。与 cache 或者 free 部分不同,这一列把页面缓存计算在内,并且不是所有的可回收的 slab 内存都可以真正被回收,因为可能有被占用的部分。(等同于 /proc/meminfo 中的 MemAvailable;自内核 3.14 版本可用,自内核 2.6.27 版本开始模拟;在其他版本上这个值与 free 这一列相同)

Q2. 如何更改显示的单位呢?

如果需要的话,你可以更改内存的显示单位。比如说,想要内存以兆为单位显示,你可以用 -m 这个参数:

free -m

同样地,你可以用 -b 以字节显示、-k 以 KB 显示、-m 以 MB 显示、-g 以 GB 显示、--tera 以 TB 显示。

Q3. 怎么显示可读的结果呢?

free 命令提供了 -h 这个参数使输出转化为可读的格式。

free -h

用这个参数,free 命令会自己决定用什么单位显示内存的每个数值。例如:

Q4. 怎么让 free 命令以一定的时间间隔持续运行?

您可以用 -s 这个参数让 free 命令以一定的时间间隔持续地执行。您需要传递给命令行一个数字参数,做为这个时间间隔的秒数。

例如,使 free 命令每隔 3 秒执行一次:

free -s 3

如果您需要 free 命令只执行几次,您可以用 -c 这个参数指定执行的次数:

free -s 3 -c 5

上面这条命令可以确保 free 命令每隔 3 秒执行一次,总共执行 5 次。

注:这个功能目前在 Ubuntu 系统上还存在 问题,所以并未测试。

Q5. 怎么使 free 基于 1000 计算内存,而不是 1024?

如果您指定 free 用 MB 来显示内存(用 -m 参数),但又想基于 1000 来计算结果,可以用 --sj 这个参数来实现。下图展示了用与不用这个参数的结果:

Q6. 如何使 free 命令显示每一列的总和?

如果您想要 free 命令显示每一列的总和,你可以用 -t 这个参数。

free -t

如下图所示:

总结

free 命令对于系统管理来讲是个极其有用的工具。它有很多参数可以定制化您的输出,易懂易用。我们在本文中也提到了很多有用的参数。练习完之后,请您移步至 man 手册了解更多内容。

via: https://www.howtoforge.com/linux-free-command/

作者:Himanshu Arora 译者:jessie-pang 校对:wxy

本文由 LCTT 原创编译,Linux中国 荣誉推出

原文来自:https://linux.cn/article-9232-1.html

本文地址:http://www.linuxprobe.com/6-examples-free.html编辑:清蒸github,审核员:逄增宝

转载于:https://my.oschina.net/u/3308739/blog/1609937

初学者应该看看的6个free命令例子相关推荐

  1. 十个 SCP 传输命令例子

    十个 SCP 传输命令例子 Linux系统管理员应该很熟悉CLI环境,因为通常在Linux服务器中是不安装GUI的.SSH可能是Linux系统管理员通过远程方式安全管理服务器的最流行协议.在SSH命令 ...

  2. macos终端命令_M-cli为初学者简化了macOS的最佳终端命令

    macos终端命令 You can do a lot with the macOS Terminal, but the commands tend to be obtuse. A free progr ...

  3. linux ps命令大全,Linux ps命令例子汇总

    Linux ps命令主要用于查看系统运行的进程,确定进程运行的状态机是否占用过多资源等?下面学习啦小编通过实例来给大家详细介绍下Linux的ps命令,一起来了解下吧. Linux提供了当前进程的同时, ...

  4. mysql 命令 例子_一个例子运用了所用mysql数据库操作命令

    Mysql常用命令解析 修改密码的几种方法 方法一:登陆进mysql set password for root@localhost = password('123'); /这种方法也适用于给某个用户 ...

  5. java dump命令例子,常用命令示例

    一.快速抓取Java thread dump (1)tail -20000 cmsWIIWebServer1289.out | perl -ne 'print if /FULL THREAD DUMP ...

  6. C# ListView 简单命令例子

    编写工具常用到ListView控件,能简单列出选项,常用到流程校验显示.这里介绍简答显示,添加与删除功能. 1.添加表头,与显示. this.listView1.Columns.Add("队 ...

  7. linux grep命令 例子,14个grep命令使用例子

    所有的类linux系统都会提供一个名为grep(global regular expression print,全局正则表达式输出)的搜索工具.grep命令在对一个或多个文件的内容进行基于模式的搜索的 ...

  8. linux打包cpio命令例子,linux压缩命令——tar、cpio详解

    常见的linux压缩方式: *.Z        compress压缩 *.gz        gzip压缩 *.bz2       bzip2压缩 *.tar      tar打包(没有压缩) *. ...

  9. linux grep命令例子,详解linux grep命令

    本文介绍了linux grep命令,具体如下: 1.作用 Linux系统中grep命令是一种强大的文本搜索工具,它能使用正则表达式搜索文本,并把匹 配的行打印出来.grep全称是Global Regu ...

最新文章

  1. 测试脚本的实用性(续)谈对编写脚本的几点规范
  2. 3D视觉创新应用(三维重建)竞赛作品系列——人体三维精准量测与动作捕捉
  3. Spark 2.4重磅发布:优化深度学习框架集成,提供更灵活的流式接收器
  4. InnerHTML、InnerText、outerHTML、outerText的区别
  5. CentOS6 启动流程图文解剖 + 引导文件损坏处理方法
  6. 8086地址传送指令LEA
  7. Redis运维和开发学习笔记(6) 监控Redis工作状态-info命令
  8. python预测发展趋势_Python中的趋势“预测器”?
  9. CV Code|计算机视觉开源周报20200504期
  10. thymeleaf条件表达式
  11. iOS底层探索之多线程(十六)——锁分析(NSLock、NSCondtion、NSRecursiveLock、NSCondition)
  12. Java八大算法:归并排序
  13. weka 贝叶斯 java_weka中朴素贝叶斯的实现
  14. java activiti 工作流引擎_Activiti工作流引擎简介详解
  15. matlab全局变量和局部变量和子函数
  16. 单库单表到多库多表的全量复制方案
  17. Jenkins 与 Gitlab 之间非交互拉取代码并进行代码部署
  18. 斜面怎么计算机械效率,斜面的机械效率
  19. 上海市出租车预约叫车和投诉电话一览
  20. Hibernate一对多/多对一关系映射详解及相应的增删查改操作

热门文章

  1. Node提示:npm does not support Node.js v12.16.3
  2. Winform中设置ZedGraph的曲线为折线、点折线、散点图
  3. SpringBoot+Echarts实现请求后台数据显示饼状图
  4. Vue的条件渲染指令
  5. springboot+jwt实现token登陆权限认证
  6. React.js 开发常见问题
  7. 将文本计算机应用能力的样式设置为标题1,计算机应用基础期末考试试题
  8. 游戏行业案例 | 99.7% 的充值玩家比例提升,从何而来?
  9. css深入理解之overflow
  10. openstack 网络简史