Linux ps命令
ps是进程状态的缩写,是一个命令行实用程序,用于显示或者查看与Linux系统中运行的进程有关的信息。
众所周知,Linux是一个多任务和多处理系统。
因此,多个进程可以并发运行而不会互相影响。
ps命令列出了当前正在运行的进程以及它们的PID和其他属性。
在本教程中,我们将重点介绍ps命令的用法。
它从/proc文件系统中的虚拟文件中检索有关进程的信息
不带参数的ps命令
不带参数的ps命令列出了当前shell中正在运行的进程
ps
输出包括四列
PID-这是唯一的进程ID
TTY-这是用户登录到的终端的typeof
TIME
–这是进程已运行的时间,以分钟和秒为单位
CMD –启动进程的命令
以各种格式查看所有正在运行的进程
要浏览所有正在运行的进程,请执行以下命令
ps -A
或者
ps -e
查看与终端关联的进程
查看与终端运行关联的进程
ps -T
查看与终端不相关的进程
要查看所有与终端和会话负责人关联的进程之外的进程,请执行
ps -a
会话负责人是启动其他进程的进程
显示所有当前正在运行的进程
查看当前所有进程执行
ps -ax
-a标志代表所有进程-x
将显示所有进程,即使那些与当前tty不相关的进程也是如此
以BSD格式显示所有进程
如果您希望以BSD格式显示进程,请执行
ps au
或者
ps aux
执行完整格式列表
查看完整格式的列表运行
ps -ef
或者
ps -eF
根据用户筛选流程
如果您希望列出与特定用户关联的进程,请使用-u标志,如下所示
ps -u user
例如
ps -u jamie
按线程筛选过程
如果您想了解特定进程的线程,请使用-L标志和PID
例如
ps -L 4264
显示以root身份运行的每个进程
有时,您可能想要显示由root用户运行的所有进程。
要实现此运行
ps -U root -u root
显示组流程
如果您希望列出某个组运行关联的所有过程
ps -fG group_name
或者
ps -fG groupID
例如
ps -fG root
搜索进程 PID
通常,通常不知道进程的PID。
您可以通过运行以下命令搜索进程的PID
ps -C process_name
例如
ps -C bash
通过PID列出进程
您可以按其PID显示进程,如下所示
ps -fp PID
例如
ps -fp 1294
在树形图中显示进程层次结构
通常,大多数进程是从父进程派生的。
了解这种亲子关系可以派上用场。
下面的命令搜索名称为apache2的进程
ps -f --forest -C bash
显示父进程的子进程
例如,如果您希望显示属于apache的所有分叉进程,请执行
ps -o pid,uname,comm -C bash
第一个进程由root拥有,是主要的apache2进程,其余进程已从该主要进程派生
要使用主apache2进程的pid显示所有子apache2进程,请执行
ps --ppid PID no.
例如
ps --ppid 1294
显示进程线程
ps命令可用于查看线程以及进程。
下面的命令使用PID pid_no显示该进程拥有的所有线程
ps -p pid_no -L
例如
ps -p 1294 -L
显示选定的列列表
您可以使用ps命令仅显示所需的列。
例如 ,
ps -e -o pid,uname,pcpu,pmem,comm
上面的命令将仅显示PID,用户名,CPU,内存和命令列
重命名列标签
要重命名列标签,请执行以下命令
ps -e -o pid=PID,uname=USERNAME,pcpu=CPU_USAGE,pmem=%MEM,comm=COMMAND
显示进程的运行时间
经过的时间是指进程已运行多长时间
ps -e -o pid,comm,etime
-o选项启用该列的经过时间
在grep中使用ps命令
ps命令可与grep命令一起使用以搜索特定进程
例如
ps -ef | grep systemd