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

### Linux 中的 htop 命令 ###

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

> 它类似于 top 命令，但可以让你在垂直和水平方向上滚动，所以你可以看到系统上运行的所有进程，以及他们完整的命令行。
> 
> 可以不用输入进程的 PID 就可以对此进程进行相关的操作 (killing, renicing)。 

### 首先明白它的输出 ###

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

![htop](http://linoxide.com/wp-content/uploads/2014/01/htop.png)

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

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

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

### 1. 用 F2 键编辑配置 ###

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

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

![htop-settings](http://linoxide.com/wp-content/uploads/2014/01/htop-settings.png)

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

### 2. 通过 F9 键发送信号 ###

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

![signals](http://linoxide.com/wp-content/uploads/2014/01/signals.png)

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

### 3. 显示进程的树状视图 ###

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

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

![treeView](http://linoxide.com/wp-content/uploads/2014/01/treeView.png)

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

### 4. 通过 F3 键搜索进程 ###

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

下面是例子:

![search](http://linoxide.com/wp-content/uploads/2014/01/search1.png)

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

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

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

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

![color-tag](http://linoxide.com/wp-content/uploads/2014/01/color-tag.png)

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

### 6. 命令行选项 ###

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

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

--------------------------------------------------------------------------------

via: http://linoxide.com/linux-command/linux-htop-command/

译者：[runningwater](https://github.com/runningwater) 校对：[Caroline](https://github.com/carolinewuyan)

本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译，[Linux中国](http://linux.cn/) 荣誉推出
