top
命令提供运行系统的动态实时视图。它用于监控系统进程和资源使用情况,如 CPU、内存和交换使用情况。
top
命令的一般语法:
$ top [OPTIONS]
1. 列出所有正在运行的进程
top
使用 top
命令显示正在运行的任务、内存、cpu 和 swap。要关闭窗口,请按 Q
示例:
在不带任何选项的终端中运行 top
命令,可能会得到以下结果。
top - 15:20:26 up 10 days, 2:30, 1 user, load average: 0.00, 0.01, 0.05 Tasks: 193 total, 1 running, 192 sleeping, 0 stopped, 0 zombie %Cpu(s): 0.7 us, 0.2 sy, 0.0 ni, 98.9 id, 0.1 wa, 0.0 hi, 0.1 si, 0.0 st KiB Mem : 8167848 total, 2003084 free, 1652232 used, 4512532 buff/cache KiB Swap: 2097148 total, 2097148 free, 0 used. 6171720 avail Mem PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND 1219 root 20 0 658884 56644 35980 S 6.7 0.7 42:11.77 Xorg 2781 user1 20 0 883780 31576 21744 S 6.7 0.4 0:01.01 gnome-terminal- 1 root 20 0 225636 9484 6812 S 0.0 0.1 0:07.31 systemd 2 root 20 0 0 0 0 S 0.0 0.0 0:00.01 kthreadd 4 root 0 -20 0 0 0 S 0.0 0.0 0:00.00 kworker/0:0H 6 root 0 -20 0 0 0 S 0.0 0.0 0:00.00 mm_percpu_wq 7 root 20 0 0 0 0 S 0.0 0.0 0:00.31 ksoftirqd/0 8 root 20 0 0 0 0 I 0.0 0.0 0:02.91 rcu_sched
第一行提供系统摘要:当前时间、正常运行时间、用户数量和平均负载。
第二行显示任务总数及其状态:运行、休眠、停止或僵尸。
第三行显示 CPU 使用详情:用户进程、系统进程、空闲进程等。
第四行和第五行显示内存使用情况:总内存、空闲内存、已用内存和缓冲/缓存内存。其余各行列出系统上运行的所有进程。每一行代表一个进程,详细内容包括 PID
, USER
, CPU usage
, Memory usage,
以及启动该进程所使用的命令。
2. 显示特定用户的进程
top -u [user]
使用 -u
选项可以显示特定用户的所有运行进程信息。
示例:
显示 root
用户的运行进程。
top - 12:34:56 up 10 days, 2:30, 2 users, load average: 0.00, 0.01, 0.05 Tasks: 100 total, 1 running, 99 sleeping, 0 stopped, 0 zombie %Cpu(s): 0.3 us, 0.1 sy, 0.0 ni, 99.5 id, 0.0 wa, 0.0 hi, 0.1 si, 0.0 st MiB Mem : 7976.1 total, 1694.7 free, 1263.5 used, 5017.8 buff/cache MiB Swap: 1024.0 total, 1024.0 free, 0.0 used. 6412.1 avail Mem PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND 1 root 20 0 225492 9484 6812 S 0.0 0.1 0:06.37 systemd 2 root 20 0 0 0 0 S 0.0 0.0 0:00.01 kthreadd 3 root 20 0 0 0 0 S 0.0 0.0 0:00.36 ksoftirqd/0 5 root 0 -20 0 0 0 I 0.0 0.0 0:00.00 kworker/0:0H 7 root 20 0 0 0 0 I 0.0 0.0 0:01.31 rcu_sched ...
在这个例子中,你可以看到 top -u root
命令只显示 root
用户拥有的进程。输出包括每个进程的相关信息,如进程 ID (PID)、优先级 (PR)、友好值 (NI)、虚拟内存大小 (VIRT)、常驻内存大小 (RES)、共享内存大小 (SHR)、CPU 使用率 (%CPU)、内存使用率 (%MEM) 以及启动进程的命令 (COMMAND)。
3. 启用批处理模式
top -b
top -b
命令用于以批处理模式运行 top
。当你想将 top
的输出重定向到文件或其他命令时,这条命令特别有用。在批处理模式下,top
不接受输入,一直运行到设定的迭代次数限制,或直到被杀死。
示例:
在本例中,-n 1
会让 top
只运行一次,而不是持续更新。输出会被重定向到 top-output.txt
中。
打开 top-output.txt
文件,可能会看到类似下面的输出:
top - 18:25:01 up 10 days, 5:45, 1 user, load average: 0.00, 0.01, 0.05 Tasks: 162 total, 1 running, 161 sleeping, 0 stopped, 0 zombie %Cpu(s): 0.7 us, 0.3 sy, 0.0 ni, 98.9 id, 0.1 wa, 0.0 hi, 0.0 si, 0.0 st KiB Mem : 8167848 total, 1785084 free, 1583456 used, 4799308 buff/cache KiB Swap: 2097148 total, 2097148 free, 0 used. 6250480 avail Mem PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND 1 root 20 0 225492 9484 6812 S 0.0 0.1 0:09.07 systemd 2 root 20 0 0 0 0 S 0.0 0.0 0:00.01 kthreadd 3 root 20 0 0 0 0 S 0.0 0.0 0:00.55 ksoftirqd/0 5 root 0 -20 0 0 0 S 0.0 0.0 0:00.00 kworker/0:0H 7 root 20 0 0 0 0 S 0.0 0.0 0:07.28 rcu_sched
4. 从同一状态开始
top -c
top -c
显示当前活动进程以及其他信息,包括启动每个进程所用的完整命令行。这有助于查看传递给进程的确切参数。
示例:
下面是 top -c
命令的输出示例:
top - 12:34:56 up 10 days, 2:03, 2 users, load average: 0.00, 0.01, 0.05 Tasks: 100 total, 1 running, 99 sleeping, 0 stopped, 0 zombie %Cpu(s): 0.3 us, 0.1 sy, 0.0 ni, 99.6 id, 0.0 wa, 0.0 hi, 0.0 si, 0.0 st KiB Mem : 2040204 total, 987204 free, 105204 used, 948796 buff/cache KiB Swap: 1048572 total, 1048572 free, 0 used. 1830204 avail Mem PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND 1 root 20 0 159444 6604 3904 S 0.0 0.3 0:06.35 /sbin/init splash 2 root 20 0 0 0 0 S 0.0 0.0 0:00.02 [kthreadd] 3 root 20 0 0 0 0 S 0.0 0.0 0:00.85 [ksoftirqd/0] 5 root 0 -20 0 0 0 S 0.0 0.0 0:00.00 [kworker/0:0H] 7 root 20 0 0 0 0 S 0.0 0.0 0:03.78 [rcu_sched] 123 root 20 0 278532 37888 26976 S 0.0 1.9 0:03.45 /usr/bin/dockerd -H fd:// 456 www-data 20 0 161916 6412 2680 S 0.0 0.3 0:00.01 /usr/sbin/apache2 -k start
前几行提供系统摘要,包括当前时间、系统运行时间、用户数量、平均负载和内存使用情况。
之后的每一行代表一个进程,并包含每个进程的各种信息。其中包括进程 ID (PID)、拥有该进程的用户、优先级 (PR) 和 nice 值 (NI)、内存使用情况 (VIRT、RES、SHR)、当前状态 (S)、CPU 使用率 (%CPU)、内存使用情况 (%MEM)、进程运行时间 (TIME+) 以及完整的命令行 (COMMAND)。
-c
选项显示启动每个进程的完整命令行。例如,对于 PID 1,命令是 /sbin/init splash
。对于 PID 123,命令是 /usr/bin/dockerd -H fd://
。这有助于查看传递给进程的确切参数。
5. 启用安全模式
top -s
-s
选项用于安全模式操作。在安全模式下,一些可能有害的交互式命令会被禁用。当系统管理员在需要限制用户操作的环境中运行 top 时,这个选项尤其有用。举例说明:
示例:
下面举例说明在这种情况下如何使用 -s
选项:
top -s 5
这条命令将启动 top
并每 0.5 秒刷新一次显示。
6. 设置屏幕更新的延迟时间
top -d [seconds]
-d
选项用于指定屏幕更新之间的延迟时间,换句话说就是刷新率。默认情况下,top
每 3.0 秒更新一次,但使用 -d
选项,可以将其设置为任何需要的间隔。
示例:
在 -d
选项后指定数字 20
,每 20 秒更新一次输出。
top -d 20
7. 设置迭代次数
top -n [number]
top -n
会更新 top
命令显示 n 次,然后退出。如果你想定期对系统进行快速快照,这将非常有用。
更多 Linux 命令
下面罗列了最常见的一些 Linux 命令,您可以根据自己的需要查阅对应命令的详细解析:
目录操作 | rmdir · cd · pwd · exa · ls |
文件操作 | cat · cp · dd · less · touch · ln · rename · more · head |
文件系统操作 | chown · mkfs · locate |
网络 | ping · curl · wget · iptables · mtr |
搜索和文本处理 | find · grep · sed · whatis · ripgrep · fd · tldr |
系统信息和管理 | env · history · top · who · htop · glances · lsof |
用户和会话管理 | screen · su · sudo · open |
此外,我们还整理 Linux 命令行大全,以帮助大家全面深入地学习 Linux。
评论留言