linux 命令:ps 详解

Linux常用命令之ps命令详解 ps 是一个极其灵活且强大的命令,对于系统管理员和开发者来说不可或缺。了解如何有效地利用 ps 命令可以更好地管理和优化系统性能。 阅读详情

 

名称

        ps - 展示当前进程的信息,以列表呈现

用法

        ps [选项]

描述

ps 展示关于运行的进程的信息。如果你想要让这个信息实时更新,请用top。

这个版本的ps接收几种选项:

        1        UNIX选项,必须使用'-'

        2        BSD选项,必须不能使用'-'

        3        GNU长选项,使用'--'

注意,ps -aux 和 ps aux 不同。 POSIX 和 UNIX 标准需要 ps -aux 打印所有属于用户x的进程,也打印所有 -a 选项选择的进程。如果用户x不存在,ps可能把这个命令看成ps aux,打印一个警告(warning)。

ps默认选择所有属于相同有效用户ID(euid=EUID)的进程作为当前用户并与调用者同一个终端关联。它展示进程ID(pid=PID)、进程所在的终端(tname=TTY)、[DD-]hh:mm:ss格式的cpu时间和可执行名称(ucmd=CMD)。输出默认不排序。

BSD风格的选项将默认加上进程状态(stat=STAT),展示命令的变量(args=COMMAND)而不是可执行名称。你可以使用PS_FORMAT环境变量覆盖这个。使用BSD风格的选项也会包括你拥有的其他终端(TTYs)的进程,这个也可以描述为:不展示其他用户和其他终端的进程。当选项在下面描述为“相同”时,不考虑这些影响,因此-M将被视为与Z相同,依此类推。

除下文所述外,进程选择选项是附加的。放弃默认选择,然后将所选进程添加到要显示的进程集。因此,如果进程符合任何给定的选择标准,则将显示该进程。

例子

用标准格式展示系统中的每个进程:

        ps -e

        ps -ef

        ps -eF

        ps -ely

用BSD格式展示系统中的每个进程:

        ps ax

        ps aux

展示进程树:

        ps -ejH

        ps axjf

得到线程信息:

        ps -eLf

        ps axms

得到安全信息:

        ps -eo euser,ruser,suser,fuser,f,comm,label

        ps axZ

        ps -eM

用用户格式展示root用户运行的进程:

        ps -U root -u root u

用用户定义格式展示每个进程:

        ps -eo pid,tid,class,rtprio,ni,pri,psr,pcpu,stat,wchan:14,comm

        ps -Ao pid,tt,user,fname,tmout,f,wchan

只打印rsyslogd的进程ID:

        ps -C rsyslogd -o pid=

只打印进程ID是21的进程名:

        ps -q 42 -o comm=

下边是各种参数的用法

简单进程选项

a解除 BSD 风格的“只有你自己”限制,当使用某些 BSD 风格(没有“-”)选项或 ps 个性设置类似于 BSD 时,该限制强加于所有进程的集合。 以这种方式选择的进程集是通过其他方式选择的进程集的补充。 另一种描述是这个选项会导致 ps 列出所有带有终端 (tty) 的进程,或者与 x 选项一起使用时列出所有进程。
-A选择所有进程,等于 -e。
-a选择除了会话领导和与终端无关的进程以外的所有进程。
-d选择除了会话领导以外的所有进程。
--deselect

选择除了满足特定条件(否定选择)的所有进程。等于 -N。

-e选择所有进程。等于 -A。
g所有,包括会话领导。这个选项时过时的,以后的版本可能会取消。
-N

选择除了满足特定条件(否定选择)的所有进程。等于 --deselect。

T选择所有跟当前终端有关的进程。等于没有任何参数的 t 。
r只选择正在运行的进程。
x解除 BSD 风格的“必须有一个 tty”限制,当使用某些 BSD 风格(不带“-”)选项或 ps 个性设置类似于 BSD 时,该限制强加于所有进程的集合。 以这种方式选择的进程集是通过其他方式选择的进程集的补充。 另一种描述是该选项使 ps 列出您拥有的所有进程(与 ps 相同的 EUID),或者在与 a 选项一起使用时列出所有进程。

用列表选择进程

        这些选项接收一个空格分隔的列表或逗号分割的列表为参数。列表可以多次使用。

        例如:ps -p "1 2" -p 3,4

        -123        等于        --pid 123

        123         等于        --pid 123

-C cmdlist(命令列表)

        选择cmdlist中的命令。注意:命令名不等于命令行。以前的procps版本和内核把命令名          的长度限制在15字符之内。现在这个限制解除了。

-G grplist(组列表)

        根据真实组ID(RGID)或组名称选择。真实组ID确定了创建进程的用户所属的组。

-g grplist

        根据会话或有效组名来选择。根据会话选择有多重标准,但根据有有效组名是使用一些          其他操作系统也在用的逻辑方法。当列表内容都是数字时,ps会根据会话选择。只有在          一些组名也被指定时,组ID数字才会起作用。参考 -s 和 --group。

--Group grplist

        等于 -G。

--group grplist

        根据有效组ID(EGID)或组名来选择。这个选项会选择那些有效组名或ID在grplist的进              程。有效组名描述了文件权限被进程使用的组。-g 经常等同于 --group。

p pidlist(进程ID列表)

        根据进程ID选择。等于 -p 和 --pid。

-p pidlist

        等于 p 和 --pid。

--pid pidlist

        等于 p 和 -p。

--ppid pidlist

        根据父进程的进程ID选择。

q pidlist

        根据进程ID选择(快速模式)。等于 -q 和 --quick-pid。

-q pidlist

        ps只读取pidlist中的pid的必要信息,而不会使用额外的筛选规则。pid是无序的。                    等于 q 和 --quick-pid。

--quick-pid pidlist

        等于q 和 -q。

-s sesslist(会话列表)

        根据会话ID选择。

--sid sesslist

        等于 -s。

t ttylist

        根据tty选择。几乎等于 -t 和 --tty,但是也能使用空的tty列表指定ps关联的终端。当tty            列表为空时,使用T选项是比t更简洁的。

-t ttylist

        根据tty选择。终端(tty或文本输出的屏幕)可以使用一下格式:/dev/ttyS1,ttyS1,              S1。'-'可以用于选择没有附属于任何终端的进程。

--tty ttylist

        根据终端选择。等于 -t 和 t。

U userlist

        根据有效用户ID(EUID)或用户名选择。有效用户ID描述了文件权限被进程使用的用户。

        等于 -u 和 --user。

-U userlist

        根据真实用户ID(RUID)或用户名选择。真实用户ID指的是创建进程的用户。

-u userlist

        等于 U 和 --user。

--User userlist

        根据真实用户ID(RUID)或用户名选择。等于 -U。

--user userlist

        等于 -u 和 U。

输出格式控制

这些选项是用来选择ps展示的信息。

-c        展示 -l 选项的不同调度器信息。

--context

          展示安全上下文格式(SELinux)

-f        以完整格式列出。这个选项可以和其他多种UNIX风格的选项加到一起,展示多个列。            也会打印出命令参数。使用 -L 时,NLWP(线程数)和LWP(线程ID)列也会展示出来。

-F       额外的完整格式。

--format format

          用户自定义格式。等于 -o 和 o。

j          BSD脚本控制格式

-j         脚本格式。

l          展示长BSD格式。

-l         长格式。-y 选项经常一起用。

-M       添加一列安全数据。等于Z(SELinux)

O format

           预装了o(超载)。BSD O 选项可以呈现 -O 的效果(使用一些普通字段预定义的用               户自定义输出格式)或者可以用来排序。试探法用于确定此选项的行为。 为确保获得             所需的行为(排序或格式化),请以其他方式指定选项(例如使用 -O 或 --sort)。               当用作格式化选项时,它与 -O 相同,具有 BSD 特性。

-O format

          类似 -o,但是使用一些默认列预装了。等于 -o pid,format,state,tname,time,command            或 -o pid,format,tname,time,cmd。

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”              的两列。不确定时使用多个 -o 选项。使用环境变量PS_FORMAT指定一个默认值,              DefSysV和DefBSD是可以用来选择默认UNIX和BSD列的宏。

s        展示信号格式。

u        展示面向用户的格式

v        展示虚拟内存格式

X        注册器格式

-y       不展示标志(flags),在addr(地址)栏展示rss。这个选项只能跟 -l 一起用。

Z        添加一个安全数据列。等于 -M(SELinux)

输出模式

c        展示真实命令名称。这个是源自执行文件的名称,而不是argv值。命令参数和任何对              它的修改不会被展示。这个选项有效地把args格式关键词改成comm格式关键词,这              对 -f format 选项和各种 BSD风格的格式选项有效,因为这些默认是展示命令参数                  的。参考 -f 选项,格式关键词args,格式关键词comm。

--cols n

          设置屏幕宽度。

--columns n

          设置屏幕宽度。

--cumulative

          包括一些被杀掉的子进程数据(作为与父进程的总和)

e        在命令后边展示环境。

f         ASCII格式的进程树

--forest

          等于 f

h        没有表头。(或者,在BSD风格中,每个屏幕有一个表头)。h 选项是有问题的。标              准BSD ps 使用这个选项在输出的每一页打印表头,但是老版本的Linux ps 使用这个              选项不显示表头。这个版本的 ps 跟Linux一致,不展示表头,除非选择了BSD风格。            不管当前的风格,你可以使用 --headers 和 --no-headers 来在每页打印表头或不打印            表头。

-H       每页展示表头。

k spec

           指定排序规则。排序格式是: [+|-]key[,[+|-]key[,...]]。从标准格式说明符选择一个多字               母关键词。“+”是可选的前缀,因为默认顺序是升序或字典顺序。等于 --sort。

           例子:ps jaxkuid,-ppid,+pid

                      ps axk comm o comm,args

                      ps kstart_time -ef

--lines n

            设置屏幕高度。

n           WCHAN和USER 用数字格式输出(包括所有类型的UID和GID)

--no-headers

              不打印表头。等于 --no-heading。

O order

              排序(过载)。BSD O 选项可以呈现 -O 的效果(加上预定义的普通字段的用户自                定义输出格式)或者用来指定排序规则。试探法用于确定此选项的行为。为确保获                得所需的行为(排序或格式化),请以其他方式指定选项(比如:-O 或 --sort)。

              对于排序,过时的 BSD O 选项语法是 O[+|-]k1[,[+|-]k2[,...]] 。它根据由单字母短关                键词 k1、k2、... 的序列指定的多级排序对进程列表进行排序,如下面过时排序关                  键词部分所述。“+”现在是可选的,仅仅在关键词上重新迭代默认排序方向,但可能                有助于区分 O 排序和 O 格式。 “-”只在它前面的关键词上反转方向。

--rows n

              设置屏幕高度。

S            总和几种信息,比如CPU使用,从被杀掉的子进程到它们的父进程。这个功能可以                 有效检查一个系统,在这个系统中父进程不断分支出短时间存在的子进程。

--sort spec

               指定排序规则。排序格式是[+|-]key[,[+|-]key[,...]] 。从标准格式说明符选择一个多                   字母关键词。“+”是可选的前缀,因为默认顺序是升序或字典顺序。等于 k。例如:                 ps jax --sort=uid,-ppid,+pid

w             宽输出。使用两次这个命令可以实现无限制宽度。

-w            宽输出。使用两次这个命令可以实现无限制宽度。

--width n

               设置屏幕宽度。

展示线程

H        像进程那样展示线程。

-L        展示线程,可能也会有LWP和NLWP列。

m        在进程后展示线程

-m       在进程后展示线程

-T        展示线程,可能也会有SPID列。

其他信息

--help section

          打印帮助信息。section的值可以是simple、list、output、threads、misc或all。也可                以用缩写:s|l|o|t|m|a。

--info

          打印调试信息。

L        列出所有格式说明符。

V        打印procps-ng的版本。

-V       打印procps-ng的版本。  

--version

          打印procps-ng的版本。     

进程状态标志

这些是s,stat,state的输出说明符(表头是“STAT”或“S”)。表示一个进程的状态信息。

D不可中断休眠(IO)
I(大写i)空闲内核线程
R正在运行或可运行(在运行队列)
S可中断休眠(等一个时间来完成)
T因作业控制信号而停止
t在跟踪期间被调试器停止
W分页(内核2.6.x版本后无效)
X已杀死(应该永远不会看到)
Z僵尸进程

在使用BSD格式时,stat可能会展示额外的标志:

<高优先级
N低优先级
L内存有被锁定的页(实时和自定义IO)
s是会话领导
l(小写L)是多线程的(使用CLONE_THREAD,类似NPTL pthreads)
+在前台进程组里

过时的排序关键词

这些键由 BSD O 选项使用(当它用于排序时)。 GNU --sort 选项不使用这些键,而是使用下面标准格式说明符部分中描述的说明符。 请注意,排序中使用的值是 ps 使用的内部值,而不是某些输出格式字段中使用的“cooked”值(例如,在 tty 上排序将排序为设备编号,而不是根据显示的终端名称)。 如果要对“cooked”值进行排序,请将 ps 输出通过管道传输到 sort 命令中。

键长版本功能
ccmd简单的可执行名称
Cpcpucpu使用
fflags长格式 F 字段中的标志
gpgrp进程组ID
Gtpgid控制tty进程组ID
jcutime累计用户时间
Jcstime累计系统时间
kutime用户时间
mmin_flt次要页面错误的数量
Mmaj_flt主要页面错误的数量
ncmin_flt累计次要页面错误
Ncmaj_flt累计主要页面错误
osession会话ID
ppid进程ID
Pppid父进程ID
rrss常驻集大小
Rresident常驻页面
ssize以kb为单位的内存大小
Sshare共享页面数量
ttty控制的tty的设备数量
Tstart_time进程启动的时间
Uuid用户ID
uuser用户名
vvsizeKiB为单位的虚拟内存总大小
ypriority内核调度优先级

AIX 格式描述符

ps支持AIX格式描述符。类似printf命令的格式。例如,ps -eo "%p %y %x %c"。

代码参数名表头
%Cpcpu%CPU
%GgroupGROUP
%PppidPPID
%UuserUSER
%aargsCOMMAND
%ccommCOMMAND
%grgroupRGROUP
%nniceNI
%ppidPID
%rpgidPGID
%tetimeELAPSED
%uruserRUSER
%xtimeTIME
%yttyTTY
%zvszVSZ

标准格式描述符

这里是用于控制输出格式(例如,使用 -o 选项)或者用GNU风格的 --sort 对选择的进程进行排序。例如:ps -eo pid,user,args --sort user

这些用户定义的格式描述符可能包括空格:args,cmd,comm,command,fname,ucmd,ucomm,lstart,bsdstart,start。

一些关键词可能不能用来排序。

代码表头功能
%cpu%CPU以“##.#”为格式的进程cpu使用情况。是一个百分数,但不显示%。
%mem%MEM当前使用的内存的百分比。
argsCOMMAND完整的命令。可能包括空格。一个标记为<defunct>的进程已经部分杀掉了,等待父进程将它完全杀掉。如果这个描述符出现在最后,这个列会延长到屏幕最右边。环境变量 COLUMNS 或 --cols 选项可以用来决定宽度。w 或 -w 选项也可以调整宽度。
blockedBLOCKED被屏蔽的信号。
bsdstartSTART命令被执行的时间。如果是24小时之内执行的,输出格式是“ HH:MM”,否则就是“ Mmm:SS”,Mmm是三位数的月份。
bsdtimeTIME累计的cpu时间,用户+系统。格式是“MMM:SS”。
cC处理器使用。百分数。
caughtCAUGHT捕捉的信号。
cgnameCGNAME进程属于的控制组的名称。
cgroupCGROUP进程属于的控制组。
classCLS

进程的调度级别。可能的值有:

-        没有上报

TS     SCHED_OTHER

FF     SCHED_FIFO

RR    SCHED_RR

B       SCHED_BATCH

ISO   SCHED_ISO

IDL    SCHED_IDLE

DLN  SCHED_DEADLINE

?       不能识别的值   

clsCLS等于class。
cmdCMD等于args。
commCOMMAND等于args。
commandCOMMAND等于args。
cpCP十分之一为单位的cpu使用率。
cputimeTIME累计cpu时间。“[DD-]hh:mm:ss”。
cputimesTIME秒为单位的累计cpu时间。
drsDRS数据驻留集大小,专用于可执行代码以外的物理内存量。
egidEGID进程的有效组ID数量。
egroupEGROUP进程的有效组ID。
eipEIP指令指针。
espESP栈指针。
etimeELAPSED进程持续时间,[[DD-]hh:]mm:ss。
etimesELAPSED以秒为单位的进程持续时间。
euidEUID有效用户ID。
euserEUSER有效用户名。应该是文字的,如果宽度允许可以是十进制数字。
fF进程的标志。参考上边的进程状态标志部分。
fgidFGID文件系统访问组ID。
fgroupFGROUP文件系统访问组ID。应该是文字的,如果宽度允许可以是十进制数字。
flagF等于f。
flagsF等于f。
fnameCOMMAND进程可执行文件名的前8个字节。
fuidFUID文件系统访问用户ID。别名是fsuid。
fuserFUSER文件系统访问用户ID。应该是文字的,如果宽度允许可以是十进制数字。
gidGID等于egid。
groupGROUP等于egroup。
ignoredIGNORED被忽略的信号。
ipcnsIPCNS描述进程属于的命名空间的唯一inode数。
labelLABEL安全标志,更普遍用于SELinux上下文数据。这是用于高安全性系统的强制访问控制。
lstartSTARTED等于bsdstart。
lsessionSESSION如果包括了systemd支持,展示进程的登录会话描述符。
luidLUID展示进程的登录ID。
lwpLWP可调度实体的轻量进程(线程)ID。
lxcLXC任务运行所在的lxc容器的名称。如果进程没有在容器内运行,显示‘-’。
machineMACHINE如果包含 systemd 支持,则显示分配给 VM 或容器的进程的机器名称。
maj_fltMAJFLT发生在这个进程的主要页面错误的数量。
min_fltMINFLT发生在这个进程的次要页面错误的数量。
mntnsMNTNS等于ipcns。
netnsNETNS等于ipcns。
niNI优先级值。范围从19(最高)到-20(最低)。
niceNI等于ni。
nlwpNLWP进程中 lwp(线程)的数量。
numaNUMA最近使用的处理器的节点。-1意味着NUMA信息获取不到。
nwchanWCHAN进程休眠的内核函数地址。如果想要内核函数名,使用wchan。运行的任务显示为‘-’。
ouidOWNER如果包括了systemd支持,展示进程的会话的所有者的Unix用户描述符。
pcpu%CPU等于%cpu。
pendingPENDING待办的信号。进程的待办信号不同于单个线程的待办信号。
pgidPGID进程组ID,或者进程组领导的进程ID。
pgrpPGRP等于pgid。
pidPID进程ID。
pidnsPIDNS等于ipcns。
pmem%MEM等于%mem。
policyPOL等于class。
ppidPPID父进程ID。
priPRI进程优先级。数字越大,优先级越低。
psrPSR进程被分配的处理器。
rgidRGID真实组ID。
rgroupRGROUP真实组名。应该是文字的,如果宽度允许可以是十进制数字。
rssRSS常驻集大小,任务已使用的非交换物理内存(以kb为单位)。
rssizeRSS等于rss。
rszRSZ等于rss。
rtprioRTPRIO真实时间优先级。
ruidRUID真实用户ID。
ruserRUSER真实用户ID。应该是文字的,如果宽度允许可以是十进制数字。
sS展示最小状态(一个字符)。参考进程状态标志。
schedSCH

进程的调度策略。

SCHED_OTHER (SCHED_NORMAL)、SCHED_FIFO、SCHED_RR、SCHED_BATCH、SCHED_ISO、SCHED_IDLE 和 SCHED_DEADLINE 分别对应 0、1、2、3、4、5和6。

seatSEAT如果包括了systemd支持,展示与分配给特定工作区的硬件设备有关的描述符。
sessSESS会话ID,或者会话领导的会话ID。别名session。
sgi_pP进程当前执行所在的处理器。如果进程没有运行或不可运行,展示“*”。
sgidSGID保存的组ID。
sgroupSGROUP保存的组ID。应该是文字的,如果宽度允许可以是十进制数字。
sidSID等于sess。
sigPENDING等于pending。
sigcatchCAUGHT等于caught。
sigignoreIGNORED等于ignored。
sigmaskBLOCKED等于blocked。
sizeSIZE如果进程要弄脏所有可写页面然后被换出,大约需要的交换空间量。 这个数字很粗糙!
sliceSLICE如果包括了systemd支持,展示进程属于的切片单元。
spidSPID等于lwp。
stackpSTACKP进程的栈的底(开始)的地址。
startSTARTED等于bsdstart。
start_timeSTART等于bsdstart。
statSTAT多字符的进程状态。参考进程状态标志。
stateS等于s。
suidSUID保存的用户ID。
supgidSUPGID补充组的组ID。
supgrpSUPGRP补充组的组名称。
suserSUSER保存的用户名。应该是文字的,如果宽度允许可以是十进制数字。
svgidSVGID等于sgid。
svuidSVUID等于suid。
szSZ进程核心映像的物理页大小。这包括文本、数据和堆栈空间。设备映射当前被排除。
tgidTGID用数字表示任务属于的线程组。是线程组领导的进程ID。
thcountTHCNT等于nlwp。
tidTID等于lwp。
timeTIME等于cputime。
timesTIME等于cputimes。
tnameTTY控制tty(终端)。
tpgidTPGID进程连接到的 tty(终端)上的前台进程组的 ID,如果进程未连接到 tty,则为 -1。
trsTRS专用于可执行代码的文本驻留集大小、物理内存数量。
ttTT等于tname。
ttyTT等于tname。
ucmdCMD等于comm。
ucommCOMMAND等于comm。
uidUID等于euid。
unameUSER等于euser。
unitUNIT如果包括了systemd支持,展示进程属于的单位。
userUSER等于euser。
usernsUSERNS等于ipcns。
utsnsUTSNS等于ipcns。
uunitUUNIT如果包括了systemd支持,展示进程属于的用户单位。
vsizeVSZ等于vsz。
vszVSZ已KiB为单位的进程的虚拟内存大小。设备映射当前被排除。
wchanWCHAN进程休眠的内核函数地址。运行的任务显示为‘-’。如果ps没有展示线程,多线程的进程显示为‘*’。

环境变量

这些环境变量可以影响ps:

COLUMNS

                覆盖默认展示宽度。

LINES

                覆盖默认展示高度。

PS_PERSONALITY

                设置为posix、old、linux、bsd、sun、digital等,参考下边的特性。

CMD_ENV

                设置为posix、old、linux、bsd、sun、digital等,参考下边的特性。

I_WANT_A_BROKEN_PS

                强制过时的命令行解释。

LC_TIME

                日期格式。

PS_COLORS

                当前不支持。

PS_FORMAT

                覆盖默认输出格式。可以使用 -o 选项设置。DefSysV 和 DefBSD 是有用的。

POSIXLY_CORRECT

                不要找借口忽略不好的特性。

POSIX2

                设置为开启时,和POSIXLY_CORRECT一样效果。

UNIX95

                不要找借口忽略不好的特性。

_XPG

                取消CMD_ENV=irix 不标准的行为。

一般来说,设置这些环境变量不是好主意。唯一的例外是 CMD_ENV 或 PS_PERSONALITY,可以设置为 Linux 作为普通系统。如果不这么做,ps 会使用不好的、没用的 Unix98 标准。

特性(简单看看)

390                类似OS/390 开放版本 ps

aix                 类似AIX ps

bsd                类似FreeBSD ps (完全非标准)

compaq         类似 Digital Unix ps

debian           类似旧的 Debian ps

digital             类似 Tru64 (以前是 Digital Unix, OSF/1) ps

gnu                类似旧的 Debian ps

hp                  类似 HP-UX ps

hpux              类似 HP-UX ps

irix                 类似 Irix ps

linux               推荐

old                  类似原始 Linux ps(完全非标准)

os390             类似 OS/390 开放版本 ps

posix               标准

s390                类似 OS/390 开放版本 ps

sco                  类似 SCO ps

sgi                   类似Irix ps

solaris2           类似 Solaris 2+ (SunOS 5) ps

sunos4            类似 SunOS 4 (Solaris 1)ps

svr4                 标准

sysv                 标准

tru64                类似 Tru64(以前是 Digital Unix, OSF/1) ps

unix                  标准

unix95              标准

unix98              标准

linux 下 ps、sort、top 命令详解 1)查看进程的时候,让进程按照CPU使用率排序,然后展示前10行,就能清晰地看到哪些进程占用的资源比较多。S:进程状态(D=不可中断的睡眠状态,R=运行中或可运行s=睡眠中,T表示已跟踪以及已停止,z=僵停。作用:查看系统进程,比如正在运行的进程有哪些,什么时候开始运行的,哪个用户运行的,占用了多少资源。2)同理,把 -pcpu 换成 -pmem,就能查看内存使用最多的10个进程。PS2:+、-号可以调整排序,-pcpu 表示降序,+pcpu 表示升序。%CPU:上次更新到现在的cpu时间占用百分比。 阅读详情

相关推荐

Linux(Centos 7.6)命令详解:ps

报告当前进程的概览情况(report a snapshot of the current processes);不同类型的选项可以自由组合,但可能会出现冲突;注意ps -aux与ps aux是不同的;

Querycache的博客 1753

linux系统下的ps指令详解

在实际应用中,ps指令非常有用。它可以帮助我们监控系统的负载、定位问题进程、查看资源使用情况等。例如,我们可以使用ps指令找出占用CPU较高的进程,并采取相应措施进行优化。另外,结合其他命令如kill,ps还可以用于终止指定的进程。通过本文的介绍,我们深入了解了Linux系统中ps指令的功能和用法。它不仅仅是一个简单的进程查看工具,更是我们了解和管理系统的重要工具之一。在今后的学习和实践中,相信ps指令会给我们带来更多的惊喜和帮助。总结:在本篇博客中,我们一起探索了Linux系统下的ps指令。

AnChenliang_1002的博客 9047

带隙基准源要点

要点: 负反馈>正反馈;电流镜匹配;双极型晶体管匹配;电阻匹配; 经过R0的电流????????????=????????????????−????????????????????????=∆????????????????????i_R0=(〖VBE〗_1-〖VBE〗_2)/R_0 =∆VBE/R_0 经过R1的电流????????????=i_R1= ????????????????????VBE/R_1 零温电流I = ∆????????????????????∆VBE/R_0 +

HI_WALLE的博客 2256

Linux命令(30)之ps

Linux命令之ps介绍

z19861216的博客 7054

MounRiver Studio实战:像管理个人项目一样整理沁恒MCU的EVT例程(附文件结构图)

本文详细介绍了如何使用MounRiver Studio重构沁恒MCU的EVT例程,实现工程化管理。通过分析官方EVT设计的局限性,提出标准化的目录结构和迁移步骤,帮助开发者提升代码可维护性和团队协作效率。文章还提供了MounRiver Studio的关键配置参数和常见问题排查指南,适用于沁恒MCU开发者。

weixin_33940469的博客 352

Windows下CMake编译VTK

选择项目INSTALL,生成该项目,得到vtk在Debug模式下的lib和dll文件,在文件夹中可看见,已得到debug模式下lib库与dll库。,把Value值设置为最后在vtk_sln中生成include、dll、lib的位置。在上面点击Configure后,红色区域没有了。选择自己vs编译平台的版本信息,我这边已经设置好了没有这个设置了,借用参考博客的图片。设置完后,点击左下角"Configure",然后等待Configure。,把搜索结果的Value勾选上。在search中搜索。

weixin_74239923的博客 837

Linux系统中ps命令的详细介绍:概念、原理、参数介绍、使用方法、显示信息字段含义

Linux系统中ps命令的详细介绍:概念、原理、参数介绍、使用方法、显示信息字段含义

深耕嵌入式领用多年, 致力于分享嵌入式领域技术! 7533

3GPP协议解读_物理层系列(一)_物理层协议怎么看?

5G NR相关协议一般都在38系列,点进去以后可以看到,38.2xx系列为物理层相关协议,为了掌握物理层相关知识,应该怎么看协议呢?我建议从38.201读起,对38.2xx系列协议有一个整体的把握。

JCMLSY的博客 1322

Linux运维03:ps命令详解

Linux系统中会运行各种各样的进程,如果要对进程进行监控,首先必须了解当前进程的情况,也就是需要查看当前进程。

渡江客涂鸦板 4576

AI在智能制造中的落地:从预测维护到自适应生产调度

从最新的研究与实践来看,“预测维护”和“自适应生产调度”正在成为智能制造中最先跑通闭环的两个核心场景:前者通过对设备健康的前瞻性预测,帮助企业减少非计划停机、优化备件与维护资源;后者通过对复杂生产系统的实时决策优化,使工厂能够更好地应对订单波动、设备故障和多目标约束。更重要的是,越来越多的研究与项目不再将二者视为孤立模块,而是尝试构建“设备健康—生产调度—供应链”三者联动的一体化架构。Nature在技术层面,深度学习、强化学习、多智能体系统、图神经网络和注意力机制等方法,为建模复杂工业系统提供了强大工具;

nmdbbzcl的博客 1282

智慧社区:安防系统解决方案

智慧社区:安防系统解决方案

s13166803785的博客 427

linux ps lp,Linux:PS命令详解与使用

Linux PS 命令详解Linux操作系统PS命令详细解析 要对系统中进程进行监测控制,用 ps 命令满足你. /bin/ps ps 是显示瞬间行程的状态,并不动态连续:如果想对进程运行时间监控,应该用 top 工具. ki ...Linux ps命令详解与示例说明ps:要对进程进行监测和控制,首先必须要了解当前进程的情况,也就是需要查看当前进程,而ps命令就是最基本同时也是非常强大的进程查看命...

weixin_33026067的博客 369

PyRoki 入门教程(二)安装与使用

PyRoki是一个用于机器人运动学优化的Python库,具有模块化设计、可扩展性和跨平台支持等特点。它支持逆运动学、轨迹优化和动作重定位等任务,采用Levenberg-Marquardt优化器提高效率。主要功能包括:基于URDF的可微分正向运动学模型、自动生成碰撞基元、通用成本因子和自定义成本函数等。PyRoki支持CPU、GPU和TPU运行,适用于从单机器人到大规模并行处理场景。目前存在一些限制,如仅支持软约束、静态形状和特定关节类型等。官方提供了多个应用示例,包括基础逆运动学、碰撞检测、轨迹优化和手部/

机器人控制与仿真应用 1250

Linux小白必学:ps -ef命令详解

这个命令特别实用,但对新手来说参数和输出结果可能有些难懂。今天我就分享一下自己整理的笔记,希望能帮助到同样刚入门的小伙伴们。掌握它不仅能帮助排查问题,还能分析系统资源占用情况。不需要配置环境就能体验命令效果,对新手特别友好,推荐大家试试看。在Linux系统中,了解当前运行的进程状态是日常运维的基础。尝试创建了一个交互式学习工具,可以直接在网页上模拟。能以全格式列表显示所有进程信息,比简单的。最近在学习Linux系统管理时,发现。

GoldEagle19的博客 957

Jetson AGX Orin平台Jetpack5升级Jetpack6,自研载板USB不工作问题调试

1. 问题描述将AGX Orin工业的新板放到定制的载板上当在ubuntu 22和Jetpack 6.1上使用SDKManager刷机时,lsusb为空,并且在引导时没有发现/注册xusb设备。USB C端口正常打开并供电,但似乎没有数据传输。在Ubuntu 18 Jetpack 5.1.4 SDKManager上同样刷机之后,usb C集线器在引导时被正确地发现,显示在lsusb中,并识别/挂载外部驱动器。

jzwjzw19900922的博客 1504

STM32F407中文手册

STM32f407中文手册 本参考手册面向应用开发人员,提供有关使用 STM32F405xx/07xx、STM32F415xx/17xx、 STM32F42xxx 和 STM32F43xxx 微控制器存储器与外设的完整信息。STM32F405xx/07xx、STM32F415xx/17xx、STM32F42xxx 和 STM32F43xxx 构成一个微 控制器系列,各产品具有不同的存储器大小、封装和外设。有关订购信息以及器件的机械与电气特性,请参见数据手册。有关 ARM Cortex™-M4F 内核的信息,请参见《Cortex™-M4F 技术参考手册》。

linux ps sleep进程,Linux:ps命令以及进程状态详解

Linux查看进程PS命令详细介绍1.ps简介ps命令就是最根本相应情况下也是相当强大地进程查看命令.运用该命令可以确定有哪些进程正在运行和运行地状态、进程是否结束、进程有没有僵死、哪些进程占用了过多地资源等等.总之大部分信息均为可以通过执行该命令得到地.2. ps命令及其参数Linux查看进程ps命令最经常使用地还是用于监控后台进程地工作情况,因为后台进程是不和屏幕键盘这些标准输入/输出设备进行...

weixin_27960253的博客 1180

IEM模型,地表粗糙度模拟

利用微波反演土壤水分时候,利用IEM模型可以实现对随机地表的模拟

Linux : ps命令详解与使用

Linux下的ps命令比较常用,用来显示当前环境中正在运行的进程信息,从而对进程进行监测和控制。使用该命令可以确定进程的状态,是否结束,有没有僵尸进程和进程占用的资源信息等。但是ps是显示进程的瞬间信息,并不动态连续,如果想实时进行检测应该使用top命令。            在Linux中,进程有4中状态 R :该程序目前正在运作,或者是可被运作; S :该程序目前正在睡眠当中,但可被...

Yonas刘 2949

深度学习工具包 DeepLearningToolbox

深度学习工具包Deprecation notice.-----This toolbox is outdated and no longer maintained.There are much better tools available for deep learning than this toolbox, e.g. [Theano](http://deeplearning.net/software/theano/), [torch](http://torch.ch/) or [tensorflow](http://www.tensorflow.org/)I would suggest you use one of the tools mentioned above rather than use this toolbox.Best, Rasmus.DeepLearnToolbox================A Matlab toolbox for Deep Learning.Deep Learning is a new subfield of machine learning that focuses on learning deep hierarchical models of data.It is inspired by the human brain's apparent deep (layered, hierarchical) architecture.A good overview of the theory of Deep Learning theory is[Learning Deep Architectures for AI](http://www.iro.umontreal.ca/~bengioy/papers/ftml_book.pdf)For a more informal introduction, see the following videos by Geoffrey Hinton and Andrew Ng.* [The Next Generation of Neural Networks](http://www.youtube.com/watch?v=AyzOUbkUf3M) (Hinton, 2007)* [Recent Developments in Deep Learning](http://www.youtube.com/watch?v=VdIURAu1-aU) (Hinton, 2010)* [Unsupervised Feature Learning and Deep Learning](http://www.youtube.com/watch?v=ZmNOAtZIgIk) (Ng, 2011)If you use this toolbox in your research please cite [Prediction as a candidate for learning deep hierarchical models of data](http://www2.imm.dtu.dk/pubdb/views/publication_details.php?id=6284)```@MASTERSTHESIS\{IMM2012-06284, author = "R. B. Palm", title = "Prediction as a candidate for learning deep hierarchical models of data", year = "2012",}```Contact: rasmusbergpalm at gmail dot comDirectories included in the toolbox-----------------------------------`NN/` - A library for Feedforward Backpropagation Neural Networks`CNN/` - A library for Convolutional Neural Networks`DBN/` - A library for Deep Belief Networks`SAE/` - A library for Stacked Auto-Encoders`CAE/` - A library for Convolutional Auto-Encoders`util/` - Utility functions used by the libraries`data/` - Data used by the examples`tests/` - unit tests to verify toolbox is workingFor references on each library check REFS.mdSetup-----1. Download.2. addpath(genpath('DeepLearnToolbox'));Example: Deep Belief Network---------------------```matlabfunction test_example_DBNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit RBM and visualize its weightsrand('state',0)dbn.sizes = [100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);figure; visualize(dbn.rbm{1}.W'); % Visualize the RBM weights%% ex2 train a 100-100 hidden unit DBN and use its weights to initialize a NNrand('state',0)%train dbndbn.sizes = [100 100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);%unfold dbn to nnnn = dbnunfoldtonn(dbn, 10);nn.activation_function = 'sigm';%train nnopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.10, 'Too big error');```Example: Stacked Auto-Encoders---------------------```matlabfunction test_example_SAEload mnist_uint8;train_x = double(train_x)/255;test_x = double(test_x)/255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit SDAE and use it to initialize a FFNN% Setup and train a stacked denoising autoencoder (SDAE)rand('state',0)sae = saesetup([784 100]);sae.ae{1}.activation_function = 'sigm';sae.ae{1}.learningRate = 1;sae.ae{1}.inputZeroMaskedFraction = 0.5;opts.numepochs = 1;opts.batchsize = 100;sae = saetrain(sae, train_x, opts);visualize(sae.ae{1}.W{1}(:,2:end)')% Use the SDAE to initialize a FFNNnn = nnsetup([784 100 10]);nn.activation_function = 'sigm';nn.learningRate = 1;nn.W{1} = sae.ae{1}.W{1};% Train the FFNNopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.16, 'Too big error');```Example: Convolutional Neural Nets---------------------```matlabfunction test_example_CNNload mnist_uint8;train_x = double(reshape(train_x',28,28,60000))/255;test_x = double(reshape(test_x',28,28,10000))/255;train_y = double(train_y');test_y = double(test_y');%% ex1 Train a 6c-2s-12c-2s Convolutional neural network %will run 1 epoch in about 200 second and get around 11% error. %With 100 epochs you'll get around 1.2% errorrand('state',0)cnn.layers = { struct('type', 'i') %input layer struct('type', 'c', 'outputmaps', 6, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %sub sampling layer struct('type', 'c', 'outputmaps', 12, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %subsampling layer};cnn = cnnsetup(cnn, train_x, train_y);opts.alpha = 1;opts.batchsize = 50;opts.numepochs = 1;cnn = cnntrain(cnn, train_x, train_y, opts);[er, bad] = cnntest(cnn, test_x, test_y);%plot mean squared errorfigure; plot(cnn.rL);assert(er<0.12, 'Too big error');```Example: Neural Networks---------------------```matlabfunction test_example_NNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);% normalize[train_x, mu, sigma] = zscore(train_x);test_x = normalize(test_x, mu, sigma);%% ex1 vanilla neural netrand('state',0)nn = nnsetup([784 100 10]);opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samples[nn, L] = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.08, 'Too big error');%% ex2 neural net with L2 weight decayrand('state',0)nn = nnsetup([784 100 10]);nn.weightPenaltyL2 = 1e-4; % L2 weight decayopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex3 neural net with dropoutrand('state',0)nn = nnsetup([784 100 10]);nn.dropoutFraction = 0.5; % Dropout fraction opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex4 neural net with sigmoid activation functionrand('state',0)nn = nnsetup([784 100 10]);nn.activation_function = 'sigm'; % Sigmoid activation functionnn.learningRate = 1; % Sigm require a lower learning rateopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex5 plotting functionalityrand('state',0)nn = nnsetup([784 20 10]);opts.numepochs = 5; % Number of full sweeps through datann.output = 'softmax'; % use softmax outputopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex6 neural net with sigmoid activation and plotting of validation and training error% split training data into training and validation datavx = train_x(1:10000,:);tx = train_x(10001:end,:);vy = train_y(1:10000,:);ty = train_y(10001:end,:);rand('state',0)nn = nnsetup([784 20 10]); nn.output = 'softmax'; % use softmax outputopts.numepochs = 5; % Number of full sweeps through dataopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, tx, ty, opts, vx, vy); % nntrain takes validation set as last two arguments (optionally)[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');```[![Bitdeli Badge](https://d2weczhvl823v0.cloudfront.net/rasmusbergpalm/deeplearntoolbox/trend.png)](https://bitdeli.com/free "Bitdeli Badge")

Linux:PS命令详解与使用

要对进程进行监测和控制,首先必须要了解当前进程的情况,也就是需要查看当前进程,ps命令就是最基本进程查看命令。使用该命令可以确定有哪些进程正在运行和运行的状态、进程是否结束、进程有没有僵尸、哪些进程占用了过多的资源等等。总之大部分信息都是可以通过执行该命令得到。ps是显示瞬间进程的状态,并不动态连续;如果想对进程进行实时监控应该用top命令。 参数: -A :所有的进程均显示出来,与 -e...

weixin_41380972的博客 481

【Linux】Linux:PS命令详解与使用

要对进程进行监测和控制,首先必须要了解当前进程的情况,也就是需要查看当前进程,ps命令就是最基本进程查看命令。使用该命令可以确定有哪些进程正在运行和运行的状态、进程是否结束、进程有没有僵尸、哪些进程占用了过多的资源等等.总之大部分信息都是可以通过执行该命令得到。ps是显示瞬间进程的状态,并不动态连续;如果想对进程进行实时监控应该用top命令。参数: -A :所有的进程均显示出来,与 -...

qwertyuiopasdfghjklzxcvbnm 1189

linux环境下ps命令行,Linux系统ps命令详解:查看正在运行的进程

ps命令是最常用的监控进程的命令,通过此命令可以查看系统中所有运行进程的详细信息。ps命令有多种不同的使用方法,这常常给初学者带来困惑。在各种Linux论坛上,询问ps命令语法的帖子屡见不鲜,而出现这样的情况,还要归咎于UNIX悠久的历史和庞大的派系。在不同的Linux发行版上,ps命令的语法各不相同,为此,Linux采取了一个折中的方法,即融合各种不同的风格,兼顾那些已经习惯了其它系统上使用ps...

weixin_34110970的博客 1070

Linux ps命令详解:查看正在运行的进程

1、常用的三个固定格式的ps命令 “ps aux” 可以查看系统中所有的进程; “ps -le” 可以查看系统中所有的进程,而且还能看到进程的父进程的 PID 和进程优先级; “ps -l” 只能看到当前 Shell 产生的进程; 2、例1 :ps aux [root@localhost ~]# ps aux #查看系统中所有的进程 USER PID %CPU %MEM VSZ RSS ...

lzy820260594的博客 1595

广成子:值得收藏-史上最全Linux ps命令详解

From闻茂泉(广成)AliDataOps一、程序员的疑惑  大概在十多年前,我当时还是一个产品经理。由于一些工作的原因,需要向运维工程师学习一些linux常用命令。当...

Linux阅码场 8724

Linux:ps命令以及进程状态详解

Linux 查看进程PS命令详细介绍 1.ps简介 ps命令就是最根本相应情况下也是相当强大地进程查看命令.运用该命令可以确定有哪些进程正在运行和运行地状态、进程是否结束、进程有没有僵死、哪些进程占用了过多地资源等等.总之大部分信息均为可以通过执行该命令得到地. 2. ps命令及其参数 Linux 查看进程ps命令最经常使用地还是用于监控后台进程地...

weixin_33842304的博客 240
上一篇: linux 命令:top 详解
下一篇: linux 命令:id 详解
yspg_217
博客等级 码龄6年 73粉丝 91原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值