Linux基础命令ps的用法

2023-10-18 1274阅读

温馨提示:这篇文章已超过529天没有更新,请注意相关的内容是否还可用!

ps ps指令可以显示系统中当前进程的信息,它的输出结果是高度可定制的。请注意,“ps-aux”与“ps aux”不同。如果名为“x”的用户不存在,此ps可以将命令解释为“ps aux”,并打印警告。此命令的适用范围:RedHat、RHEL、Ubuntu、CentOS、SUSE、openSUSE、Fedora。x 此选项导致ps列出您拥有的所有进程,或者在与a选项一起使用时列出所有进程。这将选择在cmdlist中给出可执行名称的进程。与-t和–tty几乎相同,但也可以与空ttylist一起使用,以指示与ps关联的终端。

这篇文章主要讲解了“Linux基础命令ps的用法”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“Linux基础命令ps的用法”吧!

ps

ps指令可以显示系统中当前进程的信息,它的输出结果是高度可定制的。如果您希望重复更新所选内容和显示的信息,请使用top(1)代替。请注意,“ps-aux”与“ps aux”不同。POSIX和UNIX标准要求“ps-aux”打印名为“x”的用户拥有的所有进程,以及打印由-a选项选择的所有进程。如果名为“x”的用户不存在,此ps可以将命令解释为“ps aux”,并打印警告。此行为旨在帮助转换旧脚本和习惯。它是脆弱的,随时可能发生变化,因此不应依赖它。默认情况下,ps选择所有具有相同有效用户ID(EUID=EUID)的进程作为当前用户,并与调用方相关联的终端。它显示进程ID(PID=PID)、与进程关联的终端(tname=TTY)、[dd-]hh:mm:SS格式的累计CPU时间(time=TIME)和可执行名称(ucmd=CMD)。默认情况下输出未排序。使用BSD样式的选项将向默认显示中添加进程状态(stat=STAT),并显示命令args(args=命令)而不是可执行名称。您可以使用PS_FORMAT环境变量重写此操作。使用BSD样式的选项还将更改流程选择,以包括您拥有的其他终端(TTY)上的进程;或者,这可以描述为将选择设置为筛选的所有进程的集合,以排除其他用户拥有的进程或终端上的进程。当选项被描述为“相同”时,不考虑这些影响,所以-M将被认为与Z相同等等。此命令的适用范围:RedHat、RHEL、Ubuntu、CentOS、SUSE、openSUSE、Fedora。



1


、语法


ps[


选项]




2


、选项列表

选项说明

–help

显示帮助文档

-V | V | –version

显示命令版本

–info

显示调试信息

L

列出所有的格式简单选项

-A | -e

选择所有进程

-N | –deselect

反向选择不符合条件的

T

选择符合的终端

-a

选择除会话进程和与终端无关的进程以外的所有进程。

a

此选项导致ps列出带有终端(TTY)的所有进程,或在与x选项一起使用时列出所有进程。

-d

选择所有进程,忽略进程所有者

g

全部的进程,包含会话领导

r

将选择限制为仅运行进程。

x

此选项导致ps列出您拥有的所有进程(与ps相同的EUID),或者在与a选项一起使用时列出所有进程。多个选项这些选项以空白分隔或逗号分隔列表的形式接受单个参数。它们可以多次使用。

-C

cmdlist按命令名选择。这将选择在cmdlist中给出可执行名称的进程。

-G

grplist选择进程所属的组id与给定list匹配的进程

U

userlist按有效用户ID(EUID)或名称选择。有效用户ID描述进程使用其文件访问权限的用户

-U

userlist按实际用户ID(RUID)或名称进行选择。真正的用户ID标识创建进程的用户,

-g

grplist按会话或有效组名选择。

p

pidlist按进程ID选开发云主机域名择。

-p

pidlist按进程ID选择。

-s

sesslist按照会话ID选择

t

ttylist通过tty选择。与-t和–tty几乎相同,但也可以与空ttylist一起使用,以指示与ps关联的终端。

-t

ttylist选择指定的tty

-u

userlist按有效用户ID(EUID)或名称选择,等价于“U和“–user”

–Group

grplist等价于“-G”

–User

userlist等价于“-U”

–group

grplist按有效组ID(EGID)或名称选择。有效组ID描述进程使用其文件访问权限的组。

–pid

pidlist等价于“-p”和“p”

-ppid

ppidlist选择父进程id匹配的进程

–sid

sesslist等价于“-s”

–tty

ttylist等价于“-t”和“t”

–user

userlist等价于“-u”和“U”-123等价于“–sid 123”123等价于“—pid 123”



3


、输出格式控制

格式说明

-f | -F

输出完整的格式。它还会导致输出命令参数。当与-L一起使用时,将添加NLWP(线程数)和LWP(线程ID)列。

-O

format类似-o,但预加载了一些默认列。等价于“

-o pid,

format

,state,tname,time,command

”或者“

-o pid,

format

,tname,time,cmd



O

format预加载的o。当用作格式设置选项时,它与-O完全相同,具有BSD个性。

-M

添加一列安全数据。

X

寄存器格式

Z

等价于“-M”

-c

显示-l选项的不同调度程序信息。

j

BSD作业控制格式

-j

作业格式

l

BSD长格式

-l

长格式,经常和“-y”一起使用

o

format等价于“-o”和“–format”

-o

format用户定义格式。format是以空格分隔或逗号分隔的列表形式的单个参数,它提供了一种指定单个输出列的方法。标头可以按需要重命名(

ps -o pid,ruser=RealUser -o comm=Command

)。如果所有列标题都是空的(

ps -o pid= -o comm=

),那么标题行将不会被输出。宽标头所需的列宽度将增加;这可用于扩展诸如WCHAN之类的列(

ps -o pid,wchan=WIDE-WCHAN-COLUMN -o comm

)。显式宽度控制(

ps opid,wchan:42,cmd

)也被提供。

ps -o pid=X,comm=Y

的行为随个性而变化,输出可能是一个名为“X,comm=Y”的列,也可以是两个名为“X”和“Y”的列。使用

PS_FORMAT

环境变量按需要指定默认值;DefSysV和DefBSD是可用于选择默认UNIX或BSD列的宏。

s

显示信号格式

u

以用户为主的模式

v

以虚拟内存为主的模式

-y

不显示标志位

-Z

显示安全上下文格式

–format

format和“-o”一样

–context

显示安全上下文格式



4


、输出修饰符

修饰符说明

-H

显示进程层次结构

O

order排序,过时的操作

S

总结一些信息,如CPU使用情况,从死子进程到父进程。

c

显示真正的命令名。这是从可执行文件的名称派生出来的,而不是从argv值派生的。因此,没有显示命令参数和对它们的任何修改

e

在命令之后显示环境

f | –forest

ASCII格式的进程层次结构

h

没有头

k

spec指定排序顺序,等价于“–sort”

-n

namelist|

N

namelist正确的WCHAN显示需要名称列表文件,并且必须与当前Linux内核完全匹配才能得到正确的输出。如果没有此选项,则名称列表的默认搜索路径是:$PS_SYSMAP$PS_SYSTEM_MAP/proc/*/wchan/boot/System.map-`uname -r`/boot/System.map/lib/modules/`uname -r`/System.map/usr/src/linux/System.map/System.map

n

WCHAN和User的数字输出。(包括所有类型的UID和GID)

-w | w

宽输出,对无限宽度使用此选项两次

–cols

n|

–columns

n |

–width

n设置屏幕宽度

–cumulative

包括一些死子进程数据(作为父进程的和)

–headers

重复头行,每页输出一行

–no-headers

根本不打印标题行

–lines

n|

–rows

n设置屏幕高度

–sort

spec排序。语法是“[+|-]key[,[+|-]key[,…]]”,例如,

ps jax –sort=uid,-ppid,+pid




5


、线程模式

线程模式说明

H

把线程当做进程显示

-L

显示线程的LWP NLWP

-T

显示线程的SPID

m | -m

在进程之后显示线程



6


、说明

这个ps通过读取“/proc”中的虚拟文件来工作。这个ps不需要是setuid kmem,也不需要有任何特权来运行。不要给这个ps任何特殊的权限。此ps需要访问名称列表数据以获得正确的WCHAN显示。对于2.6之前的内核,必须安装System.map文件。CPU使用率当前表示为进程在整个生命周期中运行的时间百分比。CPU使用率不太可能达到100%。SIZE开发云主机域名和RSS字段不计算进程的某些部分,包括页表、内核堆栈、结构体thread_info和task_struct。这通常是至少20kb的内存大小。SIZE是进程的虚拟大小(代码数据堆栈)。标记为“defunct”的进程是死进程(所谓的“僵尸”),因为它们的父进程没有正确地销毁它们。如果父进程退出,则init(8)将销毁这些进程。如果用户名的长度大于显示列的长度,则将显示数字用户ID。

7


、进程标志

这些值的和显示在“F”列中,该列由标志输出说明符提供。1,已经fork,但是没有执行。4,使用超级用户权限。

8


、进程状态码

下面是s、stat和state输出说明符(标头“stat”或“S”)将显示的用于描述进程状态的不同值:

D

,不间断睡眠(通常为IO)。

R

,正在运行或可运行(在运行队列上)。

S

,可中断睡眠(等待事件完成)。

T

,停止,要么是被作业控制信号阻止,要么是因为它正在被跟踪。

W

,分页(自2.6.xx内核以来无效)。

X

,死了(不应该被看见)。

Z

,已停止(“僵尸”)进程,终止但未由其父进程收获。对于bsd格式和当使用stat关键字时,可能会显示其他字符:

,高优先级(对其他用户不好)。


N

,低优先级(对其他用户很好)。

L

,将页面锁定在内存中(用于实时和自定义IO)。

s

,是会话。

l

,是多线程的。

+

,在前台进程组中。



9


、AIX格式描述符

这个ps支持AIX格式描述符,它们的工作方式有点像printf(1)和printf(3)的格式代码。例如,正常的默认输出可以这样产生:

ps -eo “%p %y %x %c


CODENORMALHEADER

%Cpcpu%CPU%GgroupGROUP%PppidPPID%UuserUSER%aargsCOMMAND%ccommCOMMAND%grgroupRGROUP%nniceNI%ppidPID%rpgidPGID%tetimeELAPSED%uruserRUSER%xtimeTIME%yttyTTY%zvszVSZ

10


、标准格式说明符

以下是用于控制输出格式(例如,使用选项-o)或使用GNU样式的“–sort”序选项对所选进程进行排序的不同关键字。例如,“

ps -eo pid,user,args –sort user

”。这个版本的ps试图识别大多数在ps的其他实现中使用的关键字。以下用户定义的格式说明符可能包含空格:

args, cmd, comm,command, fname, ucmd, ucomm, lstart, bsdstart, start

。某些关键字可能无法用于排序。CODEHEADER说明

%cpu

%CPU进程的CPU利用率为“#.#”格式。当前,它是CPU时间除以进程运行的时间(cputime/realtime比率),表示为百分比。除非你是幸运的,否则它不会达到100%。(别名

pcpu

)

%mem

%MEM进程的驻留集大小与机器上物理内存的比率,以百分比表示。(别名

PMEM

)

args

COMMAND命令,它的所有参数都是字符串。可以显示对参数的修改。该列中的输出可能包含空格。标记为“已失效”的进程部分死亡,等待其父进程完全销毁。有时进程args将不可用;当发生这种情况时,ps将可执行文件的名称打印在括号中。(别名cmd,命令)。当最后指定该列时,该列将扩展到显示的边缘。如果ps不能确定显示宽度,例如当输出被重定向(管道)到一个文件或另一个命令时,输出宽度开发云主机域名是未定义的。(它可以是80,无限,TERM等决定)环境变量COLUMNS或-cols选项可以用于精确地确定这种情况下的宽度。

w



-w

选项也可用于调整宽度。

blocked

BLOCKEDblocked信号掩码。根据字段的宽度,以十六进制格式显示32位或64位掩码。(别名sig_block, sigmask)。

bsdstart

START命令开始的时间。如果进程在24小时前启动,则输出格式为“hh:mm”,否则为“mmm dd”(其中mmm是月份的三个字母)。

bsdtime

TIME用户和系统的累积CPU时间,。显示格式通常为“mmm:ss”,但如果进程占用的cpu时间超过999分钟,则可以移到右边。

c

C处理器利用率当前,这是进程生存期内使用百分比的整数值。(见%cpu)。

caught

CAUGHT捕获信号的掩码,见信号(7)。根据字段的宽度,以十六进制格式显示32或64位掩码。(别名

sig_catch

,

sigcatch

)

cgroup

CGROUP显示进程所属的控制组。

class

CLS进程的调度类。(别名

policy

,

cls

)。字段的可能值是:-not reportedTSSCHED_OTHERFFSCHED_FIFORRSCHED_RRBSCHED_BATCHISO SCHED_ISOIDL SCHED_IDLE?unknown value

cls

CLS同

class


cmd

CMD同

args


comm

COMMAND命令名(只有可执行的名称)。将不会显示对命令名的修改。标记为“已失效”的进程部分死亡,等待其父进程完全销毁。该列中的输出可能包含空格。(别名

ucmd



ucomm

)。当最后指定该列时,该列将扩展到显示的边缘。如果ps不能确定显示宽度,例如当输出被重定向(管道)到一个文件或另一个命令时,输出宽度是未定义的(它可以是80,无限,TERM)。

COLUMNS

环境变量或

–cols

选项可以用于精确地确定这种情况下的宽度。

w



-w

选项也可用于调整宽度。

command

COMMAND同args

cp

CPCPU使用率/ms

cputime

TIME累计CPU时间,”[DD-]HH:MM:SS”格式。(别名

time

)。

egid

EGID进程的有效组ID数为十进制整数。(别名

gid

)。

egroup

EFROUP进程的有效组ID。如果可以获得并且字段宽度允许,这将是文本组ID,否则将是十进制表示。(别名

group

)。

eip

EIP指令指针

esp

ESP栈指针

etime

ELAPSED自进程启动以来,以[dd-]hh:]mm:SS形式运行的时间。

euid

EUID有效用户ID,别名

uid


euser

EUSER有效用户名。如果可以获得并且字段宽度允许,这将是文本用户ID,否则将是十进制表示。

n

选项可用于强制十进制表示。(别名

uname



user

)。

f

F与进程关联的标志,请参阅流程标志部分。(别名

flag

,

flags

)。

fgid

FGID文件系统访问组ID。(别名

fsgid

)。

Linux基础命令ps的用法
(图片来源网络,侵删)

本文从转载,原作者保留一切权利,若侵权请联系删除。

《Linux基础命令ps的用法》来自互联网同行内容,若有侵权,请联系我们删除!

VPS购买请点击我

免责声明:我们致力于保护作者版权,注重分享,被刊用文章因无法核实真实出处,未能及时与作者取得联系,或有版权异议的,请联系管理员,我们会立即处理! 部分文章是来自自研大数据AI进行生成,内容摘自(百度百科,百度知道,头条百科,中国民法典,刑法,牛津词典,新华词典,汉语词典,国家院校,科普平台)等数据,内容仅供学习参考,不准确地方联系删除处理! 图片声明:本站部分配图来自人工智能系统AI生成,觅知网授权图片,PxHere摄影无版权图库和百度,360,搜狗等多加搜索引擎自动关键词搜索配图,如有侵权的图片,请第一时间联系我们,邮箱:ciyunidc@ciyunshuju.com。本站只作为美观性配图使用,无任何非法侵犯第三方意图,一切解释权归图片著作权方,本站不承担任何责任。如有恶意碰瓷者,必当奉陪到底严惩不贷!

目录[+]