电子说
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 available Mem: 3729 897 1714 180 1117 2402 Swap: 2047 0 2047
以人性化的方式显示内存使用情况:
free -h total used free shared buff/cache available Mem: 3.6G 897M 1.7G 173M 1.1G 2.4G Swap: 2.0G 0B 2.0
持续每2秒刷新一次内存信息,显示5次:
free -s 2 -c 5 total used free shared buff/cache available Mem: 3818948 918144 1764520 176432 1136284 2468432 Swap: 2097148 0 2097148 total used free shared buff/cache available Mem: 3818948 918144 1764520 176432 1136284 2468432 Swap: 2097148 0 2097148 total used free shared buff/cache available Mem: 3818948 918144 1764520 176432 1136284 2468432 Swap: 2097148 0 2097148 total used free shared buff/cache available Mem: 3818948 918144 1764520 176432 1136284 2468432 Swap: 2097148 0 2097148 total used free shared buff/cache available Mem: 3818948 918144 1764520 176432 1136284 2468432 Swap: 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都可以回收”。
常用命令组合
查找/替换/删除
//替换示例1 sed -i "s/aaa_cfg/bbb_cfg/g" `grep aaa_cfg -rl ./testcase/`
``中的grep命令使用“-r” “-l”选项先将testcase目录文件名中含有aaa_cfg字段的文件罗列出来,并作为sed命令的输入,执行替换操作,将文件内容中的"aaa_cfg"替换为"bbb_cfg"
//查找示例2 ls -1 *extra* | xargs grep -rnw "packet"
在文件名含有“extra”字段的文件中,搜索含有packet单词的文件,同时打印所在的行号
//删除示例3 sed -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的文件都添加到SVN svn add `svn st | grep "^?" | awk '{ print $2 }'` //使用xargs也可以实现 svn st | grep "^?" | awk '{ print $2 }' | xargs svn add
将grep和awk组合起来使用,罗列出来未添加到SVN的文件,然后使用svn add 添加进去。下面的组合命令类似:
//将已删除的文件提交到SVN svn 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`
审核编辑:刘清
全部0条评论
快来发表一下你的评论吧 !