草庐IT

如何在 Linux 中安装和使用 htop

Sagar Sharma 2023-03-28 原文

Windows 有其著名的任务管理器。Linux 有几个 GUI 和 ​​命令行的系统监视器​​。每个 Linux 系统都都有几个这样的监视器。

在命令行中,​​top​​ 命令可能是用于快速检查系统资源使用情况的最佳命令。

除了查看进程之外,​​使用 top 命令​​ 可能会很麻烦。而这就是 ​​htop​​ 的优势所在。抛开双关语不谈,​​htop​​ 是一个类似于 ​​top​​ 的实用程序,但具有更好的、用户友好的界面。

在本指南中,我将向你展示如何在 Linux 中安装和使用 ​​htop​​。

在 Linux 中安装 htop 实用程序

在大多数的 Linux 发行版中你不会找到预安装的 ​​htop​​,但作为最流行的实用程序之一,你会在几乎每个 Linux 发行版的默认存储库中找到 ​​htop​​。

因此,如果你的机器是基于 Debian/Ubuntu 驱动的,则以下命令应该可以完成你的工作:

sudo apt install htop
类似的,如果你使用的是 Fedora,则可以使用以下的命令:

sudo dnf install htop
如果你想避免从源代码构建包,还有一个 Snap 包可用:

sudo snap install htop
如果你使用的是其它的发行版或者想从源代码构建,你可以随时参考 ​​htop 的 GitHub 页面​​以获得详细说明。

完成安装后,你只需在终端中使用 ​​htop​​ 命令,它将反映系统中所有正在运行的进程:

htop

安装和使用 htop

在 ​​htop​​ 中,每个部分都使用颜色标识,所以让我们看看使用 ​​htop​​ 时每种颜色表示什么。

htop 中不同的颜色和统计信息表示什么
让我们从 CPU 使用率栏开始,因为它使用的颜色最缤纷多彩。

CPU 使用率栏

htop 中的 cpu 进程

  • 绿色:用户进程消耗的资源。
  • 蓝色:表示低优先级线程。
  • 红色:系统(内核)进程使用的 CPU 资源。
  • 水蓝色:表示虚拟化进程。

内存使用率栏

htop 中的内存栏

  • 绿色:系统进程正在使用的内存。
  • 蓝色:缓冲页面使用的内存。
  • 橙色:分配给缓存页面的内存。

统计数据

htop 中的任务统计

  • 1.86 是最后 1 分钟的平均负载。
  • 1.75 是最后 4 分钟的平均负载。
  • 1.47 是最后 15 分钟的平均负载。
  • Tasks: 166 表示一共有 166 个正在运行的进程。
  • 1249 thr 表示这 166 个进程由 1249 个线程处理。
  • 1 running 表示在这 166 个进程中,只有一个进程处于运行中。
  • The load average 表示一段时间内的平均系统负载。由于我的系统是 Hexa-Core,所以 6.0 以下的是没问题的。这个数字可能会超过,比如 6.1,所以即将要运行的进程必须等待正在进行的任务完成。
  • Uptime 表示你登录后运行的时长。
现在,让我们跳到实际的实现部分。

如何在 Linux 中使用 htop

由于 ​​htop​​ 主要用于检查系统资源,让我们看看如何根据资源消耗对进程进行排序。

根据资源消耗对进程进行排序

根据 CPU 和内存使用情况对进程进行排序最简单的方法是使用鼠标指针。将光标悬停在 CPU 或内存部分上,然后单击其中任何一个。

在那里你会看到一个三角形的图标 ​​△​​,你可以根据它从最高到最低的资源消耗对进程进行排序:

但是,如果你正在处理远程服务器,你可能无法使用鼠标,在这种情况下,你可以使用键盘快捷键。

按 ​​F6​​,它将显示每个可用的选项来对正在进行的进程进行排序:

使用键盘快捷键对 htop 中的进程进行排序

你可以使用方向键选择一个首选的排序选项,然后按回车键,结果应该会如预期的那样反映出来。

搜索特定进程

如果你想查找一个特定的进程及其资源消耗,你可以按 ​​F3​​,它会给你一个搜索提示,如下所示:

在 htop 中搜索进程

例如,我搜索 ​​htop​​,它用浅橙色高亮显示了进程。你可以按 ​​F3​​ 获得下一个结果。

过滤正在运行的进程

虽然搜索可能会让你获得预期的结果,但我发现使用关键字的过滤过程更加有效,因为它提供了一个过程列表。

要过滤进程,你必须按 ​​F4​​ 并输入进程的名称。例如,我过滤了与 ​​gnome-boxes​​ 相关的进程:

在 htop 中过滤进程

杀死进程

一旦找到最耗资源和不必要的进程,你只需按 ​​F9​​,它就会向你显示终止信号:

在 htop 中杀死进程

我无法介绍所有的 15 个终止信号,我们有一个关于 ​​不同终止信息​​ 的单独指南,因此如果你想了解更多信息,可以参考该指南。

但我会建议你首先使用 ​​SIGTERM​​,因为它是终止进程的最有效和友好的方式。

自定义 htop

在这里,我的目标是添加日期和时间并将配色方案更改为单色。

首先,按 ​​F2​​,它会出现设置提示,允许用户更改 ​​htop​​ 的外观:

在 ubuntu 中自定义 htop

首先,将鼠标悬停在各个 ​​Colors​​ 部分并按回车键,这将允许我们更改配色方案。从那里,选择 ​​Monochromatic​​ 选项并按回车键保存更改:

在 Linux 中更改 htop 颜色

现在,返回到设置选项,然后使用向左方向键探索可用的指标:

探索 htop 中可用的指标

因为我打算添加日期和时间,所以我必须在找到它的选项后按回车键。

在这里,它允许你将日期和时间放置在左右两列中,你可以使用向上和向下的方向键更改列的顺序。

所以我将日期和时间指标放在最后一个样式选项中(你可以使用空格键更改样式):

在 htop 中添加日期和时间

完成日期和时间指标的对齐后,按回车键保存更改,然后按 ​​F10​​ 关闭设置提示。

总结

在本指南中,我解释了如何在不同的 Linux 发行版中安装 ​​htop​​ 实用程序,以及如何使用 ​​htop​​ 的一些基本功能来有效的管理系统资源。

但是 ​​htop​​ 可以做更多的事情,要了解更多信息,你可以随时参考它的手册页,我们有一个详细的指南,告诉你如何 ​​在 Linux 中充分利用手册页​​。

有关如何在 Linux 中安装和使用 htop的更多相关文章

  1. ruby - 如何使用 Nokogiri 的 xpath 和 at_xpath 方法 - 2

    我正在学习如何使用Nokogiri,根据这段代码我遇到了一些问题:require'rubygems'require'mechanize'post_agent=WWW::Mechanize.newpost_page=post_agent.get('http://www.vbulletin.org/forum/showthread.php?t=230708')puts"\nabsolutepathwithtbodygivesnil"putspost_page.parser.xpath('/html/body/div/div/div/div/div/table/tbody/tr/td/div

  2. ruby - 使用 RubyZip 生成 ZIP 文件时设置压缩级别 - 2

    我有一个Ruby程序,它使用rubyzip压缩XML文件的目录树。gem。我的问题是文件开始变得很重,我想提高压缩级别,因为压缩时间不是问题。我在rubyzipdocumentation中找不到一种为创建的ZIP文件指定压缩级别的方法。有人知道如何更改此设置吗?是否有另一个允许指定压缩级别的Ruby库? 最佳答案 这是我通过查看ruby​​zip内部创建的代码。level=Zlib::BEST_COMPRESSIONZip::ZipOutputStream.open(zip_file)do|zip|Dir.glob("**/*")d

  3. ruby - 为什么我可以在 Ruby 中使用 Object#send 访问私有(private)/ protected 方法? - 2

    类classAprivatedeffooputs:fooendpublicdefbarputs:barendprivatedefzimputs:zimendprotecteddefdibputs:dibendendA的实例a=A.new测试a.foorescueputs:faila.barrescueputs:faila.zimrescueputs:faila.dibrescueputs:faila.gazrescueputs:fail测试输出failbarfailfailfail.发送测试[:foo,:bar,:zim,:dib,:gaz].each{|m|a.send(m)resc

  4. ruby-on-rails - 使用 Ruby on Rails 进行自动化测试 - 最佳实践 - 2

    很好奇,就使用ruby​​onrails自动化单元测试而言,你们正在做什么?您是否创建了一个脚本来在cron中运行rake作业并将结果邮寄给您?git中的预提交Hook?只是手动调用?我完全理解测试,但想知道在错误发生之前捕获错误的最佳实践是什么。让我们理所当然地认为测试本身是完美无缺的,并且可以正常工作。下一步是什么以确保他们在正确的时间将可能有害的结果传达给您? 最佳答案 不确定您到底想听什么,但是有几个级别的自动代码库控制:在处理某项功能时,您可以使用类似autotest的内容获得关于哪些有效,哪些无效的即时反馈。要确保您的提

  5. ruby - 在 Ruby 中使用匿名模块 - 2

    假设我做了一个模块如下:m=Module.newdoclassCendend三个问题:除了对m的引用之外,还有什么方法可以访问C和m中的其他内容?我可以在创建匿名模块后为其命名吗(就像我输入“module...”一样)?如何在使用完匿名模块后将其删除,使其定义的常量不再存在? 最佳答案 三个答案:是的,使用ObjectSpace.此代码使c引用你的类(class)C不引用m:c=nilObjectSpace.each_object{|obj|c=objif(Class===objandobj.name=~/::C$/)}当然这取决于

  6. ruby - 如何在 Ruby 中顺序创建 PI - 2

    出于纯粹的兴趣,我很好奇如何按顺序创建PI,而不是在过程结果之后生成数字,而是让数字在过程本身生成时显示。如果是这种情况,那么数字可以自行产生,我可以对以前看到的数字实现垃圾收集,从而创建一个无限系列。结果只是在Pi系列之后每秒生成一个数字。这是我通过互联网筛选的结果:这是流行的计算机友好算法,类机器算法:defarccot(x,unity)xpow=unity/xn=1sign=1sum=0loopdoterm=xpow/nbreakifterm==0sum+=sign*(xpow/n)xpow/=x*xn+=2sign=-signendsumenddefcalc_pi(digits

  7. ruby - 使用 ruby​​ 和 savon 的 SOAP 服务 - 2

    我正在尝试使用ruby​​和Savon来使用网络服务。测试服务为http://www.webservicex.net/WS/WSDetails.aspx?WSID=9&CATID=2require'rubygems'require'savon'client=Savon::Client.new"http://www.webservicex.net/stockquote.asmx?WSDL"client.get_quotedo|soap|soap.body={:symbol=>"AAPL"}end返回SOAP异常。检查soap信封,在我看来soap请求没有正确的命名空间。任何人都可以建议我

  8. python - 如何使用 Ruby 或 Python 创建一系列高音调和低音调的蜂鸣声? - 2

    关闭。这个问题是opinion-based.它目前不接受答案。想要改进这个问题?更新问题,以便editingthispost可以用事实和引用来回答它.关闭4年前。Improvethisquestion我想在固定时间创建一系列低音和高音调的哔哔声。例如:在150毫秒时发出高音调的蜂鸣声在151毫秒时发出低音调的蜂鸣声200毫秒时发出低音调的蜂鸣声250毫秒的高音调蜂鸣声有没有办法在Ruby或Python中做到这一点?我真的不在乎输出编码是什么(.wav、.mp3、.ogg等等),但我确实想创建一个输出文件。

  9. ruby-on-rails - 'compass watch' 是如何工作的/它是如何与 rails 一起使用的 - 2

    我在我的项目目录中完成了compasscreate.和compassinitrails。几个问题:我已将我的.sass文件放在public/stylesheets中。这是放置它们的正确位置吗?当我运行compasswatch时,它不会自动编译这些.sass文件。我必须手动指定文件:compasswatchpublic/stylesheets/myfile.sass等。如何让它自动运行?文件ie.css、print.css和screen.css已放在stylesheets/compiled。如何在编译后不让它们重新出现的情况下删除它们?我自己编译的.sass文件编译成compiled/t

  10. ruby - 使用 ruby​​ 将 HTML 转换为纯文本并维护结构/格式 - 2

    我想将html转换为纯文本。不过,我不想只删除标签,我想智能地保留尽可能多的格式。为插入换行符标签,检测段落并格式化它们等。输入非常简单,通常是格式良好的html(不是整个文档,只是一堆内容,通常没有anchor或图像)。我可以将几个正则表达式放在一起,让我达到80%,但我认为可能有一些现有的解决方案更智能。 最佳答案 首先,不要尝试为此使用正则表达式。很有可能你会想出一个脆弱/脆弱的解决方案,它会随着HTML的变化而崩溃,或者很难管理和维护。您可以使用Nokogiri快速解析HTML并提取文本:require'nokogiri'h

随机推荐