如何在 Linux 系统中查看进程的详细信息?

简介: 如何在 Linux 系统中查看进程的详细信息?

在Linux系统中,可以使用多种命令来查看进程的详细信息,以下是一些常用的命令及方法:

ps 命令

  • 基本语法ps [options]
  • 常用参数
    • -e:显示所有进程。
    • -f:显示完整格式的进程信息,包括UID、PID、PPID、C、STIME、TTY、TIME、CMD等字段。
    • -l:以长格式显示进程信息,包含更多详细信息,如F、S、UID、PID、PPID、C、PRI、NI、ADDR、SZ、WCHAN、TTY、TIME、CMD等。
    • -u:指定用户名,显示该用户拥有的进程信息。
    • -p:指定进程ID,显示特定进程的信息。
  • 使用示例
    • ps -ef:查看系统中所有进程的详细信息,例如:
      UID        PID  PPID  C STIME TTY          TIME CMD
      root         1     0  0 10:00?        00:00:02 /sbin/init
      root         2     0  0 10:00?        00:00:00 [kthreadd]
      root         3     2  0 10:00?        00:00:00 [rcu_gp]
      root         4     2  0 10:00?        00:00:00 [rcu_par_gp]
      ...
      
    • ps -l:以长格式查看当前终端的进程信息,例如:
      F S   UID   PID  PPID  C PRI  NI ADDR SZ WCHAN  TTY          TIME CMD
      0 S  1000  2262  2250  0  80   0 -  3747 wait   pts/0    00:00:00 bash
      0 R  1000  2345  2262  0  80   0 -  4289 -      pts/0    00:00:00 ps
      
    • ps -u username:查看指定用户的进程信息,例如ps -u root将显示root用户拥有的所有进程。

top 命令

  • 基本原理:实时动态地查看系统中各个进程的资源占用情况,包括CPU使用率、内存占用、进程状态等信息。
  • 使用示例:在终端输入top,进入界面后,可以看到类似如下的信息:
    top - 15:30:00 up 1 day, 2:15,  2 users,  load average: 0.00, 0.01, 0.05
    Tasks: 140 total,   1 running, 139 sleeping,   0 stopped,   0 zombie
    %Cpu(s):  0.0 us,  0.0 sy,  0.0 ni,100.0 id,  0.0 wa,  0.0 hi,  0.0 si,  0.0 st
    MiB Mem :   7786.4 total,   1278.6 free,   3288.2 used,   3219.6 buff/cache
    MiB Swap:   2048.0 total,   1942.0 free,    106.0 used.   2843.7 avail Mem
    PID USER      PR  NI    VIRT    RES    SHR S  %CPU %MEM     TIME+ COMMAND
    1234 root      20   0  123456  56789  12345 S   0.0  0.7   0:05.67 firefox
    2345 daemon    20   0  234567  34567  45678 S   0.0  0.4   0:03.21 httpd
    3456 nobody    20   0  345678  45678  56789 S   0.0  0.6   0:04.56 mysqld
    
  • 结果解读
    • 第一行:显示系统当前时间、系统运行时间、当前登录用户数以及系统负载平均值。
    • 第二行:显示系统中的进程总数、正在运行的进程数、睡眠的进程数、停止的进程数和僵尸进程数。
    • 第三行:显示CPU的使用情况,包括用户空间使用率、内核空间使用率、调整优先级的进程占用率、空闲率、等待I/O的进程占用率、硬件中断占用率、软件中断占用率以及被虚拟化环境偷走的CPU时间占比。
    • 第四行和第五行:分别显示内存和交换空间的使用情况,包括总量、已使用量、空闲量等。
    • 后续行:显示各个进程的详细信息,包括进程ID、所属用户、优先级、虚拟内存大小、物理内存大小、共享内存大小、进程状态、CPU使用率、内存使用率、运行时间以及命令名称等。

htop 命令

  • 基本原理:基于top的交互式进程查看工具,提供了更直观、更丰富的界面和功能,方便查看进程的各种信息。
  • 使用示例:在终端输入htop,会显示一个彩色的交互式界面,其中包含了各个进程的详细信息以及系统资源的总体使用情况,如下所示:
    PID USER      PRI  NI  VIRT   RES   SHR S CPU% MEM%   TIME+  Command
    1234 root       20   0 123456 56789 12345 S  0.0  0.7  0:05.67 firefox
    2345 daemon     20   0 234567 34567 45678 S  0.0  0.4  0:03.21 httpd
    3456 nobody     20   0 345678 45678 56789 S  0.0  0.6  0:04.56 mysqld
    
  • 结果解读:与top命令类似,VIRT表示虚拟内存大小,RES表示物理内存大小,SHR表示共享内存大小,MEM%表示该进程占用物理内存占总内存的百分比,CPU%表示CPU使用率,通过界面中的进度条和颜色等直观元素,可以更快速地了解各个进程的资源占用情况以及它们之间的相对大小关系。此外,htop还支持鼠标操作,方便用户对进程进行排序、筛选、终止等操作。

pmap 命令

  • 基本语法pmap [options] pid
  • 常用参数
    • -x:以扩展格式显示进程的内存映射信息,包括地址范围、内存大小、权限、映射文件等详细信息。
    • -d:显示进程的内存段信息,包括起始地址、结束地址、大小、权限等。
  • 使用示例:假设要查看进程ID为1234的进程内存映射情况,使用pmap -x 1234命令,会得到类似如下的输出:
    1234:   firefox
    Address           Kbytes     RSS   Dirty Mode  Mapping
    000055555576c000      4       4       0 r---- firefox
    000055555576d000      4       4       4 rw--- firefox
    000055555576e000      4       4       4 rw--- firefox
    000055555576f000      4       4       0 r---- firefox
    0000555555770000      4       4       4 rw--- firefox
    0000555555771000      4       4       4 rw--- firefox
    0000555555772000      4       4       0 r---- firefox
    0000555555773000      4       4       4 rw--- firefox
    0000555555774000      4       4       4 rw--- firefox
    00007f2f6c000000  1024     560     128 rw---   [ anon ]
    00007f2f6c100000  1024     200       0 rw---   [ anon ]
    00007f2f6c200000  1024     100       0 rw---   [ anon ]
    00007f2f6c300000  1024     240       0 rw---   [ anon ]
    00007f2f6c400000  1024     320       0 rw---   [ anon ]
    00007f2f6c500000  1024     400       0 rw---   [ anon ]
    00007f2f6c600000  1024     500       0 rw---   [ anon ]
    00007f2f6c700000  1024     600       0 rw---   [ anon ]
    00007f2f6c800000  1024     700       0 rw---   [ anon ]
    00007f2f6c900000  1024     800       0 rw---   [ anon ]
    00007f2f6ca00000  1024     900       0 rw---   [ anon ]
    00007f2f6cb00000  1024     960       0 rw---   [ anon ]
    00007f2f6cc00000  1024     980       0 rw---   [ anon ]
    00007f2f6cd00000  1024     990       0 rw---   [ anon ]
    00007f2f6ce00000  1024     995       0 rw---   [ anon ]
    00007f2f6cf00000  1024     998       0 rw---   [ anon ]
    00007f2f6d000000  1024     999       0 rw---   [ anon ]
    00007f2f6d100000  1024     999       0 rw---   [ anon ]
    00007f2f6d200000  1024     999       0 rw---   [ anon ]
    00007f2f6d300000  1024     999       0 rw---   [ anon ]
    00007f2f6d400000  1024     999       0 rw---   [ anon ]
    00007f2f6d500000  1024     999       0 rw---   [ anon ]
    00007f2f6d600000  1024     999       0 rw---   [ anon ]
    00007f2f6d700000  1024     999       0 rw---   [ anon ]
    00007f2f6d800000  1024     999       0 rw---   [ anon ]
    00007f2f6d900000  1024     999       0 rw---   [ anon ]
    00007f2f6da00000  1024     999       0 rw---   [ anon ]
    00007f2f6db00000  1024     999       0 rw---   [ anon ]
    00007f2f6dc00000  1024     999       0 rw---   [ anon ]
    00007f2f6dd00000  1024     999       0 rw---   [ anon ]
    00007f2f6de00000  1024     999       0 rw---   [ anon ]
    00007f2f6df00000  1024     999       0 rw---   [ anon ]
    00007fff2c000000    132     132     132 rw---   [ stack ]
    00007fff2c021000      8       8       0 r----   [ anon ]
    00007fff2c023000      4       4       4 rw---   [ anon ]
    00007fff2c024000     20      20      20 rw---   [ anon ]
    00007fff2c029000      8       8       8 rw---   [ anon ]
    ffffffffff600000      4       0       0 r-x--   [ anon ]
    total             56789
    
  • 结果解读Address列表示内存映射的起始地址,Kbytes列表示每个内存区域的大小,RSS列表示该区域在物理内存中的实际占用大小,Dirty列表示该区域中被修改但尚未写回磁盘的数据量,Mode列表示内存区域的权限,如r表示只读,w表示可写,x表示可执行,Mapping列表示内存映射对应的文件或匿名内存区域。通过对各个区域的RSS值求和,可以得到进程实际占用的物理内存总量。这种方式能够更详细地了解进程内存的具体分布情况。

/proc 目录

  • 基本原理/proc是一个虚拟文件系统,它提供了一种内核数据结构的接口,通过查看其中的文件和目录,可以获取系统和进程的各种信息。
  • 使用示例:对于每个进程,在/proc目录下都有一个以其进程ID命名的子目录,例如/proc/1234。进入该目录后,可以查看以下文件来获取进程的详细信息:
    • cmdline:包含启动该进程的完整命令行参数。
    • environ:包含进程的环境变量。
    • exe:指向该进程的可执行文件的符号链接。
    • fd:包含进程打开的文件描述符的目录。
    • maps:显示进程的内存映射信息,类似于pmap命令的输出,但格式略有不同。
    • status:包含进程的状态信息,如进程ID、父进程ID、进程组ID、虚拟内存大小、物理内存大小、状态等。

lsof 命令

  • 基本语法lsof [options]
  • 常用参数
    • -p:指定进程ID,显示该进程打开的文件和网络连接等信息。
    • -u:指定用户名,显示该用户拥有的进程打开的文件和网络连接等信息。
    • -i:显示网络连接相关的信息,可以指定特定的网络协议和端口号进行筛选。
  • 使用示例
    • lsof -p 1234:查看进程ID为1234的进程打开的文件和网络连接等信息,例如:
      ```
      COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
      firefox 1234 root cwd DIR 8,1 4096 10485760 /home/user
      firefox 1234 root r
目录
相关文章
|
24天前
|
算法 Linux 调度
深入理解Linux操作系统的进程管理
本文旨在探讨Linux操作系统中的进程管理机制,包括进程的创建、执行、调度和终止等环节。通过对Linux内核中相关模块的分析,揭示其高效的进程管理策略,为开发者提供优化程序性能和资源利用率的参考。
55 1
|
13天前
|
存储 缓存 监控
Linux缓存管理:如何安全地清理系统缓存
在Linux系统中,内存管理至关重要。本文详细介绍了如何安全地清理系统缓存,特别是通过使用`/proc/sys/vm/drop_caches`接口。内容包括清理缓存的原因、步骤、注意事项和最佳实践,帮助你在必要时优化系统性能。
133 78
|
16天前
|
Linux Shell 网络安全
Kali Linux系统Metasploit框架利用 HTA 文件进行渗透测试实验
本指南介绍如何利用 HTA 文件和 Metasploit 框架进行渗透测试。通过创建反向 shell、生成 HTA 文件、设置 HTTP 服务器和发送文件,最终实现对目标系统的控制。适用于教育目的,需合法授权。
53 9
Kali Linux系统Metasploit框架利用 HTA 文件进行渗透测试实验
|
12天前
|
存储 监控 Linux
嵌入式Linux系统编程 — 5.3 times、clock函数获取进程时间
在嵌入式Linux系统编程中,`times`和 `clock`函数是获取进程时间的两个重要工具。`times`函数提供了更详细的进程和子进程时间信息,而 `clock`函数则提供了更简单的处理器时间获取方法。根据具体需求选择合适的函数,可以更有效地进行性能分析和资源管理。通过本文的介绍,希望能帮助您更好地理解和使用这两个函数,提高嵌入式系统编程的效率和效果。
68 13
|
19天前
|
SQL 运维 监控
南大通用GBase 8a MPP Cluster Linux端SQL进程监控工具
南大通用GBase 8a MPP Cluster Linux端SQL进程监控工具
|
27天前
|
运维 监控 Linux
Linux操作系统的守护进程与服务管理深度剖析####
本文作为一篇技术性文章,旨在深入探讨Linux操作系统中守护进程与服务管理的机制、工具及实践策略。不同于传统的摘要概述,本文将以“守护进程的生命周期”为核心线索,串联起Linux服务管理的各个方面,从守护进程的定义与特性出发,逐步深入到Systemd的工作原理、服务单元文件编写、服务状态管理以及故障排查技巧,为读者呈现一幅Linux服务管理的全景图。 ####
|
1月前
|
缓存 算法 Linux
Linux内核的心脏:深入理解进程调度器
本文探讨了Linux操作系统中至关重要的组成部分——进程调度器。通过分析其工作原理、调度算法以及在不同场景下的表现,揭示它是如何高效管理CPU资源,确保系统响应性和公平性的。本文旨在为读者提供一个清晰的视图,了解在多任务环境下,Linux是如何智能地分配处理器时间给各个进程的。
|
1月前
|
Ubuntu Linux 网络安全
linux系统ubuntu中在命令行中打开图形界面的文件夹
在Ubuntu系统中,通过命令行打开图形界面的文件夹是一个高效且实用的操作。无论是使用Nautilus、Dolphin还是Thunar,都可以根据具体桌面环境选择合适的文件管理器。通过上述命令和方法,可以简化日常工作,提高效率。同时,解决权限问题和图形界面问题也能确保操作的顺利进行。掌握这些技巧,可以使Linux操作更加便捷和灵活。
43 3
|
13天前
|
Ubuntu Linux C++
Win10系统上直接使用linux子系统教程(仅需五步!超简单,快速上手)
本文介绍了如何在Windows 10上安装并使用Linux子系统。首先,通过应用商店安装Windows Terminal和Linux系统(如Ubuntu)。接着,在控制面板中启用“适用于Linux的Windows子系统”并重启电脑。最后,在Windows Terminal中选择安装的Linux系统即可开始使用。文中还提供了注意事项和进一步配置的链接。
35 0
|
1月前
|
Linux
在 Linux 系统中,`find` 命令
在 Linux 系统中,`find` 命令
39 1