ps----查看系统进程

2023-05-18 14:55:57 浏览数 (2)

简介

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

详解

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

代码语言:javascript复制
┌──(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).

Bash

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 该命令会显示所有进程的进程树,包括进程的父子关系。

  1. --headers

用于显示进程信息的表头。 例如,要显示所有进程的PID、PPID、命令和CPU占用率,并显示表头,可以使用命令: ps -eo pid,ppid,cmd,%cpu --headers 该命令会显示所有进程的PID、PPID、命令和CPU占用率,并显示表头。

  1. no-headers

用于不显示进程信息的表头。 例如,要显示所有进程的PID、PPID、命令和CPU占用率,并不显示表头,可以使用命令: ps -eo pid,ppid,cmd,%cpu --no-headers 该命令会显示所有进程的PID、PPID、命令和CPU占用率,并不显示表头。

  1. --user

用于指定要查看的用户的进程信息。 例如,要查看用户root的进程信息,可以使用命令: ps -u root 该命令会显示用户root的进程信息。

使用技巧

  1. 使用grep命令过滤进程信息

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

代码语言:javascript复制
ps -ef | grep nginx

Bash

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

  1. 使用watch命令实时查看进程信息

有时候,我们需要实时查看进程的信息,可以使用watch命令实现。例如,要实时查看所有进程的CPU占用率,可以使用命令:

代码语言:javascript复制
watch -n 1 'ps -eo pid,ppid,cmd,%cpu --sort=-%cpu | head'

Bash

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

  1. 使用top命令查看进程信息

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

代码语言:javascript复制
top

Bash

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

  1. 使用pstree命令查看进程树

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

代码语言:javascript复制
pstree

Bash

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

  1. 使用pidof命令查找进程号

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

代码语言:javascript复制
pidof nginx

Bash

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

结语

学无止境啊!!!

0 人点赞