Linux ps命令详解,看这篇就够了

2023-12-23 17:41:42

ps 是一个在 Unix 和 Linux 系统中常用的命令,用于查看当前运行的进程的状态。

命令截图

在这里插入图片描述

简单用法

* `ps aux`:显示所有进程的详细状态。

* `ps -ef` 或 `ps -fe`:显示所有进程的完整格式。

常用选项

  • -e:显示所有进程。
  • -f:全格式显示。
  • -l:长格式显示。
  • -a:显示终端上的所有进程,包括其他用户的进程。
  • -u:显示进程的详细状态。
  • -x:显示没有控制终端的进程。
  • -T:显示当前线程的层次结构。
  • -o:自定义输出格式,其中 <format> 可以是如下的格式选项之一或组合:%cpu、%mem、%tty、%time、%cmd等。例如,ps -o pid,tty,cmd 将只显示进程ID、终端类型和执行的命令行。
  • --sort:按指定的字段对输出进行排序。
  • head:仅显示输出中的前N行,其中N是用户指定的数字。

输出列的含义

ps aux

在这里插入图片描述

  1. USER: 进程的拥有者。这通常是运行该进程的用户帐户的名称。
  2. PID: 进程ID。每个进程都有一个唯一的ID,用于标识该进程。
  3. %CPU: 该进程占用的CPU使用率百分比。
  4. %MEM: 该进程占用的物理内存使用率百分比。
  5. VSZ: 虚拟内存大小,单位是KB。这表示进程使用的虚拟内存量。
  6. RSS: 常驻集大小,单位是KB。这表示进程在物理内存中占用的固定大小。
  7. TTY: 终端类型。如果进程没有与任何终端关联,则显示为"?"。
  8. STAT: 进程状态。这描述了进程的当前状态,例如运行中、休眠等。
  9. START: 进程启动的时间。
  10. TIME: 该进程实际使用CPU的时间,单位是小时:分钟:秒。
  11. COMMAND: 启动进程的命令名称或命令行。

ps -ef

在这里插入图片描述

  1. UID:用户ID,表示运行该进程的用户。
  2. PID:进程ID,每个进程都有一个唯一的ID。
  3. PPID:父进程ID,表示创建该进程的父进程的ID。
  4. C:CPU使用率,表示该进程占用的CPU百分比。
  5. STIME:进程启动的时间。
  6. TTY:终端类型,如果进程与某个终端关联,则显示该终端的名称;否则显示"?"。
  7. TIME:该进程实际使用CPU的时间,通常以分钟或小时为单位。
  8. CMD:启动进程的命令名称或命令行。

用法实例

  1. 显示所有进程

    • ps:默认情况下,ps命令将显示当前用户的进程。
    • ps -e:显示所有进程。
    • ps -A:显示所有进程,与ps -e相同。
    • ps -a:显示终端上的所有进程,包括其他用户的进程。
  2. 按进程状态筛选

    • ps aux:显示所有进程的详细状态。
    • ps -ef | grep <pattern>:使用grep命令过滤特定模式的进程。
  3. 按CPU或内存使用筛选

    • ps aux --sort=-%cpu:按CPU使用率降序显示进程。
    • ps aux --sort=-%mem:按内存使用率降序显示进程。
  4. 显示特定用户的进程

    • ps -u <username>:显示指定用户的进程。
  5. 显示命令行参数

    • ps -o args=:显示完整的命令行参数。
  6. 显示线程信息

    • ps -T:显示当前线程的层次结构。
  7. 其他选项

    • ps -o pid,tty,cmd:自定义输出格式,只显示进程ID、终端类型和执行的命令行。
    • ps -p <pid>:显示指定进程ID的详细信息。
    • ps -f:全格式显示进程信息。
    • ps -l:长格式显示进程信息。
  8. 查看更详细的状态信息

  • ps -o stat,tid,comm,lwp,pri,ni,stime,etime,cpu,rss,pcpu,pmem,args --sort=-tid --sort=-pcpu 这条命令提供了关于进程的详细状态信息,包括线程ID、命令名称、本地和远程信号时间、CPU和内存使用情况等。
  1. 组合使用:可以通过组合不同的选项和参数来定制ps命令的输出,以满足特定的需求。例如,ps aux --sort=-%cpu | head 命令将按CPU使用率降序显示进程,并只显示前10个结果。
  2. 查看特定用户的进程:如果你想查看特定用户的所有进程,可以使用以下命令: ps -u <用户名>,例如 ps -u root。如果你还想查看该用户所运行的所有子进程,可以使用 ps -e -o user,pid,cmd | grep <用户名> 命令。例如,要查找所有以"root"用户运行的进程,你可以输入 ps -e -o user,pid,cmd | grep root。这将列出所有由root用户启动的进程及其命令行。
  3. 查看特定进程:如果你想查看特定进程的详细信息,可以使用 ps -p <pid> 命令,其中 <pid> 是你要查找的进程的ID号。例如,要查找PID为1234的进程,你可以输入 ps -p 1234。这会显示出该进程的详细信息,包括它的状态、CPU使用率、内存使用率等。
  4. 查看线程信息:如果你想查看某个进程的线程信息,可以使用 ps -T -p <pid> 命令,其中 <pid> 是你要查找的进程的ID号。例如,要查找PID为1234的进程的所有线程,你可以输入 ps -T -p 1234。这会显示出该进程的所有线程及其相关信息。
  5. 查看系统负载:如果你想查看系统的负载情况,可以使用 uptime 命令。这将显示出系统已经运行了多长时间、有多少用户在线、以及系统负载的平均值等信息。如果你还想查看更详细的系统负载信息,可以使用 tophtop 命令。这些命令可以实时地显示出系统的CPU使用率、内存使用率、运行的进程等信息,并且还可以进行交互操作。

文章来源:https://blog.csdn.net/qq_40673786/article/details/135166627
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。