A B C D E F G H I J K L M N O P Q R S T U V W X Y Z
-bash: ps: command not found #Debian apt-get install procps-ng #Ubuntu apt-get install procps-ng #Arch Linux pacman -S procps-ng #Kali Linux apt-get install procps-ng #CentOS yum install procps-ng #Fedora dnf install procps-ng #Raspbian apt-get install procps-ng
ps 命令是 Process Status 的缩写。进程状态命令 ps
显示有关活动进程的信息。 每个操作系统的 ps
版本略有不同,因此请查阅文档以获取特定选项。
ps [options]
ps 命令能够支持的系统类型相当的多,选项多的离谱,希望不要被吓到,让我们一项一项拆解:
a 解除BSD风格的“只有你自己”的限制,当使用某些BSD风格(不带“-”)选项或ps个性设置类似于BSD时,这将强加于所有进程的集合。 以这种方式选择的过程组是通过其他方式选择的过程组的补充。 另一种描述是,此选项使ps列出带有终端(tty)的所有进程,或者与x选项一起使用时列出所有进程。 -A 选择所有进程。 与-e相同。 -a 选择所有进程,除了会话领导者和不与终端关联的进程。 -d 选择除会议负责人以外的所有进程。 --deselect 选择满足指定条件的所有过程(取消选择)。 与-N相同。 -e 选择所有进程。 与-A相同。 g 几乎所有流程,甚至是会议负责人。 该标志已过时,在将来的版本中可能会停止使用。 它通常由a标记暗示,仅在以SunOS4身份运行时才有用。 -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中给出的进程。 -G grplist 按真实组ID(RGID)或名称选择。 这将选择真实组名或ID在grplist列表中的进程。 真实组ID标识创建进程的用户的组。 -g grplist 通过会话或有效组名选择。 按会话选择是由许多标准指定的,但是按有效组选择是其他操作系统使用的逻辑行为。 当列表完全为数字时(与会话相同),此ps将按会话选择。 仅当还指定了某些组名时,组ID号才起作用。 请参阅-s和--group选项。 --Group grplist 按真实组ID(RGID)或名称选择。 与-G相同。 --group grplist 通过有效的组ID(EGID)或名称进行选择。 这将选择其有效组名或ID在组列表中的进程。 有效组ID描述了该进程使用其文件访问权限的组。 -g选项通常是--group的替代方法。 p pidlist 按进程ID选择。 与-p和--pid相同。 -p pidlist 通过PID选择。 这将选择其进程ID号显示在pidlist中的进程。 与p和--pid相同。 --pid pidlist 按进程ID选择。 与-p和p相同。 --ppid pidlist 按父进程ID选择。 这将选择在pidlist中具有父进程ID的进程。 也就是说,它选择的进程是pidlist中列出的进程的子进程。 -s sesslist 通过会话ID选择。 这将选择具有在sesslist中指定的会话ID的进程。 --sid sesslist 通过会话ID选择。 与-s相同。 t ttylist 通过tty选择。 与-t和--tty几乎相同,但是也可以与空的ttylist一起使用以指示与ps关联的终端。 使用T选项被认为比使用带有空ttylist的t更干净。 -t ttylist 通过tty选择。 这将选择与ttylist中给出的终端相关联的进程。 终端(tty或用于文本输出的屏幕)可以用几种形式指定:/ dev / ttyS1,ttyS1,S1。 普通的“-”可用于选择未附加到任何终端的进程。 --tty ttylist 按终端选择。 与-t和t相同。 U userlist 通过有效的用户ID(EUID)或名称进行选择。 这将选择有效用户名或ID在用户列表中的进程。 有效用户ID描述了该进程使用其文件访问权限的用户。 与-u和--user相同。 -U userlist 按真实用户ID(RUID)或名称选择。 它选择真实用户名或ID在用户列表中的进程。 真实用户ID标识创建流程的用户。 -u userlist 通过有效的用户ID(EUID)或名称进行选择。 这将选择有效用户名或ID在用户列表中的进程。有效用户ID描述了该进程使用其文件访问权限的用户。 与U和--user相同。 --User userlist 按真实用户ID(RUID)或名称选择。 与-U相同。 --user userlist 通过有效的用户ID(EUID)或名称进行选择。 与-u和U相同。
这些选项用于选择 ps 显示的信息。 输出可能因版本而异。
-c 显示-l选项的不同调度程序信息。 --context 显示安全上下文格式(使用SE Linux时)。 -f 进行全格式列表。 该选项可以与其他UNIX风格的选项结合使用以添加其他列。 它还会导致命令参数被打印。 与-L一起使用时,将添加NLWP(线程数)和LWP(线程ID)列。 请参阅c选项,format关键字args和format关键字comm。 -F 额外的完整格式。 请参阅-f选项(-F表示)。 --format 格式用户定义的格式。 与-o和o相同。 j BSD作业控制格式。 -j 作业格式。 l 显示BSD长格式。 -l 长格式。 -y选项通常对此很有用。 -M 添加一列安全数据。 与Z相同(对于SE Linux)。 O format 已预加载o(已过载)。 BSD O选项的作用类似于-O(带有一些预定义公共字段的用户定义输出格式),或者可用于指定排序顺序。 启发式用于确定此选项的行为。 为了确保获得所需的行为(排序或格式化),请以其他方式指定该选项(例如,使用-O或--sort)。 当用作格式化选项时,它与-O相同,具有BSD个性。 -O format 与-o类似,但预加载了一些默认列。 与“ -o pid,格式,状态,tname,时间,命令”相同或“ -o pid,格式,tname,时间,cmd”; 请参阅下面的-o。 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 不显示标志; 显示rss代替addr。 此选项只能与-l一起使用。 Z 添加一列安全数据。 与-M相同(对于SE Linux)。
c 显示真实的命令名称。 这是从可执行文件的名称而不是argv值派生的。 因此,不会显示命令参数及其任何修改。 该选项有效地将args格式关键字转换为comm格式关键字; 它与-f格式选项和各种BSD样式的格式选项(通常都显示命令参数)一起使用时非常有用。 请参见-f选项,格式关键字args和格式关键字comm。 --cols n 设置屏幕宽度。 --columns n 设置屏幕宽度。 --cumulative 包括一些无效的子进程数据(作为父进程的总和)。 e 在命令后显示环境。 f ASCII艺术流程层次结构(与许多树木一样,也称为“森林”) --forest ASCII艺术处理树。 h 没有标题。 (或BSD角色中每个屏幕一个标题)。 -h选项有问题。 标准BSD ps使用此选项在输出的每一页上打印标题,而较早的Linux ps使用此选项完全禁用标题。 除非已选择BSD个性,否则Linux ps遵循不打印标题的标准用法,在这种情况下,它将在输出的每一页上打印标题。 无论当前的个性如何,都可以使用长选项--headers和--no-headers分别在每页上启用打印标题或完全禁用标题。 -H 显示流程层次结构(林)。 --headers 重复标题行,每页输出一行。 k spec 指定排序顺序。 排序语法为“ [+ |-] key [,[+ |-] key [,...]]”。 从“标准格式规范”部分中选择一个多字母键。 “ +”是可选的,因为默认方向是按数字或字典顺序递增。 与--sort相同。 Examples: ------------------------------- ps jaxkuid,-ppid,+pid ps axk comm o comm,args ps kstart_time -ef --lines n 设置屏幕高度。 -n namelist 设置名称列表文件。 与N相同。名称列表文件对于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)。 N namelist 指定名称列表文件。 与-n相同; 参见上面的-n。 --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参数可以是简单,列表,输出,线程,其他或全部之一。 可以将自变量缩短为带下划线的字母之一,例如:s | l | o | t | m | a。 --info 打印调试信息。 L 列出所有格式说明符。 V 打印procps-ng版本。 -V 打印procps-ng版本。 --version 打印procps-ng版本。
要使用标准语法查看系统上运行的每个进程:
ps -e ps -ef ps -eF ps -ely
要使用BSD语法查看系统上的每个进程,请执行以下操作:
ps ax ps axu
要显示进程树:
ps -ejH ps axjf
获取有关线程的信息:
ps -eLf ps axms
获取安全信息:
ps -eo euser,ruser,suser,fuser,f,comm,label ps axZ ps -eM
要以用户格式查看以root身份运行的每个进程(真实和有效ID),请执行以下操作:
ps -U root -u root u
要以用户定义的格式查看每个进程:
ps -eo pid,tid,class,rtprio,ni,pri,psr,pcpu,stat,wchan:14,comm ps axo stat,euid,ruid,tty,tpgid,sess,pgrp,ppid,pid,pcpu,comm ps -Ao pid,tt,user,fname,tmout,f,wchan
仅打印syslogd的进程ID,即syslog守护程序:
ps -C syslogd -o pid= #仅打印进程ID 15的名称: ps -p 15 -o comm=
ps 命令其他常用实例备份:
ps axo pid,comm,pcpu # 查看进程的PID、名称以及CPU 占用率 ps aux | sort -rnk 4 # 按内存资源的使用量对进程进行排序 ps aux | sort -nk 3 # 按 CPU 资源的使用量对进程进行排序 ps -A # 显示所有进程信息 ps -u root # 显示指定用户信息 ps -efL # 查看线程数 ps -e -o "%C : %p :%z : %a"|sort -k5 -nr # 查看进程并按内存使用大小排列 ps -ef # 显示所有进程信息,连同命令行 ps -ef | grep ssh # ps 与grep 常用组合用法,查找特定进程 ps -C nginx # 通过名字或命令搜索进程 ps aux --sort=-pcpu,+pmem # CPU或者内存进行排序,-降序,+升序 ps -f --forest -C nginx # 用树的风格显示进程的层次关系 ps -o pid,uname,comm -C nginx # 显示一个父进程的子进程 ps -e -o pid,uname=USERNAME,pcpu=CPU_USAGE,pmem,comm # 重定义标签 ps -e -o pid,comm,etime # 显示进程运行的时间 ps -aux | grep named # 查看named进程详细信息 ps -o command -p 91730 | sed -n 2p # 通过进程id获取服务名称