Linux运维工程师必知:如何根据内存使用情况对 top 命令进行排序?作为 Linux 用户,您无法避免使用 top 命令 , 这个简单的命令列出了所有正在运行的系统进程 。
它每三秒刷新一次统计数据,让您感觉持续监控进程 。
默认情况下,top 命令的输出按 CPU 消耗排序,这意味着您会看到消耗最多 CPU 的进程位于命令的顶部 。
但是 , 如果您想查看消耗最多 RAM 的进程怎么办?您可以根据内存使用情况而不是 CPU 消耗对 top 命令进行排序 。
这很简单 。
第 1 步:照常运行 top 命令 。
第 2 步:按Shift+M,按内存排序top命令输出,它将立即开始显示使用最多内存的进程 。
但这不是永久性的改变,下次运行 top 命令时 , 它将再次按 CPU 使用率排序 。
Shift+M 键盘快捷键对于检查每个进程的内存使用情况非常方便 , 但是,如果您想在虚拟内存、花费的时间、共享内存等其他字段上对 top 命令进行排序,则可以使用 top 命令的交互模式 。
第 1 步:当然,运行 top 命令 。
第 2 步:按Shift+F进入交互模式 。
第 3 步:使用箭头键选择不同的参数,如 %MEM、TIME、VIRT 等,当您在所需参数处时,按 S 对其进行排序 。
您可以在右上角看到当前的排序字段,按 Esc 或 Q退出交互模式,现在顶部命令输出将按您选择的字段排序 。
这很方便,对吧?不幸的是,top 命令虽然非常强大,很多人不知道如何正确有效地使用它 。
每天一个linux命令(1)sortsort 是将文件的每一行作为一个单位linux按列排序命令 , 相互比较,比较原则是从首字符向后,依次按照ASCII码值进行比较,默认将他们按照升序输出
降序
在输出中去重
将排序结果输出到原文件
sort的默认输出是输出到标准输出 , 如果想把结果输出到文件,需要 sort filenewfile,但是如果想把结果输出到原文件这样就不行linux按列排序命令了,这时就需要 使用sort -o
以数值来排序
sort 默认是按照字符串排序的,这样就会出现10比3小的情况,sort -n 就可以告诉sort 以整数排序
-t 后面跟 分隔符
-k 后面跟数字,表示用第几列排序
如 sort -t : -k 2 表示把每行 以linux按列排序命令:号分割 , 按照第二列排序
banana:30:5.5
orange:20:3.4
apple:10:2.5
我们可以看到,当baidu 和soho都是100的时候,baidu排在前面,当当前域按照默认规矩,是从第一个域开始进行升序排序,因此baidu排在了sohu前面 。
sort 支持 -k 2 -k3这种模式,如果你需要,你可以继续这么写下去
你仔细看看 , 在-k 3后面偷偷加上了一个小写字母r,r和-r的作用是一样,你也可以把前面的-n去掉 在r后面加上n,如下
其实-k 选项 功能很强大 , 语法[ FStart [ .CStart ] ] [ Modifier ] [ , [ FEnd [ .CEnd ] ][ Modifier ] ]
从逗号前后 分为两大部分,即-k 2,2 , 是严格使用第一个域排序,如果只设置-k 2 其实是按照从第一个域到行尾 。逗号分开的每部分又有一个点表示子域 , 即-k 1.2表示 按照第一个域的第二个字符排序,Modifiers就是我们用到的n和r如 -k 1.2nr具体我们看下面的例子 。
我们使用了-k 1.2 , 这就表示对第一个域的第二个字符开始到本域的最后一个字符为止的字符串进行排序 。你会发现baidu因为第二个字母是a而名列榜首 。sohu和 google第二个字符都是o , 但sohu的h在google的o前面,所以两者分别排在第二和第三 。这和之前说到的按照默认的排序规则 是不同的,当第一个域的第二个字符相同时,他不会去按照第一个字符排序,而是按照后面的字符排序,这是因为-k 1.2是对第一个域的第二个字符开始到本域的最后一个字符为止的字符串进行排序 。而之前的夸域其实是一种假象 。
推荐阅读
- js自动切换图片地址事件,js切换图片代码
- oracle数据库表实时同步数据库,oracle数据库同步技术
- 怎么在pdf档添加图章,pdf怎么加章子
- 四川直播卖货水果大叔,四川卖水果老板娘
- php提交留言去数据库 php无数据库留言板
- 手机怎么改银行卡信息通知,手机怎么改银行卡信息通知的
- 硬盘怎么完全格式化,整个硬盘怎么格式化
- pdf中间怎么删掉一页,pdf怎么删除中间页
- linux解压命令web linux 解压文件指令