top
显示系统中各个进程的实时信息,包括 CPU 使用率、内存占用情况等
- 启动 top: 在终端中输入
top
命令即可启动 top。默认情况下,它会以交互式界面显示系统的实时进程信息和性能指标。 - 实时更新: top 默认情况下每隔 3 秒刷新一次显示内容,您可以按
d
键来更改刷新间隔。 - 显示进程信息: top 显示了各个进程的 PID、用户、CPU 占用、内存占用、进程状态等信息。您可以按
k
键来杀死选定的进程。 - CPU 和内存信息: top 的顶部显示了 CPU 使用率、内存使用情况等系统级别的性能指标。
- 进程排序: 您可以按
P
键按 CPU 使用率排序进程列表,按M
键按内存使用量排序。 - 进程筛选: 您可以按
u
键来筛选显示特定用户的进程,按o
键来设置筛选条件。 - 显示线程: 按
H
键可切换显示线程信息,这对于查看多线程应用程序的详细信息很有帮助。 - 保存配置: 在 top 中进行排序、筛选等操作后,可以按
W
键将当前配置保存到文件以便以后使用。 - 查看帮助: 您可以按
h
键来查看 top 命令的帮助文档,了解更多可用的快捷键和操作方式。 - 退出 top: 按下
q
键即可退出 top。
htop
类似于 top,但提供了更加友好的交互界面,可以方便地浏览和管理进程。
htop 是一个交互式的系统监控工具,提供了实时的对系统资源利用情况的监控和管理。以下是 htop 的日常用法以及一些相关知识点:
- 基本用法:
- 在终端中输入
htop
即可启动 htop。启动后,你会看到一个以颜色区分的实时监控界面,显示了 CPU、内存、进程等系统资源的利用情况。
- 界面解释:
- CPU 利用率:显示各个核心的利用率,以及整体的系统负载情况。
- 内存利用率:显示内存的使用情况,包括已使用、缓存、剩余等信息。
- 进程列表:列出了当前运行的进程,并可以按照 CPU、内存等指标进行排序。
- 快捷键指令:底部显示了常用的快捷键指令,方便进行操作和切换视图。
- 交互操作:
- 使用方向键可以在进程列表中上下移动,使用 Enter 键可以查看选中进程的详细信息。
- 可以使用 F2 来进入设置界面,可以自定义显示的内容和样式。
- 在进程列表中使用 F9 可以发送信号给选中的进程,比如终止、重新加载等。
- 使用 F10 可以退出 htop。
- 过滤和排序:
- 可以使用 F4 来进行过滤,根据特定的条件来筛选显示的进程。
- 通过按下 Shift+M 可以按照内存利用率进行排序,按下 Shift+P 可以按照 CPU 利用率进行排序。
- 颜色标识:
- htop 使用不同的颜色来表示不同的进程状态,比如运行中的进程、睡眠中的进程、僵死的进程等。
- 其他功能:
- 支持在 htop 中进行进程的搜索、查看进程树、显示进程的环境变量等功能。
- 可以通过配置文件进行自定义设置,比如默认显示的列、颜色主题等。
vmstat
vmstat 是一个用于报告虚拟内存统计信息的命令行工具,通常用于监控系统的内存、进程、IO 等性能指标。下面是 vmstat 命令的基本用法和一些常用参数:
- 基本用法:
- 在终端中输入
vmstat
即可显示当前系统的虚拟内存统计信息。默认情况下,它会每秒刷新一次数据。
- 常用参数:
-a
:显示活跃与非活跃的内存页面信息。-n
:用于设置输出中缺页中断和内存交换区的名称。-s
:显示内存使用情况摘要。-d
:显示磁盘活动情况。-w
:以宽格式输出信息。-t
:显示时间戳。
示例:
vmstat -s -S M # 显示内存使用情况摘要,显示单位为 MB,默认为 KB vmstat -d # 显示磁盘活动情况 vmstat -wt 5 # 以宽格式显示信息,并每 5 秒刷新一次(可以自定义刷新频率) • 1 • 2 • 3
输出解释
- procs: 进程相关信息
- r: 正在运行或等待 CPU 的进程数
- b: 不可中断的睡眠状态的进程数
- memory: 内存使用情况
- swpd: 使用的虚拟内存(swap)
- free: 空闲内存
- buff: 用作缓冲的内存量
- cache: 用作缓存的内存量
- swap: 交换空间(swap)使用情况
- si: 每秒从磁盘读入交换页的大小
- so: 每秒写入磁盘的交换页的大小
- io: 磁盘 I/O 情况
- bi: 每秒从块设备接收的块数量
- bo: 每秒发送到块设备的块数量
- system: 系统相关信息
- in: 每秒中断的数量
- cs: 每秒上下文切换的数量
- cpu: CPU 使用情况
- us: 用户空间占用 CPU 时间的百分比
- sy: 内核空间占用 CPU 时间的百分比
- id: 空闲 CPU 时间的百分比
- wa: 等待输入输出的 CPU 时间的百分比
- st: 虚拟化环境中用来偷取时间的 CPU 时间百分比
cs 表示上下文切换的次数,我们可以通过这个工具来查看系统上下文切换的次数。
free
free
是一个用于显示系统内存使用情况的命令行工具。以下是 free
命令的日常用法以及相关知识点:
- 基本用法:
- 在终端中输入
free
即可显示系统当前的内存使用情况。默认情况下,free
会显示以 KB 为单位的内存使用量。
- 常用参数:
-h
:以人类可读的形式(如 GB、MB)显示内存使用情况。-b
:以字节(bytes)为单位显示内存使用量。-s <秒数>
:指定刷新间隔,比如free -s 5
表示每 5 秒刷新一次数据。
示例:
free -h # 以人类可读的形式显示内存使用情况 free -b # 显示内存使用量以字节为单位 free -s 5 # 每 5 秒刷新一次内存使用情况
- 输出解释:
total
:总内存量,表示系统总共可用的内存大小。used
:已使用的内存量,表示当前系统已经被占用的内存大小。free
:空闲内存量,表示当前系统未被使用的内存大小。shared
:共享内存量,表示多个进程共享的内存大小。buffers
:缓存的内存量,表示用于缓存数据的内存大小。cached
:缓存的内存量,表示用于缓存文件系统数据的内存大小。
- 内存单位:
KB
:千字节(Kilobyte),1 KB = 1024 字节。MB
:兆字节(Megabyte),1 MB = 1024 KB。GB
:吉字节(Gigabyte),1 GB = 1024 MB。TB
:太字节(Terabyte),1 TB = 1024 GB。
- 使用场景:
- 通过
free
可以快速了解系统当前的内存使用情况,包括已使用、空闲等数据。 - 可以帮助监控系统的内存状况,及时发现内存不足或内存泄漏等问题。
- 结合其他命令如
top
、htop
等,可以全面监控系统资源的使用情况。
df
当使用 df
命令时,您可以通过以下常见的用法和知识点来更好地理解和利用它:
- 基本用法: 在终端中输入
df
命令即可显示文件系统的磁盘空间使用情况。默认情况下,它会列出所有已挂载的文件系统的信息。 - 显示详细信息: 可以使用
-h
选项以人类可读的方式显示磁盘空间大小,以便更容易理解。 - 指定文件系统: 如果您只想查看特定文件系统的信息,可以在
df
命令后面加上文件系统的路径或名称。 - 显示 inode 信息: 使用
-i
选项可以显示文件系统的 inode 使用情况,这对于检查文件系统是否已经满了很有帮助。 - 只显示本地文件系统: 使用
-l
选项只显示本地文件系统的信息,不包括 NFS、SMB 等远程文件系统。 - 以特定文件系统类型显示: 您可以使用
-t
选项指定要显示的文件系统类型,比如df -t ext4
只显示 ext4 类型的文件系统。 - 显示总体使用情况:
df -h --total
可以显示所有文件系统的总使用情况,包括总容量、已用空间、可用空间等。 - 显示文件系统容量百分比: 使用
df -hT
可以显示文件系统的类型,并且显示每个文件系统使用的百分比。 - 定期监控: 您可以将
df
命令和一些选项与定时任务结合起来,定期监控磁盘空间的使用情况,及时采取措施避免磁盘空间不足导致的问题。
uptime
uptime
命令用于显示系统的运行时间以及平均负载信息。以下是关于 uptime
命令的日常用法以及相关知识点:
- 基本用法:
- 在终端中输入
uptime
即可显示系统的当前运行时间、当前登录用户数以及系统的平均负载。
- 输出解释:
当前时间
:显示当前系统时间。系统运行时间
:显示系统自上次启动以来的运行时间。登录用户数
:显示当前登录到系统的用户数量。平均负载
:包括系统在过去 1 分钟、5 分钟和15 分钟内的平均负载情况。
- 平均负载解释:
- 平均负载是指系统处于等待 CPU 或其他资源的进程数的平均值。
- 通常情况下,平均负载小于 CPU 核心数比较合理。超过 CPU 核心数可能表示系统负载过重。
- 1 分钟、5 分钟、15 分钟内的平均负载可以帮助你了解系统负载的变化趋势。
- 使用场景:
- 可以通过
uptime
查看系统的运行时间,判断系统是否需要重启或已经运行了多长时间。 - 了解系统的平均负载情况,帮助排查系统负载高的原因。
- 当系统负载异常时,可以及时发现并采取相应的措施进行优化。
- 负载理解:
- 负载小于 1 表示系统轻松处理所有任务。
- 负载大于 1 但小于 CPU 核心数表示系统可能在繁忙状态。
- 负载高于 CPU 核心数可能导致系统响应变慢,需要及时处理。
netstat
netstat
是一个用于显示网络连接、路由表和网络接口信息的命令行工具。以下是关于 netstat
命令的日常用法以及相关知识点:
- 基本用法:
- 在终端中输入
netstat
即可显示系统的网络连接信息。 - 使用
netstat -a
可以显示所有的连接和监听端口。 - 使用
netstat -t
可以显示 TCP 协议相关的连接信息。 - 使用
netstat -u
可以显示 UDP 协议相关的连接信息。 - 使用
netstat -n
可以显示数字格式的 IP 地址和端口号。
- 输出解释:
Proto
:显示连接的协议类型,如 TCP 或 UDP。Recv-Q
:表示接收队列中的字节数。Send-Q
:表示发送队列中的字节数。Local Address
:本地地址和端口号。Foreign Address
:远程地址和端口号。State
:连接状态,如 ESTABLISHED、LISTENING、TIME_WAIT 等。
- 使用场景:
- 通过
netstat
可以查看当前系统的网络连接情况,包括连接状态、本地地址、远程地址等信息。 - 可以用于排查网络问题,如查找哪些进程占用了网络端口、查看连接的建立状态等。
- 在网络故障排除过程中,
netstat
是一个重要的工具,可以帮助管理员快速定位网络问题的根源。
- 常用参数:
-a
:显示所有连接和监听端口。-t
:仅显示 TCP 协议相关的连接信息。-u
:仅显示 UDP 协议相关的连接信息。-n
:以数字格式显示 IP 地址和端口号,而不进行 DNS 解析。
- 其他信息:
netstat -r
:显示系统的路由表信息。netstat -i
:显示网络接口信息,如接口名称、MTU、接收和发送数据包数量等。netstat -s
:显示网络统计信息,如接收和发送的数据包数量、错误包数量等。netstat -p
:显示与进程相关的网络连接信息。
在 netstat
命令的输出中,状态 State 表示网络连接的当前状态。这些状态反映了连接在网络通信过程中所处的不同阶段和状态,对于排查网络问题和监控网络连接非常重要。以下是常见的连接状态及其含义:
- ESTABLISHED:表示已经建立的连接状态,数据可以在两端的主机之间传输。通常在正常的网络通信中会看到该状态。
- LISTENING:表示一个进程正在等待其他主机发起连接。在服务器端程序中,通常会出现此状态,用于监听来自客户端的连接请求。
- TIME_WAIT:表示连接已经关闭,但仍然在等待一段时间(称为 TIME-WAIT 状态)以确保远程主机接收到最后的 ACK 包。这是 TCP 协议的一种设计,用于防止旧的数据包干扰新的连接。
- CLOSE_WAIT:表示本地应用程序已经关闭连接,但远程主机仍然保持连接打开状态。一般来说,应用程序应该尽快处理 CLOSE_WAIT 状态的连接,避免资源泄漏。
- FIN_WAIT:表示连接即将关闭,本地主机已经发送了连接终止请求,等待远程主机的确认。FIN_WAIT_1 和 FIN_WAIT_2 是 FIN_WAIT 状态的两个子状态,表示连接关闭过程中的不同阶段。
- SYN_SENT 和 SYN_RECV:表示正在建立连接的过程中,分别表示本地主机发送 SYN 包和远程主机回应 SYN 包的状态。
- CLOSING:表示连接正在关闭的过程中,本地主机已经收到远程主机的关闭请求,但还未发送确认。
- LAST_ACK:表示连接即将关闭,本地主机发送了关闭请求后等待最后的确认 ACK。
ifconfig
ifconfig
是一个用于配置和显示系统网络接口信息的命令行工具,常见于类 Unix 系统中,如 Linux 和 macOS。下面是关于 ifconfig
命令的日常用法以及相关知识点:
- 基本用法:
- 在终端中输入
ifconfig
即可显示当前系统中所有网络接口的信息。 - 使用
ifconfig
可以显示特定网络接口(如 eth0、wlan0 等)的详细信息。
- 常见输出信息:
inet
:显示 IPv4 地址。inet6
:显示 IPv6 地址。netmask
:显示子网掩码。broadcast
:显示广播地址。hwaddr
或ether
:显示硬件地址(MAC 地址)。RX packets
和TX packets
:显示接收和发送的数据包数量。MTU
:显示最大传输单元。UP
和DOWN
:显示接口是否启用或禁用。
- 常用参数:
ifconfig up
:启用指定网络接口。ifconfig down
:禁用指定网络接口。ifconfig
:设置指定网络接口的 IP 地址。ifconfig promisc
:将指定网络接口设置为混杂模式,使其能够接收所有经过它的数据包。
- 配置网络接口:
- 使用
ifconfig
命令可以临时配置网络接口的 IP 地址、子网掩码等信息。 - 通过编辑网络配置文件,可以实现系统重启后网络接口信息的持久化配置。
- 其他补充:
- 在一些新的 Linux 发行版中,
ifconfig
命令可能已被弃用,推荐使用ip
命令来代替。 ifconfig
通常需要管理员权限才能执行,因为它涉及到网络接口的配置和管理。
- 配合网络故障排查:
- 在网络故障排除过程中,
ifconfig
是一个重要的工具,可以用来查看各个网络接口的状态、IP 地址等信息,帮助管理员定位网络问题。