为什么Linux的htop命令完胜top命令

在 Linux 系统中,top 命令用来显示系统中正在运行的进程的实时状态,它显示了一些非常有用的信息,比如 CPU 利用情况、内存消耗情况,以及每个进程情况等。但是,你知道吗?还有另外一个命令行工具 ‘htop’,它与传统的 top 命令功能一样,但它有更加强大的功能及能显示更多的信息。这篇文章,我们会用实例来讨论这个 ‘htop’ 命令。

Linux 中的 htop 命令

下面是从 htop 的手册页摘抄下来的相关描述:

它类似于 top 命令,但可以让你在垂直和水平方向上滚动,所以你可以看到系统上运行的所有进程,以及他们完整的命令行。

可以不用输入进程的 PID 就可以对此进程进行相关的操作 (killing, renicing)。

首先明白它的输出

htop 命令以直观的格式来显示信息。下面是 HTOP 的输出快照:

005732l22oo5a53fam6y3o

 

如果你观察窗口的左上角部分,你会看到显示的是 CPU 负载、内存消耗及交换空间的实时信息,右上角包含的是任务、线程、平均负载及系统运行时间的信息。

平均负载部分提供了三个数字,这仅仅表示的是过去的5分钟、10分钟和15分钟系统的平均负载而已,在单核的系统中,平均负载为1表示的是百分之百的 CPU 利用率。最后,运行时间 (uptime)标示的数字是从系统启动起到当前的运行总时间。

下面,我们将用例子来进一步讨论这个命令。

1. 用 F2 键编辑配置

htop 命令提供了许多自定义选项,你所要做的就是从主窗口中按下 F2 键。

下面所示的是可用的自定义选项:

005734jkbtcubuaspcw5pt

 

只需使用箭头键选择和更改特定的设置。

2. 通过 F9 键发送信号

htop 命令可以让你很容易地在 htop 窗口内给一个进程发送任意的信号。按下 F9 键即可。

005736oz455s422g11n2u2

 

如你所见,窗口的左边部分列出的是所有可用的信号,右边部分列出的是进程。只要选中信号,并选择一个进程,然后按下 enter 键,选中的信号就会发送到此进程。

3. 显示进程的树状视图

htop 命令也提供了进程的树状视图查看功能。按下 F5 键切换。

下面是 htop 显示树形视图信息的例子:

005737mzfdehve9k9d4h9u

 

要退出树状视图模式,请再一次按下 F5 键。

4. 通过 F3 键搜索进程

htop 命令提供了易用的方式来搜索进程。按下 F3 键,一个文本框就会出现在窗口底部。

下面是例子:

005739uh0xoeblqla8bn80

 

如您所见,一条名为‘搜索’的文本提示框出现在窗口底部,您可以在这儿输入进程的名字然后回车搜索。如果找到,它会在列出的进程列表里高亮选中此进程。

5. 通过空格键来设置颜色标注进程条目

在系统中运行着的实时进程视图中,要追踪某个进程是个大问题。因为整个列表在不停的刷新着,进程的排列顺序也在变动着。为了这个问题, htop 提供了一个很简单的解决方案:颜色标注。是的,你可以标注一个进程条目,它会以不同的颜色显示,因此要追踪它就变得容易了。

要标注某个进程条目,需要做的就是选中此条目,然后按下‘空格’键。例如,在下面的截图示例中,我已经颜色标注了三个进程条目:

005741jvcowsa19c9nzprg

 

所以通过此方法,你就能很轻松地追踪想查看的进程。

6. 命令行选项

除了上面介绍的一些热键,htop 还提供了很有用的命令行选项。下面是其中一部分:

  • -s 选项 : 按指定的列排序。例如,htop -s PID 命令会按 PID 列的大小排序来显示。
  • -u 选项 : 显示指定的用户的进程信息列表。例如,htop -u himanshu 命令会只显示出用户名为 himanshu 的相关进程。
  • -d 选项 : 设置刷新的延迟时间。例如,htop -d 100 命令会使输出在1秒后才会刷新(参数 -d 的单位是10微秒)。
收藏 12 评论

相关文章

可能感兴趣的话题



直接登录
最新评论
  • 三断笛   2014/06/04

    为何不像windows一样做一个图形界面呢?相信技术上没有任何难度,只是"高手"们不愿放下"气节"做白菜的图形界面。并且坚称linux只留给高智商的极客们用以彰显自己高贵的身份。

    但这就是linuxer的价值观吗?

    对于少量数据视觉比敲命令更高效并且更易懂。当然,简单易懂代表着白菜。

    我认为真正伟大的人都在于把复杂的事情做到最简,让所有人享用。

    • tata   2014/06/04

      。。。有的服务器上是没X的

      • helvetica   2014/06/05

        哈哈哈 不行了 笑死我了

        • LittleBoy   2014/06/05

          难道一定要有图形才算是正常的?你的思维已经局限在操作窗口就一定要有图形的这个模式里面了么?

    • dingdong   2014/06/05

      逗比

    • kwest   2014/06/08

      一看就是典型的Windows程序员思维,难道操作系统就一定要带图形界面?Linux也不是不能带图形界面(GNOME,KDE),而是GUI实在太占用内存和CPU资源,对于服务器来说,宁愿用命令行进行管理,以节省更多的资源给服务进程。参考CentOS,Ubuntu server这些服务器版Linux默认安装都是不带GUI的。

    • 可是,可是 ,我的服务器上没图形界面啊!

    • kongdeyuan   2014/07/24

      哈哈哈哈。。。

  • 今天才安装的,真巧

  • yyyymm   2014/06/12

    LS一干嘲笑一楼的人根本就是思维僵化的典范,谁规定一定得有桌面环境才能写GUI?
    DOS时代的一堆带鼠标交互的编辑器,一堆图形精细的游戏(相对那个时代)都被你们吃掉了?

    • ervin   2014/08/29

      多了解点技术吧,必须要有display server才能跑GUI,dos那种连保护模式都不进的系统有什么可比性?而且通过ssh操作时,网速不好时连敲个命令都卡,还GUI?

  • Alyly   2014/06/12

    ubuntu 12.04 server 版表示运行正常,比top看着更好看更直观。嘲笑的人来打我啊。

跳到底部
返回顶部