Linux中的ps命令是ProcessStatus的缩写。ps命令用于列出系统中当前正在运行的那些进程。ps命令列出了当前进程的快照,即执行ps命令那一刻的那些进程。如果要动态显示进程信息,可以使用top命令。要对进程进行监控,首先要了解当前进程,也就是需要查看当前进程,而ps命令是最基本也是非常强大的进程查看命令。使用该命令可以判断哪些进程正在运行及其状态,进程是否终止,进程是否死亡,哪些进程占用资源过多等。总之,大部分信息都可以通过执行这条命令得到。ps为我们提供了流程的一次性视图,它提供的视图结果并不是动态的、连续的;如果你想监控进程时间,你应该使用top工具。kill命令用于终止进程。Linux中的进程有5种状态运行(正在运行或在运行队列中等待)中断(休眠、阻塞、等待某种条件的形成或接收信号)不可中断(接收到信号后不唤醒,不能运行信号,进程必须等到中断发生)Zombie(进程已经终止,但是进程描述符存在,直到父进程调用wait4()系统调用并释放)Stop(进程在收到SIGSTOP、SIGSTP、SIGTIN后停止运行,SIGTOUsignals)ps5工具识别进程的状态码DUninterruptible不间断休眠(通常为IO)Rrunningrunnable(在运行队列上)SinterruptsleepingTstoptracedorstoppedZzombieadefunct("zombie")进程命令语法ps(parameter)commandparameter-a:显示所有终端下执行的程序,除了stagejobleader。a:显示当前终端下的所有程序,包括其他用户的程序。-A:显示所有程序。-c:显示CLS和PRI字段。c:列出程序时,显示每个程序的真实命令名称,不包括路径、选项或常驻服务。-C<命令名>:指定要执行的命令名,并列出该命令的程序状态。-d:显示所有程序,不包括会话负责人的程序。-e:此选项与指定“A”选项的效果相同。e:列出程序时,显示每个程序使用的环境变量。-f:显示UID、PPIP、C和STIME字段。f:用ASCII字符显示树状结构,表达程序之间的关系。-g:该选项的作用与指定“-G”选项相同,也可以使用stagejobleader的名称来指定。g:显示当前终端下的所有程序,包括组长的程序。-G:列出属于该组的程序的状态,也可以使用组名指定。h:不显示标题栏。-H:显示树状结构,表示程序之间的关系。-j或j:以作业控制格式显示程序状态。-l或l:使用verbose格式显示程序状态。L:列出该字段的相关信息。-m或m:显示所有执行线程。n:USER和WCHAN字段用数字表示。-N:显示所有程序,除了在ps命令终端下执行的程序。-p<程序识别码>:指定程序识别码,列出程序的状态。p:该选项的作用与指定“-p”选项相同,只是列表格式略有不同。r:只列出终端当前正在执行的程序。-s:指定stageoperation的程序标识码,列出属于stageoperation的程序的状态。s:以节目信号的形式显示节目状态。S:在列出程序时,包括被中断的子程序信息。-t<终端号>:指定终端号,列出属于该终端的程序状态。t:该选项的作用与指定“-t”选项相同,只是列表格式略有不同。-T:显示当前终端下的所有程序。-u<用户ID>:此选项与指定“-U”选项具有相同的效果。u:以面向用户的格式显示程序状态。-U:列出属于该用户的程序状态,也可以使用用户名指定。U:列出属于该用户的程序的状态。v:使用虚拟内存的格式来显示程序的状态。-V或V:显示版本信息。-w或w:使用宽格式显示程序的状态。 x:显示所有节目,不区分终端。X:使用旧的Linuxi386登录格式来显示程序状态。-y:与选项“-l”一起使用时,不显示F(flag)字段,ADDR字段被RSS字段取而代之 。-<程序标识符>:此选项与指定“p”选项的效果相同。--cols<每列字符数>:设置每列最大字符数。--columns<每列的字符数>:此选项与指定“--cols”选项具有相同的效果。--cumulative:此选项与指定“S”选项的效果相同。--deselect:此选项的效果与指定“-N”选项相同。--forest:此选项与指定“f”选项的效果相同。--headers:重复显示标题列。--help:在线帮助。--info:显示调试信息。--lines<显示列数>:设置屏幕显示的列数。--no-headers:该选项与指定“h”选项的效果相同,只是列表格式略有不同。--group:此选项与指定“-G”选项具有相同的效果。--Group:此选项与指定“-G”选项具有相同的效果。--pid<程序标识码>:该选项的作用与指定“-p”选项相同。--rows<显示列数>:此选项与指定“--lines”选项具有相同的效果。--sid:此选项与指定“-s”选项具有相同的效果。--tty:此选项与指定“-t”选项具有相同的效果。--user<用户名>:此选项与指定“-U”选项具有相同的效果。--User<用户ID>:此选项与指定“-U”选项具有相同的效果。--version:该选项的作用与指定“-V”选项相同。--widty<每列字符数>:此选项与指定“-cols”选项具有相同的效果。显示所有进程信息>ps-APIDTTYTIMECMD1?00:11:10系统2?00:00:04kthreadd4?00:00:00kworker/0:0H6?00:00:07ksoftirqd/07?00:00:02迁移/08?00:00:00rcu_bh9?00:43:24rcu_sched10?00:00:00lru-add-drain11?00:00:12看门狗/012?00:00:10看门狗/113?00:00:11迁移/114?00:06:22ksoftirqd/116?00:00:00kworker/1:0H17?00:00:11watchdog/2...显示由指定用户启动的线程>ps-udeployPIDTTYTIMECMD7698?00:29:50java13783?00:16:42java30027?00:03:20java显示所有进程信息和命令行>ps-efUIDPIDPPIDCSTIMETTYTIMECMDroot100Jan08?00:11:10/usr/lib/systemd/systemd--switched-root--system--deserialize22root200Jan08?00:00:04[kthreadd]root420Jan08?00:00:00[kworker/0:0H]root620Jan08?00:00:07[ksoftirqd/0]root720Jan08?00:00:02[migration/0]常用组合ps和grep查找特定进程>ps-ef|grepjavaps-ef|grepsshroot139410Jan08?00:04:23/usr/sbin/sshd-Droot308991394022:44?00:00:00sshd:root@pts/2root3092230899022:44?00:00:00/usr/libexec/openssh/sftp-serverroot316251394022:49?00:00:00sshd:root[priv]sshd3162731625022:49?00:00:00sshd:root[net]root3180430905022:50pts/200:00:00grep--color=autossh将列出本次登录当前属于您的PID和相关信息>ps-lFSUIDPIDPPIDCPRINIADDRSZWCHANTTYTIMECMD0R01275309050800-38304-pts/200:00:00ps4S030905308990800-28895do_waipts/200:00:00bashF代表这个程序的标志(flag),4代表用户是超级用户S代表这个程序的状态(STAT),每个STAT的含义文中都会介绍,UID程序就是这个UID所拥有的,而PID就是这个程序的ID!PPID它是其父程序的IDCCPU使用的资源百分比。PRI是Priority(优先执行顺序)的缩写。后面会详细介绍NI。这就是尼斯的价值。下一节我们会继续介绍ADDR,也就是内核函数,指出程序如果是正在运行的那部分内存的程序,一般是“-”是SZWCHAN是否使用内存的大小程序当前正在运行,如果是-表示正在运行TTY登录终端位置TIMECPU使用时间。为什么CMD发出的命令会列出一个类似programtree>ps-axjf1139413941394的程序显示?-1Ss04:23/usr/sbin/sshd-D1394308993089930899?-1Ss00:00\_sshd:root@pts/2309051873187230905pts/21872S+00:00|\_grep--color=autossh30899309223092230922?-1ss00:00\_/usr/libexec/openssh/sftp-server页面查看进程信息>psaux|更多每一列的解释>psaux|moreUSERPID%CPU%MEMVSZRSSTTYSTATSTARTTIMECOMMANDUSER进程用户;PID进程号;%CPU进程CPU占用百分比;%MEM内存占用百分比;VSZ此进程使用的虚拟内存量(KB);RSS该进程占用的固定内存量(KB);如果终端不相关,则显示(?)。如果是pts/0等,说明宿主进程已联网;START是进程被触发启动的时间;TIME为进程实际CPU运行时间;COMMAND命令的名称和参数;STAT状态位的普通状态字符D不可中断休眠状态(一般为IO进程);R正在运行,可以在队列中传递;S在睡觉;T被停止或跟踪;W正在进入内存交换(自内核2.6起无效);X是死进程(基本很少见);Z僵尸进程;<高优先级进程;n低优先级进程;l一些页面锁定到内存中;s流程负责人(其下的孩子);l多进程(使用CLONE_THREAD,类似于NPTLpthreads);后台进程组;输入所有进程信息到rumenz.txt文件>psaux>rumenz.txt输出指定字段>ps-opid,ppid,pgrp,session,tpgid,commPIDPPIDPGRPSESSTPGIDCOMMAND2292309052292309052292ps309053089930905309052292bashpsaux和ps–aux的区别请注意ps–aux与psaux不同。POSIX和UNIX标准要求ps-aux打印名为x的用户的所有进程,以及打印将由-a选项选择的所有进程。如果用户名x不存在,ps将被解释为psaux并打印警告。这种行为是为了帮助转换旧的脚本和习惯。它很脆弱,即将发生变化,因此不应依赖它。psaux和ps-ef的输出差别不大,只是显示风格不同。aux是BSD风格,-ef是SystemV风格。这是一个微小的差异,它会影响并使用aux将截断命令列而-ef不会截断的差异。当与grep结合使用时,这种区别会影响结果。原文链接:https://rumenz.com/rumenbiji/...微信公众号:入门站Linux常用命令快速参考手册PDF下载3669页Vim参考手册PDF下载阿里云ECS运维Linux系统诊断PDF下载Docker速查手册PDF下载Linux学习笔记【强大总结值得一读】PDF下载shell简明教程PDF下载