侧边栏壁纸
Linux入门自学网博主等级

每日学一条Linux命令,终成Linux大神

  • 累计撰写 725 篇文章
  • 累计创建 143 个标签
  • 累计收到 0 条评论

目 录CONTENT

文章目录

Linux nethogs命令教程:专业监控进程网络流量(附常见实例和注意事项)

在Linux系统管理中,了解各个进程的网络使用量对于维护和优化系统至关重要。nethogs命令是一个强大的工具,它能以类似于top命令的方式显示网络流量使用情况,但与top不同的是,nethogs显示的是按进程分的网络流量消耗。

Linux nethogs命令介绍

nethogs是一个网络流量监控工具,它可以显示实时的网络流量,按照每个进程分别统计发送和接收的字节数量。这个工具特别适用于监控和识别那些占用大量带宽的进程。

Linux nethogs命令适用的Linux版本

nethogs通常在大多数主流Linux发行版上可用。如果在某些系统中未预安装,可以通过包管理器进行安装:

  • 对于基于Debian的系统(如Ubuntu),使用:
    [linux@bashcommandnotfound.cn ~]$ sudo apt-get install nethogs
    ```
    
  • 对于Red Hat系列的CentOS 7,使用:
    [linux@bashcommandnotfound.cn ~]$ sudo yum install nethogs
    ```
    
  • 而对于CentOS 8或基于Fedora的系统,使用:
    [linux@bashcommandnotfound.cn ~]$ sudo dnf install nethogs
    ```
    

Linux nethogs命令的基本语法

基本的语法格式为:

nethogs [选项] [设备名]

Linux nethogs命令的常用选项或参数说明

以下是nethogs命令的常用选项,整理成表格形式:

选项说明
-V显示nethogs的版本信息
-d设置刷新间隔时间(秒)
-t显示文本输出模式,非交互式
-h显示帮助信息
-p使用promisc模式捕获数据包
-v显示模式(0-3,越高信息越详细)
-b显示带宽以字节为单位
-c设置更新次数,之后退出

Linux nethogs命令的实例

实例1:查看所有网络接口的流量使用情况

[linux@bashcommandnotfound.cn ~]$ sudo nethogs

实例2:指定查看特定网络接口的流量使用情况

[linux@bashcommandnotfound.cn ~]$ sudo nethogs eth0

实例3:设置刷新时间间隔为5秒

[linux@bashcommandnotfound.cn ~]$ sudo nethogs -d 5

实例4:以文本模式显示流量(非交互式)

[linux@bashcommandnotfound.cn ~]$ sudo nethogs -t

实例5:显示带宽以字节为单位

[linux@bashcommandnotfound.cn ~]$ sudo nethogs -b

实例6:监控多个指定的网络接口

如果你有多个网络接口,比如eth0eth1,你可以同时监控它们:

[linux@bashcommandnotfound.cn ~]$ sudo nethogs eth0 eth1

实例7:以文本模式显示流量并设置刷新时间

结合文本模式和自定义的刷新时间:

[linux@bashcommandnotfound.cn ~]$ sudo nethogs -t -d 10

这将以文本模式运行nethogs,刷新间隔设置为10秒。

实例8:限制更新次数

如果你只想让nethogs更新几次然后退出,可以使用-c选项:

[linux@bashcommandnotfound.cn ~]$ sudo nethogs -c 5

这会让nethogs更新五次之后自动退出。

实例9:显示详细的输出信息

如果你需要更详细的输出,你可以设置-v选项:

[linux@bashcommandnotfound.cn ~]$ sudo nethogs -v 3

这会显示每个进程的详细信息。

实例10:使用Promiscuous模式

在一些情况下,你可能需要在网卡上设置promiscuous模式来捕获所有的网络流量,可以使用-p选项:

[linux@bashcommandnotfound.cn ~]$ sudo nethogs -p

实例11:结合其他命令和脚本

为了进一步处理nethogs的输出,你可以将它的输出传递给其他命令或用在脚本中。例如,你可以使用awk来提取和处理特定的数据列:

[linux@bashcommandnotfound.cn ~]$ sudo nethogs -t | awk '{print $1, $2, $3}'

这会以文本模式运行nethogs并使用awk来打印每行的前三列。

实例12:保存输出到文件

你可能想要将nethogs的输出保存到文件中以备后用:

[linux@bashcommandnotfound.cn ~]$ sudo nethogs -t > nethogs_output.txt

这将把文本模式下的输出重定向到nethogs_output.txt文件。

快捷键

nethogs的交互式界面中,可以使用以下快捷键:

  • m:切换显示单位(KB/s, KB, B, MB等)
  • r:对上传速度进行排序
  • s:对下载速度进行排序
  • q:退出nethogs

高级技巧

过滤进程

如果你想监控特定进程的网络流量,可以结合grep命令来过滤输出:

[linux@bashcommandnotfound.cn ~]$ sudo nethogs | grep 'firefox'

Linux nethogs命令的注意事项

  • 确保你有足够的权限来执行nethogs,通常需要sudo或者root权限。
  • 在文本模式(-t)中,nethogs不会提供交互式控制。
  • 如果你在使用nethogs时遇到bash: nethogs: command not found错误,意味着nethogs没有安装在你的系统上,请根据上面的指南进行安装。
0

评论区