free命令解惑及IC搬砖常用命令组合的使用方法

free命令
日常工作中,我们常使用free -m查看内存使用情况。其详细使用方法如下:
free [选项]
常用选项包括:
-b, --bytes 以字节为单位显示内存大小
-k, --kilo 以千字节为单位显示内存大小
-m, --mega 以兆字节为单位显示内存大小
-g, --giga 以吉字节为单位显示内存大小
-h, --human 以人性化的方式显示内存大小
-s n, --seconds n 设置数据刷新时间间隔为n秒
-c n, --count n 连续显示n次内存信息
举几个例子:
以兆字节为单位显示内存使用情况:
free -m total used free shared buff/cache availablemem: 3729 897 1714 180 1117 2402swap: 2047 0 2047  
以人性化的方式显示内存使用情况:
free -h total used free shared buff/cache availablemem: 3.6g 897m 1.7g 173m 1.1g 2.4gswap: 2.0g 0b 2.0  
持续每2秒刷新一次内存信息,显示5次:
free -s 2 -c 5 total used free shared buff/cache availablemem: 3818948 918144 1764520 176432 1136284 2468432swap: 2097148 0 2097148 total used free shared buff/cache availablemem: 3818948 918144 1764520 176432 1136284 2468432swap: 2097148 0 2097148 total used free shared buff/cache availablemem: 3818948 918144 1764520 176432 1136284 2468432swap: 2097148 0 2097148 total used free shared buff/cache availablemem: 3818948 918144 1764520 176432 1136284 2468432swap: 2097148 0 2097148 total used free shared buff/cache availablemem: 3818948 918144 1764520 176432 1136284 2468432swap: 2097148 0 2097148  
free命令基于系统整体的内存使用情况输出结果,其中包含了操作系统、应用程序和缓存等的内存占用信息:
total:总内存量。
used:已使用的内存量。
free:未使用的内存量。
shared:被共享使用的内存量。
buff/cache:缓存和缓冲区使用的内存量。
available:可用的内存量。
以上面“free -m“的结果为例,我这台thinkpad x201有3729mb的物理内存(mem那一行),程序已经使用897mb,尚有1714mb的物理内存没有分配出去。共享内存使用180mb,缓冲区和高速缓存使用1117mb。不难发现:total = used + free + buff/cache。而一直困惑我的是,free和available什么关系?
available = free + buff + cache - 不可回收部分
奔跑吧linux内核(第二版)卷1:基础架构
核心点就是“不是所有的buff和cache都可以回收”。
常用命令组合
查找/替换/删除
//替换示例1sed -i s/aaa_cfg/bbb_cfg/g `grep aaa_cfg -rl ./testcase/`  
``中的grep命令使用“-r” “-l”选项先将testcase目录文件名中含有aaa_cfg字段的文件罗列出来,并作为sed命令的输入,执行替换操作,将文件内容中的aaa_cfg替换为bbb_cfg
//查找示例2ls -1 *extra* | xargs grep -rnw packet  
在文件名含有“extra”字段的文件中,搜索含有packet单词的文件,同时打印所在的行号
//删除示例3sed -i /ccc_cfg/d `grep aaa_cfg -rl ./testcase/`  
类似替换示例1,把替换操作改成了删除
//打印匹配所在字段的前后若干行grep -rn -c 1 aaa_cfg ./testcase/  
在testcase目录文件中查找含有aaa_cfg字段的行,并打印所在行的前后一行
svn相关
//将目录及目录下个别文件添加到svn服务器svn add --parents scripts/run.py  
执行这个命令后,scripts目录添加到svn,除run.py文件外,目录下其他文件不会添加到svn
//将目录下所有未添加到svn的文件都添加到svnsvn add `svn st | grep ^? | awk '{ print $2 }'`//使用xargs也可以实现svn st | grep ^? | awk '{ print $2 }' | xargs svn add  
将grep和awk组合起来使用,罗列出来未添加到svn的文件,然后使用svn add 添加进去。下面的组合命令类似:
//将已删除的文件提交到svnsvn ci -m delete files `svn st|grep ^d|awk '{print $2}'`  
下面是比对文件的常用命令svn diff:
//查看本地文件和svn服务器版本有何差别svn diff run.py//按版本比对svn diff -r 999 run.py  
日常工作
//查看某个用户正在仿真哪些用例ps aux | grep usr_name | awk '{print $11}' | grep simv
//删除目录下的fsdb波形文件rm -f `ls */*.fsdb`


如何将MP3从计算机刻录到CD-R上?
MWC上海:华为轮值董事长徐直军就5G进行演讲
高通5G调制解调器加持,享受AR/VR和云游戏的高级体验效果
Qualcomm、vivo、腾讯王者荣耀和腾讯AI Lab强强联合  共同推动人工智能向终端侧迈进
能人强者无处藏身 央行网联平台强制收编第三方支付:马云和银联想哭哭不出来
free命令解惑及IC搬砖常用命令组合的使用方法
在WCDMA中如何用FPGA生成下行扰码
一分钟了解 动态人脸识别技术
LED驱动电源,你的蓝海市场究竟在哪里?
商汤科技获软银10亿美元投资 估值60亿美元
VR里的声音有多重要?这5个点重塑你对全景声的认知
直读光谱仪的常见故障有哪些
铅酸电池的成分和锂电池的成分的介绍
使用霍尔效应电流传感器简化高压电流检测
华工科技荣获湖北省专精特新“小巨人”企业称号
TowerJazz财报指出正为单反厂商提供新传感器,传闻是尼康D850
电气火灾监控系统如何预防漏电流造成的火灾事故
如何判断一个PCBA加工厂是否是高质量PCBA加工厂家呢?
光伏电网核心要求:分散发电,独立接入,综合调度
腾讯利用人工智能辅助诊断青光眼的联合科研