📅  最后修改于: 2023-12-03 15:09:10.975000             🧑  作者: Mango
在Linux系统中,我们经常需要查看正在运行的进程,这些进程可能是我们自己启动的程序,也可能是系统自带的服务以及其他用户启动的程序。在Shell-Bash中,有一些命令可以帮助我们查看正在运行的命令。本文将介绍其中三个常用的命令:top、ps和htop。
top
命令可以实时地显示系统的负载情况,包括CPU、内存、交换分区等。它还会列出系统中消耗最多资源的进程,并按照 CPU 占用率或内存占用率排序。以下是在终端中使用 top
命令的输出结果:
top - 16:15:07 up 8:05, 1 user, load average: 0.43, 0.37, 0.33
Tasks: 267 total, 1 running, 266 sleeping, 0 stopped, 0 zombie
%Cpu(s): 4.4 us, 1.7 sy, 0.0 ni, 93.5 id, 0.2 wa, 0.0 hi, 0.2 si, 0.0 st
MiB Mem : 15873.3 total, 5680.9 free, 4089.9 used, 6102.5 buff/cache
MiB Swap: 15814.0 total, 15814.0 free, 0.0 used. 10646.4 avail Mem
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
3990 root 20 0 3964 1716 1280 R 3.3 0.0 0:00.17 top
10404 root 20 0 835960 128004 16456 S 2.0 0.8 23:57.70 Xorg
6409 alice 20 0 1971648 125796 55520 S 1.3 0.8 1:28.99 gnome-shell
797 root 20 0 50292 7776 5808 S 1.0 0.0 2:24.13 systemd-journal
1039 root 20 0 217428 13312 11016 S 0.7 0.1 1:32.68 snapd
21 root 20 0 0 0 0 S 0.3 0.0 0:05.79 ksoftirqd/4
其中,第一行显示了系统的基本信息、运行时间以及平均负载情况;第二行显示了系统的任务数量以及状态;第三行显示了CPU使用情况;第四行显示了内存使用情况;后面则是多个进程的信息,包括进程ID、用户、CPU占用率、内存占用率、运行时间以及所占用的命令。
在 top 的交互模式中,可以使用一些快捷键来实现不同的功能,例如:
h
:显示帮助信息。k
:杀死指定进程。r
:修改指定进程的优先级。q
:退出 top。ps
命令可以列出当前系统中的进程信息。它提供多种选项以实现不同的功能,例如列出所有进程、列出指定用户的进程、列出进程树等。以下是一些常用的选项:
ps aux
:列出所有进程的详细信息,包括进程ID、用户、CPU占用率、内存占用率、运行时间以及所占用的命令等。ps -ef
:与 ps aux
类似,但使用BSD风格的选项。ps -u username
:列出指定用户的进程信息。ps -p pid
:列出指定进程ID的进程信息。ps ufx
:列出进程树。以下是使用 ps aux
命令的示例结果:
USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND
root 1 0.0 0.2 157804 9528 ? Ss 16:03 0:02 /sbin/init splashsystemd.show_status=auto
root 2 0.0 0.0 0 0 ? S 16:03 0:00 [kthreadd]
root 3 0.0 0.0 0 0 ? I< 16:03 0:00 [rcu_gp]
root 4 0.0 0.0 0 0 ? I< 16:03 0:00 [rcu_par_gp]
root 6 0.0 0.0 0 0 ? I< 16:03 0:00 [kworker/0:0H-kblockd]
root 8 0.0 0.0 0 0 ? I< 16:03 0:00 [mm_percpu_wq]
root 9 0.0 0.0 0 0 ? S 16:03 0:00 [ksoftirqd/0]
root 10 0.0 0.0 0 0 ? I 16:03 0:00 [rcu_sched]
root 11 0.0 0.0 0 0 ? S 16:03 0:00 [migration/0]
root 12 0.0 0.0 0 0 ? S 16:03 0:00 [watchdog/0]
其中,每行的信息包括进程的用户、进程ID、CPU占用率、内存占用率、虚拟内存、物理内存、终端、状态、起始时间以及所占用的命令。
htop
命令是 top
命令的改进版,可以更加友好和方便地查看系统信息。它支持交互式的界面,并提供了多种排序选项和快捷键,以方便用户查看和控制进程的状态。以下是在终端中使用 htop
命令的输出结果:
1 [||||||||| 12.1%] 2 [||||||||||||||||||||||||||||||||||||||||||65.9%]
Mem[|||||||||||||||||||||||||||||||||||||||16.1G/31.2G] Tasks: 267, 0 thr; 1 running
Swp[ 0/15.4G 0.0%] Load average: 0.43 0.37 0.33
Uptime: 08:05:12
PID USER PRI NI VIRT RES SHR S %CPU %MEM TIME+ Command
3990 root 20 0 3964 1716 1280 R 3.3 0.0 0:00.17 top
10404 root 20 0 835960 128004 16456 S 2.0 0.8 23:57.70 Xorg
6409 alice 20 0 1971648 125796 55520 S 1.3 0.8 1:28.99 gnome-shell
797 root 20 0 50292 7776 5808 S 1.0 0.0 2:24.13 systemd-journal
1039 root 20 0 217428 13312 11016 S 0.7 0.1 1:32.68 snapd
以上是htop
命令的截图,其中每行信息包括进程的PID,用户,CPU占用率,内存占用率,虚拟内存,物理内存,进程优先级和所占用的命令。在交互模式下,可以使用一些快捷键来实现不同的功能,例如:
F2
:修改设置。F3
:按进程名称搜索。F4
:按进程名称或命令行搜索。F5
:显示系统活动。F6
:按照进程列排序。F7
:按照CPU列排序。F8
:按照内存列排序。F9
:杀死指定进程。F10
:退出 htop。综上所述,通过 top
、ps
和 htop
这些命令,我们可以轻松查看系统中正在运行的进程的详细信息。在特定的场景下,它们将是非常有用的工具。