top
在 Linux 服务器上,或类 Unix 的机器上,一般我们想查看每个进程的 CPU 使用率、内存使用情况以及其他相关信息时会使用 top 命令。
![](http://mmbiz.qpic.cn/mmbiz_png/YZibCWq4rxDibFjyzUP2qm17NOZcOiasu3zur2GOVsjF6p92o7WZP32dfl4B7czkNoVhWNTmIsyzN20IRgKvGE69w/640?wx_fmt=png&from=appmsg)
top 是一个标准的 Linux/Unix 工具,实际上我从一开始接触 Linux 就一直使用 top , 一般是两种场景:
top 有一些常用的功能,比如可以动态的显示进程的情况,按照 CPU 、内存使用率排序等。说实话,这么多年了,使用最多的还就是 top ,一来是因为习惯了,工具用惯了很多操作都是肌肉记忆。二来是 top 一般系统自带不用安装,省事儿。
htop
top 挺好的,但 top 对于初学者和小白用户不太友好,尤其是它的用户界面和操作。于是后来有了 htop
![](http://mmbiz.qpic.cn/mmbiz_png/YZibCWq4rxDibFjyzUP2qm17NOZcOiasu3zFjheNS36WGfozX5gnFlGm8CibO9Nk2LFibsQC13gfIOPkOWXyBo9zDrw/640?wx_fmt=png&from=appmsg)
htop 是 top 的一个增强替代品,提供了更加友好的用户界面和更多的功能。与 top 相比,htop 默认以颜色区分不同的信息,并且支持水平滚动查看更多的进程信息。
htop 还允许用户使用方向键来选择进程,并可以直接发送信号给进程(如 SIGKILL)。htop 支持多种视图和配置选项,使得用户可以根据自己的喜好定制显示的内容。
htop 我也用了几年,确实舒服一些,但由于需要安装和我对 top 的肌肉记忆 ,htop 在我的使用中并未完全替代 top。直到 btop 的出现
btop
现在,我本机使用的是 btop,有了 btop,top 和 htop 一点儿都不想用了,哈哈。
在服务器上有时候因为懒不想安装,一部分时间还是 top,一部分用 btop。
![](http://mmbiz.qpic.cn/mmbiz_png/YZibCWq4rxDibFjyzUP2qm17NOZcOiasu3ziaCmfjJK8ibZ51ywIKyvobvyjCGxmrgMUhNAl59d0643TQmZHs1MohXQ/640?wx_fmt=png&from=appmsg)
第一印象是真漂亮啊,然而它不止好看,功能也是很实用,操作还很简单,你说能不喜欢它吗?
说是 btop ,实际上人家真正的名字是 btop++ , 用 C++ 开发的
![](http://mmbiz.qpic.cn/mmbiz_png/YZibCWq4rxDibFjyzUP2qm17NOZcOiasu3zDRKG1urZK5PPCy4HKY33rn3Hsp2N3nnzic9YNZKHkCZLpNwvlcNULqg/640?wx_fmt=png&from=appmsg)
安装
btop 支持各种类 Unix 系统,你可以在它的文档中找到对应系统的安装方法 https://github.com/aristocratos/btop
![](http://mmbiz.qpic.cn/mmbiz_png/YZibCWq4rxDibFjyzUP2qm17NOZcOiasu3zW5cEKgOWohThT0IE3MIWicibJMYzp4ullqv19Vd2hLhMyV1CDqdpERAQ/640?wx_fmt=png&from=appmsg)
本文演示,我是用我自己的 Mac 笔记本电脑,用 Mac 安装很简单,用 brew 一行搞定
brew install btop
我的系统情况是这样的:
![](http://mmbiz.qpic.cn/mmbiz_png/YZibCWq4rxDibFjyzUP2qm17NOZcOiasu3zyOTbkx1Z7Nm35qDOeFSRkibcrmGcyqDVfphfdYNOF3prHUdDKHWM8OQ/640?wx_fmt=png&from=appmsg)
安装完成后,直接运行 btop
就可以看到如上图的界面了。
功能界面
打开 btop 后不要被它的界面唬住了,其实非常的简单,我们来介绍一下。
打开 btop 后,其实显示的是它给你的 “预置” 界面。默认有 4 个预置界面,你可以按 p
键进行切换。命令行界面上会分别显示:
![](http://mmbiz.qpic.cn/mmbiz_png/YZibCWq4rxDibFjyzUP2qm17NOZcOiasu3zxe8bPnwY75ITTUu5CDV1XCwlF6TaaicDvvnicLrCsDLjy35fZYdAMfIQ/640?wx_fmt=png&from=appmsg)
你可能注意到了,这 4 个预置界面中有很多内容是重复的,没错,其实 btop 一共就 4 个模块,预置界面只是把不同的模块拼在一起显示罢了。这 4 个模块分别是:
这 4 个模块对应的快捷键分别就是 1
,2
,3
,4
你按一下模块显示,再按一下模块隐藏。
![](http://mmbiz.qpic.cn/mmbiz_png/YZibCWq4rxDibFjyzUP2qm17NOZcOiasu3zorBxRPlyn5XYfstUnsY4VPYHzC8er07hIWk4dZ1jOkPFtrrib94QJaw/640?wx_fmt=png&from=appmsg)
所以如果你对预置界面的内容想立刻调整,就可以按快捷键来显示/隐藏 你想要的模块,当然预置界面也是可以通过配置文件调整的,这个我们后面说。
CPU 模块
CPU 模块可以显示 CPU 型号、各内核的使用率、温度,CPU 整体的负载,以及一个直观的图象,所有数据都是实时显示的。
![](http://mmbiz.qpic.cn/mmbiz_png/YZibCWq4rxDibFjyzUP2qm17NOZcOiasu3zjLHMAFLp6xNhyVK0K0vZSKmTUKjbIBuoWxjYg3FeCRia31TNiaAWQJRQ/640?wx_fmt=png&from=appmsg)
存储 模块
存储模块包括两部分,一个是内存使用情况,一个是磁盘使用情况:
![](http://mmbiz.qpic.cn/mmbiz_png/YZibCWq4rxDibFjyzUP2qm17NOZcOiasu3zy6wZnGt6ricjcicb3HK6GOoZcDg2JfaLs7RPqcjPU1iabDCOgm2n6mWKw/640?wx_fmt=png&from=appmsg)
因为比较直观,具体内容我就不解释了。
网络模块
网络模块可以看下网络的整体负载和吞吐情况,主要包括上行和下行数据汇总,你可以通过按快捷键 b
和n
来切换看不同的网卡。
![](http://mmbiz.qpic.cn/mmbiz_png/YZibCWq4rxDibFjyzUP2qm17NOZcOiasu3z1A7FHhakQadUg3B9hK54gwwZzySE04OK7h7icyiaOvibw8L1icNR7zKfNg/640?wx_fmt=png&from=appmsg)
进程模块
初始的进程模块可以看到:
![](http://mmbiz.qpic.cn/mmbiz_png/YZibCWq4rxDibFjyzUP2qm17NOZcOiasu3zAUnwR2ohBz7Cfj0NS8mIgzickXWEc3ysmjYkDlpcUmQFtxG2NaNIxvA/640?wx_fmt=png&from=appmsg)
你可以按快捷键 e
显示树状视图:
![](http://mmbiz.qpic.cn/mmbiz_png/YZibCWq4rxDibFjyzUP2qm17NOZcOiasu3zZKBMbL7ia9VHcRUrHML8cLkkd37GOLia5BFsBIFSBicMcuyoOsia0G2pCg/640?wx_fmt=png&from=appmsg)
可以按快捷键 r
对进行排序,按一下是倒序,再按一下是正序。具体排序列可以按左右箭头
,根据界面显示进行选择,比如我要按照内存使用排序,那么右上角就是这样的:
![](http://mmbiz.qpic.cn/mmbiz_png/YZibCWq4rxDibFjyzUP2qm17NOZcOiasu3z1dp2hzRqtqFhYDpMkJrqjz84fx8qPsRFPpyTibag1D20sbPrKyq5bYw/640?wx_fmt=png&from=appmsg)
按 f
键输入你想过滤的内容然后回车,可以过滤一下界面显示的内容,比如我只想看 chrome 的进程情况:![](http://mmbiz.qpic.cn/mmbiz_png/YZibCWq4rxDibFjyzUP2qm17NOZcOiasu3zUF8j4bcs229GkdvALZn8stDDYlibLuIkyldSYSQrw5Qslxibw1xpwicBg/640?wx_fmt=png&from=appmsg)
还可以通过 上下箭头选中某一个进程按回车查看进程详情,再次按回车可以隐藏详情:
![](http://mmbiz.qpic.cn/mmbiz_png/YZibCWq4rxDibFjyzUP2qm17NOZcOiasu3zfbQzyCdKGXUcJVjGopdsaW3570q20HWf9IzTT9gXBdE2ibCBqiaRSxfg/640?wx_fmt=png&from=appmsg)
显示进程详情后可以对进程进行操作,比如 Kill
只需要按快捷键 k
就可以了,然后会弹出提示:![](http://mmbiz.qpic.cn/mmbiz_png/YZibCWq4rxDibFjyzUP2qm17NOZcOiasu3zS5wUnbGtibOWLCo3ub2XFcWPtib93x0cDpXsmF78wria3rOEribZIOuHRw/640?wx_fmt=png&from=appmsg)