ps----查看系统进程

106 阅读4分钟

#简介

原文链接:culturesun.site/index.php/a…

ps命令经常用,但是从来没有系统学习。 而且,在不同的Linux发行版系统中,ps命令的使用也是有略微差别的。

#详解 使用ps --help命令查看帮助文档

┌──(root㉿kali)-[~]
└─# ps --help     

Usage:
 ps [options]

 Try 'ps --help <simple|list|output|threads|misc|all>'
  or 'ps --help <s|l|o|t|m|a>'
 for additional help text.

For more details see ps(1).
                                                                                                                                                                                                                                           
┌──(root㉿kali)-[~]
└─# ps --help simple

Usage:
 ps [options]

Basic options:
 -A, -e               all processes
 -a                   all with tty, except session leaders
  a                   all with tty, including other users
 -d                   all except session leaders
 -N, --deselect       negate selection
  r                   only running processes
  T                   all processes on this terminal
  x                   processes without controlling ttys

For more details see ps(1).
                                                                                                                                                                                                                                           
┌──(root㉿kali)-[~]
└─# ps --help s     

Usage:
 ps [options]

Basic options:
 -A, -e               all processes
 -a                   all with tty, except session leaders
  a                   all with tty, including other users
 -d                   all except session leaders
 -N, --deselect       negate selection
  r                   only running processes
  T                   all processes on this terminal
  x                   processes without controlling ttys

For more details see ps(1).

ps命令的模块较多,要使用ps --help 模块名,如上述的ps --help simple(可简称s)

##常用参数

---|--- -a| 显示所有进程,包括其他用户的进程。 -u| 显示指定用户的进程信息。 -x| 显示所有进程,包括没有控制终端的进程。 -e| 显示所有进程,等同于ps -A。 -f| 显示进程的详细信息,包括进程的UID、PPID、CPU占用率等。 -l| 显示进程的长格式信息,包括进程的UID、PPID、CPU占用率、内存占用率等。 -p| 显示指定进程号的进程信息。

除上述简单参数,还有一些高级参数

  1. --sort 用于指定进程信息的排序方式。可以使用以下参数值:

---|---- %cpu| 按照CPU占用率排序。 %mem| 按照内存占用率排序。 pid |按照进程号排序。 ppid| 按照父进程号排序。 start_time| 按照进程启动时间排序。 time| 按照进程运行时间排序。

例如,要按照CPU占用率从高到低排序显示所有进程的信息,可以使用命令: ps -eo pid,ppid,cmd,%cpu --sort=-%cpu 该命令会显示所有进程的PID、PPID、命令和CPU占用率,并按照CPU占用率从高到低排序。

  1. --forest 用于显示进程树,包括进程的父子关系。还有一个与之类似的命令----pstree,也是查看进程树。 例如,要显示所有进程的进程树,可以使用命令: ps -ef --forest 该命令会显示所有进程的进程树,包括进程的父子关系。
  2. --headers 用于显示进程信息的表头。 例如,要显示所有进程的PID、PPID、命令和CPU占用率,并显示表头,可以使用命令: ps -eo pid,ppid,cmd,%cpu --headers 该命令会显示所有进程的PID、PPID、命令和CPU占用率,并显示表头。
  3. no-headers 用于不显示进程信息的表头。 例如,要显示所有进程的PID、PPID、命令和CPU占用率,并不显示表头,可以使用命令: ps -eo pid,ppid,cmd,%cpu --no-headers 该命令会显示所有进程的PID、PPID、命令和CPU占用率,并不显示表头。
  4. --user 用于指定要查看的用户的进程信息。 例如,要查看用户root的进程信息,可以使用命令: ps -u root 该命令会显示用户root的进程信息。

##使用技巧

  1. 使用grep命令过滤进程信息 有时候,我们只需要查看某个进程或者某个用户的进程信息,可以使用grep命令来过滤进程信息。例如,要查看所有以nginx开头的进程信息,可以使用命令:
ps -ef | grep nginx

该命令会先使用ps -ef命令显示所有进程的详细信息,然后使用grep命令过滤出所有以nginx开头的进程信息。

  1. 使用watch命令实时查看进程信息 有时候,我们需要实时查看进程的信息,可以使用watch命令实现。例如,要实时查看所有进程的CPU占用率,可以使用命令:
watch -n 1 'ps -eo pid,ppid,cmd,%cpu --sort=-%cpu | head'

该命令会每秒钟执行一次ps命令,显示所有进程的PID、PPID、命令和CPU占用率,并按照CPU占用率从高到低排序,然后只显示前10行。

  1. 使用top命令查看进程信息 top命令是一个非常强大的进程查看工具,可以实时查看进程的信息。可以使用top命令来查看进程的CPU占用率、内存占用率等信息。例如,要查看所有进程的CPU占用率,可以使用命令:
top

该命令会实时显示所有进程的CPU占用率、内存占用率等信息,并按照CPU占用率从高到低排序。

  1. 使用pstree命令查看进程树 pstree命令可以显示进程树,包括进程的父子关系。例如,要查看所有进程的进程树,可以使用命令:
pstree

该命令会显示所有进程的进程树,包括进程的父子关系。

  1. 使用pidof命令查找进程号 pidof命令可以根据进程名查找进程号。例如,要查找nginx进程的进程号,可以使用命令:
pidof nginx

该命令会显示nginx进程的进程号。

#结语 学无止境啊!!!