[关闭]
@wzhang1117 2014-05-27T14:42:28.000000Z 字数 461 阅读 3248

sort命令

linux sort head tail ps

需求:列出内存占用TOP 10的进程

1. 列出所有进程

使用ps命令
ps aux

2. 按照内存占用率排序

使用sort命令
ps aux | sort -r -n -k 6
-r:按照递减排序,如果不加,默认按照递增排序
-n:内存占用率是一个数值,需要按照数值排序,否则按照字符表排序
-k 6:指定按第六列排序(第六列为内存占用率)

3. 去掉首行信息

上面的方法存在一个问题,即sort会将第一行表头当做数据进行排序,因此在排序前使用tail命令将第一行信息去掉
ps aux | tail -n +2 | sort -r -n -k 6
-n +2:从第二行开始到最后

4. 取前10行

使用head命令
ps aux | tail -n +2 | sort -r -n -k 6 | head -10
-10:取前10行

5. 增加首行信息

为了给结果增加一个表头,需要再使用一次ps命令和head命令组合
ps aux | head -1 | ps aux | tail -n +2 | sort -r -n -k 6 | head -10

ps命令本身也可以实现这个功能
ps aux --sort -rss | head -11

添加新批注
在作者公开此批注前,只有你和作者可见。
回复批注