Ubuntu中top命令如何以MB格式(人类可读)显示?解决-M选项报错
在Ubuntu中让top输出人类可读格式(MB单位)
嘿,这问题我太熟了!先给你解释下为啥top -M会报错——Ubuntu默认用的procps-ng版本的top根本没有-M这个参数,这个参数是RHEL/CentOS这类发行版里的top才有的,所以你操作没毛病,只是参数不兼容而已。
下面给你两种靠谱的解决思路,一种是用top自身的功能搞定,另一种是用更友好的替代工具:
方法1:用top自带的功能设置MB单位
top本身就支持调整内存显示单位,分临时调整和永久生效两种方式:
临时交互式调整(实时生效)
当top正在运行的时候,直接按这两个按键就行:
- 按大写的E:切换顶部系统总内存(Mem、Swap行)的显示单位,循环切换KB→MB→GB→TB,选到MB就停
- 按小写的e:切换每个进程的内存(RES、VIRT这些列)的显示单位,同样能切到MB
要是想让每次启动top都默认用MB显示,也很简单:
- 先启动top,按上面的按键把单位调到MB
- 按大写的W,top会自动把当前配置保存到
~/.toprc文件里,之后再开top就自动用MB显示了
命令行直接启动(一次性生效)
如果你想直接用命令行启动top就显示MB单位,可以用-E参数指定单位:
top -E m
这里的m代表MB,你也可以换成k(KB)、g(GB)这些,按需调整。
方法2:用更友好的替代工具htop
要是觉得top的操作有点麻烦,强烈推荐试试htop——它是top的增强版,默认就以人类可读的格式显示内存(自动根据大小选KB/MB/GB),界面也比top直观太多,还支持鼠标操作。
先安装它:
sudo apt update && sudo apt install htop
直接运行htop就能看到清晰的内存使用情况,完全不用手动调单位,爽得很~
另外,如果你需要一次性输出类似du -h的静态格式(不是交互式的),也可以用ps命令配合awk来实现:
ps aux --sort=-%mem | awk '{printf "%s %.2fMB\n", $0, $6/1024}'
这个命令会按内存使用率从高到低排序进程,还把内存(原本是KB)转换成MB显示,保留两位小数,看着更清楚。
内容的提问来源于stack exchange,提问作者Ștefan
相关产品推荐
相关产品推荐

