📌  相关文章
📜  如何查看正在运行的命令 linux - Shell-Bash (1)

📅  最后修改于: 2023-12-03 15:09:10.975000             🧑  作者: Mango

如何查看正在运行的命令

在Linux系统中,我们经常需要查看正在运行的进程,这些进程可能是我们自己启动的程序,也可能是系统自带的服务以及其他用户启动的程序。在Shell-Bash中,有一些命令可以帮助我们查看正在运行的命令。本文将介绍其中三个常用的命令:top、ps和htop。

top

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 命令可以列出当前系统中的进程信息。它提供多种选项以实现不同的功能,例如列出所有进程、列出指定用户的进程、列出进程树等。以下是一些常用的选项:

  • 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

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。

综上所述,通过 toppshtop 这些命令,我们可以轻松查看系统中正在运行的进程的详细信息。在特定的场景下,它们将是非常有用的工具。