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*|xargsgrep-rnw"packet"
在文件名含有“extra”字段的文件中,搜索含有packet單詞的文件,同時打印所在的行號
//刪除示例3 sed-i"/ccc_cfg/d"`grepaaa_cfg-rl./testcase/`
類似替換示例1,把替換操作改成了刪除
//打印匹配所在字段的前后若干行 grep-rn -C1aaa_cfg./testcase/
在testcase目錄文件中查找含有aaa_cfg字段的行,并打印所在行的前后一行
SVN相關
//將目錄及目錄下個別文件添加到SVN服務器 svn add --parents scripts/run.py
執行這個命令后,scripts目錄添加到SVN,除run.py文件外,目錄下其他文件不會添加到SVN
//將目錄下所有未添加到SVN的文件都添加到SVN svnadd`svnst|grep"^?"|awk'{ print$2 }'` //使用xargs也可以實現 svn st | grep "^?" | awk '{ print $2 }' | xargs svn add
將grep和awk組合起來使用,羅列出來未添加到SVN的文件,然后使用svn add 添加進去。下面的組合命令類似:
//將已刪除的文件提交到SVN svnci-m"deletefiles"`svnst|grep"^D"|awk'{print$2}'`
下面是比對文件的常用命令svn diff:
//查看本地文件和SVN服務器版本有何差別 svn diff run.py //按版本比對 svndiff-r999run.py
日常工作
//查看某個用戶正在仿真哪些用例 ps aux | grep usr_name | awk '{print $11}' | grep simv
//刪除目錄下的fsdb波形文件 rm -f `ls */*.fsdb`
審核編輯:劉清
-
緩存器
+關注
關注
0文章
63瀏覽量
11652 -
svn
+關注
關注
0文章
27瀏覽量
8643
原文標題:free命令解惑及IC搬磚常用命令組合
文章出處:【微信號:處芯積律,微信公眾號:處芯積律】歡迎添加關注!文章轉載請注明出處。
發布評論請先 登錄
相關推薦
評論