ps命令_ps命令详解 - CSDN
精华内容
参与话题
  • Linux中ps命令详解

    千次阅读 2018-10-12 10:09:04
    原文地址:http://blog.csdn.net/x_i_y_u_e/article/details/38708481   linux上进程有5种状态:    1. 运行(正在运行或在运行队列中等待) 2. 中断(休眠中, 受阻, 在等待某个条件的形成或... 3.... 4....

    原文地址:http://blog.csdn.net/x_i_y_u_e/article/details/38708481

     

    linux上进程有5种状态: 

    
     
    1. 1. 运行(正在运行或在运行队列中等待)

    2. 2. 中断(休眠中, 受阻, 在等待某个条件的形成或接受到信号)

    3. 3. 不可中断(收到信号不唤醒和不可运行, 进程必须等待直到有中断发生)

    4. 4. 僵死(进程已终止, 但进程描述符存在, 直到父进程调用wait4()系统调用后释放)

    5. 5. 停止(进程收到SIGSTOP, SIGSTP, SIGTIN, SIGTOU信号后停止运行)

     

    ps工具标识进程的5种状态码: 

    
     
    1. D 不可中断 uninterruptible sleep (usually IO)

    2. R 运行 runnable (on run queue)

    3. S 中断 sleeping

    4. T 停止 traced or stopped

    5. Z 僵死 a defunct (”zombie”) process

     

     

    名称:ps 
    使用权限:所有使用者 
    使用方式:ps [options] [--help] 
    说明:显示瞬间行程 (process) 的动态 
    参数: 

    
     
    1. ps 的参数非常多, 在此仅列出几个常用的参数并大略介绍含义

    2. -A 列出所有的行程

    3. -w 显示加宽可以显示较多的资讯

    4. -au 显示较详细的资讯

    5. -aux 显示所有包含其他使用者的行程

    6. au(x) 输出格式 :

    7. USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND

    8. USER: 进程拥有者

    9. PID: pid

    10. %CPU: 占用的 CPU 使用率

    11. %MEM: 占用的记忆体使用率

    12. VSZ: 占用的虚拟记忆体大小

    13. RSS: 占用的记忆体大小

    14. TTY: 终端的次要装置号码 (minor device number of tty)

    15. STAT: 该行程的状态:

    16. D: 不可中断的静止

    17. R: 正在执行中

    18. S: 静止状态

    19. T: 暂停执行

    20. Z: 不存在但暂时无法消除

    21. W: 没有足够的记忆体分页可分配

    22. <: 高优先序的行程

    23. N: 低优先序的行程

    24. L: 有记忆体分页分配并锁在记忆体内 (即时系统或捱A I/O)

    25. START: 行程开始时间

    26. TIME: 执行的时间

    27. COMMAND:所执行的指令

     

     

    范例: 

     

    
     
    1. ps

    2. PID TTY TIME CMD

    3. 2791 ttyp0 00:00:00 tcsh

    4. 3092 ttyp0 00:00:00 ps

    5. % ps -A

    6. PID TTY TIME CMD

    7. 1 ? 00:00:03 init

    8. 2 ? 00:00:00 kflushd

    9. 3 ? 00:00:00 kpiod

    10. 4 ? 00:00:00 kswapd

    11. 5 ? 00:00:00 mdrecoveryd

    12. .......

    13. % ps -aux

    14. USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND

    15. root 1 0.0 0.7 1096 472 ? S Sep10 0:03 init [3]

    16. root 2 0.0 0.0 0 0 ? SW Sep10 0:00 [kflushd]

    17. root 3 0.0 0.0 0 0 ? SW Sep10 0:00 [kpiod]

    18. root 4 0.0 0.0 0 0 ? SW Sep10 0:00 [kswapd]

     

     

    具体命令解释如下: 

    
     
    1.   1)ps a 显示现行终端机下的所有程序,包括其他用户的程序。

    2.   2)ps -A 显示所有程序。

    3.   3)ps c 列出程序时,显示每个程序真正的指令名称,而不包含路径,参数或常驻服务的标示。

    4.   4)ps -e 此参数的效果和指定"A"参数相同。 例如: ps -e|grep sshd

    5.   5)ps e 列出程序时,显示每个程序所使用的环境变量。

    6.   6)ps f 用ASCII字符显示树状结构,表达程序间的相互关系。

    7.   7)ps -H 显示树状结构,表示程序间的相互关系。

    8.   8)ps -N 显示所有的程序,除了执行ps指令终端机下的程序之外。

    9.   9)ps s 采用程序信号的格式显示程序状况。

    10.   10)ps S 列出程序时,包括已中断的子程序资料。

    11.   11)ps -t<终端机编号>

    12.   指定终端机编号,并列出属于该终端机的程序的状况。

    13.   12)ps u

    14.   以用户为主的格式来显示程序状况。

    15.   13)ps x

    16.   显示所有程序,不以终端机来区分。

    17.   最常用的方法是ps -aux,然后再利用一个管道符号导向到grep去查找特定的进程,然后再对特定的进程进行操作。


     

     

    附:Linux中top与ps区别

    一:ps命令
    以下是 ps 的最简单形式: 

    
     
    1. $ ps

    2. PID TTY TIME CMD

    3. 3884 pts/1 00:00:00 bash

    4. 3955 pts/2 00:00:00 more

    5. 3956 pts/5 00:00:05 sqlplus

    6. • PID 是进程的标识号。

    7. • TTY 是进程所属的终端控制台。

    8. • TIME 列是进程所使用的总的 CPU 时间。

    9. • CMD 列列出正在执行的命令行。

    10. 使用带有 -ef 选项的 ps,返回系统中所有用户的所有进程的完整列表。一般将此 ps 命令的结果传送到 grep 中,则该结果更易于查看。例如:

    11.  
    12. $ ps -ef | grep Oracle

    13.  
    14. UID PID PPID C STIME TTY TIME CMD

    15. oracle 1633 1 0 13:58 ?00:00:00 ora_pmon_ora1

    16. oracle 1635 1 0 13:58 ?00:00:00 ora_dbw0_ora1

    17. oracle 1637 1 0 13:58 ?00:00:01 ora_lgwr_ora1

    18. oracle 1639 1 0 13:58 ?00:00:02 ora_ckpt_ora1

    19. oracle 1641 1 0 13:58 ?00:00:02 ora_smon_ora1

    20. oracle 1643 1 0 13:58 ?00:00:00 ora_reco_ora1

    21. oracle 1645 1 0 13:58 ?00:00:00 ora_cjq0_ora1

    22. oracle 1647 1 0 13:58 ?00:01:18 ora_qmn0_ora1

    23. oracle 1649 1 0 13:58 ?00:00:00 ora_s000_ora1

    24. oracle 1651 1 0 13:58 ?00:00:00 ora_d000_ora1

    25.  
    26. -e : 在命令执行后显示环境

    27.   -f : 完整显示输出

    28. • 标为 C 的列是由 CPU 用于计算执行优先级的因子。

    29. • STIME 是指进程的启动时间。

    30. • 问号表示这些进程不属于任何 TTY,因为它们是由系统启动的。



    主要参数说明:

    1) 进程用户ID(UID),
    虽然 uid 通常是指数字型的标识,但在第一列下指定的是用户名,标记为 UID
    2) 进程ID (PID)
    3) 父进程ID (PPID)
    PPID 是父进程的标识号。对于 Oracle 进程,这里的标识号为 1 — 它是 init 进程(所有进程的父进程)的 id,因为在本系统中安装的 Oracle 是作为登录进程的一部分而启动的
    4) CPU 调度情况 (C)
    即是是由 CPU 用于计算执行优先级的因子。
    5) 进程启动的时间 (STIME) 
    6) 进程共占用CPU的时间(TIME) 
    7) 启动进程的命令 (CMD) 
    8)问号表示这些进程不属于任何 TTY,因为它们是由系统启动的。   

     

    使用PS命令分析系统性能的方法主要有: 
    1) 首先,根据用户ID寻找由同一用户执行的许多相似任务,这些任务很可能是因为用户运行的某个脚本程序在后台启动多个进程而造成的。 
    2) 接下来,检查TIME域中各进程累计占用CPU的时间,如果有某个进程累计占用了大量的CPU时间,通常说明该进程可能陷入了无限循环,或该京城的某写逻辑出了错 
    3) 找到那些已陷入死锁的进程ID后,就可以使用kill命令强制终止该进程了。 

    二:top命令 
    Ps 只为您提供当前进程的快照。要即时查看最活跃的进程,可使用 top。 
    Top 实时地提供进程信息。它还拥有交互式的状态,允许用户输入命令,如 n 后面跟有 5 或 10 等数字。其结果是指示 top 显示 5 或 10 个最活跃的进程。 Top 持续运行,直到您按 "q" 退出 top 为止。 
    Top中的几个隐含参数: 
    top中按1键和F键的参数: 
    按1键可以等到多个cpu的情况 
    按F(f:当前状态,可以按相应的字母键做top的定制输出)后得参数: 
    对F键和f键的区别: 
    如果进入F键区可以做进程显示的排序,如果进入f键区的话则可以选择显示的多个项目: 

    
     
    1. * A: PID = Process Id //进程ID

    2. b: PPID = Parent Process Pid //父进程ID

    3. c: RUSER = Real user name //真正的(Real)所属用户名称

    4. d: UID = User Id //用户ID

    5. e: USER = User Name //用户名称

    6. f: GROUP = Group Name //组名称

    7. g: TTY = Controlling Tty //控制

    8. h: PR = Priority //优先权

    9. i: NI = Nice value //优先级得值(负数代表较高的优先级,正数是较低的优先级.0标志改优先级的值是不会被调整的)

    10. j: #C = Last used cpu (SMP) //随后使用的cpu比率

    11. k: %CPU = CPU usage //cpu使用比率

    12. l: TIME = CPU Time //cpu占用时间

    13. m: TIME+ = CPU Time, hundredths //cpu%比

    14. n: %MEM = Memory usage (RES) //内存使用率

    15. o: VIRT = Virtual Image (kb) //虚拟镜像(VIRT = SWAP + RES:所有进程使用的虚拟内存值,包括所有的代码,数据,共享库已经被swapped out的)

    16. p: SWAP = Swapped size (kb) //交换空间大小(所有虚拟内存中的镜像)

    17. q: RES = Resident size (kb) //已经使用了的常驻内存(Resident size):RES = CODE + DATA

    18. r: CODE = Code size (kb) //分配给执行代码的物理内存

    19. s: DATA = Data+Stack size (kb) //data+stack:物理内存中非存放代码的空间,用于存放数据

    20. t: SHR = Shared Mem size (kb) //共享内存大小.放映了一个task的潜在可以供别人使用的内存的大小

    21. u: nFLT = Page Fault count //内存页错误的数量

    22. v: nDRT = Dirty Pages count //脏页的数量

    23. w: S = Process Status //进程状态:( R )为运行或可执行的,( S )为该程序正在睡眠中,( T )正在侦测或者是停止了,( Z )僵尸程序

    24. x: COMMAND = Command name/line //进程启动命令行参数

    25. y: WCHAN = Sleeping in Function //在睡眠中

    26. z: Flags = Task Flags <sched.h> //任务标志

    27. Note1:

    28. If a selected sort field can't be shown due to screen width or your field order, the '<' and '>' keys

    29. will be unavailable until a field within viewable range is chosen.

    30.  
    31. Note2:

    32. Field sorting uses internal values, not those in column display. Thus, the TTY & WCHAN fields will violate strict ASCII collating sequence. (shame on you if WCHAN is chosen)

    33.  
    34. Current Fields: AEHIOQTWKNMbcdfgjplrsuvyzX for window 1:Def

    35. Toggle fields via field letter, type any other key to return

    36. * A: PID = Process Id

    37. * E: USER = User Name

    38. * H: PR = Priority

    39. * I: NI = Nice value

    40. * O: VIRT = Virtual Image (kb)

    41. * Q: RES = Resident size (kb)

    42. * T: SHR = Shared Mem size (kb)

    43. * W: S = Process Status

    44. * K: %CPU = CPU usage

    45. * N: %MEM = Memory usage (RES)

    46. * M: TIME+ = CPU Time, hundredths

    47. b: PPID = Parent Process Pid

    48. c: RUSER = Real user name

    49. d: UID = User Id

    50. f: GROUP = Group Name

    51. g: TTY = Controlling Tty

    52. j: #C = Last used cpu (SMP)

    53. p: SWAP = Swapped size (kb)

    54. l: TIME = CPU Time

    55. r: CODE = Code size (kb)

    56. s: DATA = Data+Stack size (kb)

    57. u: nFLT = Page Fault count

    58. v: nDRT = Dirty Pages count

    59. y: WCHAN = Sleeping in Function

    60. z: Flags = Task Flags <sched.h>

    61. * X: COMMAND = Command name/line

    62.  
    63. Flags field:

    64. 0x00000001 PF_ALIGNWARN

    65. 0x00000002 PF_STARTING

    66. 0x00000004 PF_EXITING

    67. 0x00000040 PF_FORKNOEXEC

    68. 0x00000100 PF_SUPERPRIV

    69. 0x00000200 PF_DUMPCORE

    70. 0x00000400 PF_SIGNALED

    71. 0x00000800 PF_MEMALLOC

    72. 0x00002000 PF_FREE_PAGES (2.5)

    73. 0x00008000 debug flag (2.5)

    74. 0x00024000 special threads (2.5)

    75. 0x001D0000 special states (2.5)

    76. 0x00100000 PF_USEDFPU (thru 2.4)

    展开全文
  • Linux查看进程命令

    万次阅读 多人点赞 2019-04-21 15:24:16
    ps命令 -a,查看所有 -u,以用户(user)的格式显示 -x, 显示后台进程运行参数 -ef,以全格式显示进程所有信息,包括父进程Pid,创建人,创建时间,进程号。等等 一般项目中,我们首先要查询一个进程,并对其...

    ps命令

    -a,查看所有

    -u,以用户(user)的格式显示

    -x, 显示后台进程运行参数

    -ef,以全格式显示进程所有信息,包括父进程Pid,创建人,创建时间,进程号。等等

    一般项目中,我们首先要查询一个进程,并对其进行删除会用一下命令

    ps -a | grep helloworld 或

    ps -ef |grep helloworld 或者其他

    查询到helloworld相关的进程,我们通过kill命令来操作该进程号删除该进程,kill -9  13492

    展开全文
  • ps 命令详解

    万次阅读 2020-07-10 10:42:09
    From:... 进程和作业管理命令:http://man.linuxde.net/sub/进程和作业管理 Linux 关于 进程/线程 的命令 kill 和 pgrep 和 pidof 和 awk 和 pkill 和 killall:https://blog.csdn.net/freeki...

    From:http://blog.chinaunix.net/uid-25681671-id-3201927.html

    进程和作业管理命令:http://man.linuxde.net/sub/进程和作业管理

    Linux 关于 进程/线程 的命令

    kill 和 pgrep 和 pidof 和 awk 和 pkill 和 killall:https://blog.csdn.net/freeking101/article/details/53445749

     

     

    简介

     

    Linux 中的 ps 命令是 Process Status 的缩写。ps 命令用来列出系统中 当前正在运行 的那些进程,就是执行 ps 命令的那个时刻的那些进程的快照使用该命令可以确定有哪些进程 正在运行 和 运行的状态、进程是否结束、进程有没有僵死、哪些进程占用了过多的资源等等。总之大部分信息都是可以通过执行该命令得到的。

    ps 查看的结果不是动态连续的,如果想要动态的显示进程信息,就可以使用 top、htop 命令。

    kill 命令用于杀死进程。

     

     

    十二 个经典 Linux 进程管理命令介绍

    ps、pstree、top、htop、nice、renice、kill、ulimit、w 和 who 和 whoami、pgrep、fg 和 bg、ipcs

    • ps:查看 Linux 中当前运行的进程的命令。能列出系统中运行的进程,包括进程号、命令、CPU使用量、内存使用量等
          示例:
              ps -a                - 列出所有运行中/激活进程
              ps -ef |grep      - 列出需要进程
              ps -aux            - 显示进程信息,包括无终端的(x)
                                        和针对用户(u)的进程:如USER, PID, %CPU, %MEM等
    • pstree :linux中每一个进程都是由其父进程创建的。pstree以可视化方式显示进程,通过显示进程的树状图来展示进程间关系。如果指定了pid了,那么树的根是该pid,不然将会是init(pid: 1)。
    • top:实时的监控系统状态信息和进程所使用的资源。显示进程的数据包括 PID、进程属主、优先级、%CPU、%memory等。可以使用这些显示指示出资源使用量。
    • htop:htop 与 top 很类似,但是 htop 是交互式的文本模式的进程查看器。它通过文字图形化地显示每一个进程的CPU和内存使用量、swap使用量。使用上下光标键选择进程,F7和F8改变优先级,F9杀死进程。Htop不是系统默认安装的,所以需要额外安装。
    • nice:通过 nice 命令的帮助,用户可以设置和改变进程的优先级。提高一个进程的优先级,内核会分配更多CPU时间片给这个进程。默认情况下,进程以 0 的优先级启动。进程优先级可以通过 top 命令显示的 NI(nice value)列查看。
      进程优先级值的范围从-20到19。值越低,优先级越高。nice <优先值> <进程名>  -  通过给定的优先值启动一个程序
    • renice:renice 命令类似 nice 命令。使用这个命令可以改变正在运行的进程优先值。
              注意,用户只能改变属于他们自己的进程的优先值。
              renice -n -p - 改变指定进程的优先值
              renice -u -g - 通过指定用户和组来改变进程优先值
    • kill :用来发送信号给进程,并结束进程。如果一个进程没有响应杀死命令,这也许就需要强制杀死,使用 -9 参数来执行。
                注意:使用强制杀死的时候一定要小心,因为进程没有时机清理现场,也许写入文件没有完成。
                如果 不知道进程PID 或者 用名字杀死 进程时候,killall 就能派上用场。
                        kill <pid>                  --- 使用 kill 时候,需要知道进程ID号,可以通过 ps 命令得到 进程号
                        kill -9 <pid>              --- 杀死进程
                        killall -9 <进程名>    --- 杀死所有拥有同样名字的进程
                        pkill <进程名>          --- pkill 是类似的命令,但使用模式匹配,如进程名,进程拥有者等。
    • ulimit :控制系统资源在shell和进程上的分配量。对于系统管理员是最有用的,可以管理重度使用和存在性能问题的系统。
      限制资源大小可以确保重要进程持续运行,其他进程不会占用过多资源。
              -f - 最大文件尺寸大小
              -v - 最大虚拟内存大小(KB)
              -n - 增加最大文件描述符数量
              -H : 改变和报告硬限制
              -S : 改变和报告软限制
          ulimit -a - 显示当前用户关联的资源限制
    • w :显示当前登录的用户及其正在执行的进程的信息。
              显示信息头包含信息,如当前时间、系统运行时长、登录用户总数、过去的1,5,15分钟内的负载均衡数。
              基于这些用户信息,用户在终止不属于他们的进程时要小心。
    • who: 和 w 类似的命令,提供当前登录用户列表、系统启动时间、运行级别等。
    • whoami : 输出当前用户ID。
    • pgrep :pgrep 的意思是 " 进程号全局正则匹配输出 "。该命令扫描当前运行进程,然后按照命令匹配条件列出匹配结果到标准输出。对于通过名字检索进程号是很有用。
              示例:pgrep -u mint sh           // 显示用户为 "mint" 和进程名为 "sh" 的进程ID。
    • fg 、bg:fg 即 frontgroud,表示 前台。 bg 即 background,表示 后台。
          有时命令需要很长时间才能执行完成。对于这种情况,
          使用 "bg" 命令可以将任务放在后台执行。使用 "fg" 命令可以将任务调到前台执行。
          可以通过 & 在后台启动一个程序: find . -name *iso > /tmp/res.txt &
          一个正在运行的程序也可以通过 "CTRL+Z" 和 "bg" 命令组合放到后台运行。
              find . -name *iso > /tmp/res.txt &     // 启动一个程序
              ctrl+z                                 // 挂起当前执行程序
              bg                                     // 将程序放到后台运行
          可以使用 "jobs" 命令列出所有后台进程。
              jobs
          使用 "fg" 命令可以将后台程序调到前台执行。
              fg %进程id
    • ipcs :ipcs 命令报告进程间通信设施状态。(共享内存,信号量和消息队列)
              用 -p 参数联合 -m、-s 或 -q 使用,可以获得相关的进程间通信的进程ID。
              示例:ipcs -p -m

     

     

    linux上进程有5种状态

     

    5 种进程状态

    1.  运行        ( 正在运行或在运行队列中等待 ) 
    2.  中断        ( 休眠中, 受阻, 在等待某个条件的形成或接受到信号 ) 
    3.  不可中断    ( 收到信号不唤醒和不可运行, 进程必须等待直到有中断发生 ) 
    4.  僵死        ( 进程已终止, 但进程描述符存在, 直到父进程调用wait4()系统调用后释放 ) 
    5.  停止        ( 进程收到SIGSTOP, SIGSTP, SIGTIN, SIGTOU信号后停止运行运行 ) 

    ps 工具标识进程的 5 种状态码: 

    D    不可中断    uninterruptible sleep (usually IO) 
    R    运行        runnable (on run queue) 
    S    中断        sleeping 
    T    停止        traced or stopped 
    Z    僵死        a defunct (”zombie”) process

     

     

    ps命令支持三种使用的语法格式

     

    三种语法格式

    1.UNIX 风格,选项可以组合在一起,并且选项前必须有 "-" 连字符
    2.BSD 风格,选项可以组合在一起,但是选项前不能有 "-" 连字符
    3.GNU 风格的长选项,选项前有两个 "-" 连字符

    能够混用这几种风格,但是可能会发生冲突。较多使用 UNIX 风格的 ps 命令。

     

     

    一些参数和使用示例

    ps 命令帮助:

    一些参数:

    ############################################################
    
    常用参数:
    -A    显示所有进程(等价于-e)(utility)
    -a    显示一个终端的所有进程,除了会话引线
    -N    忽略选择。
    -d    显示所有进程,但省略所有的会话引线(utility)
    -x    显示没有控制终端的进程,同时显示各个命令的具体路径。dx不可合用。(utility)
    -p    pid 进程使用cpu的时间
    -u    uid or username 选择有效的用户id或者是用户名
    -g    gid or groupname 显示组的所有进程。
    U     username 显示该用户下的所有进程,且显示各个命令的详细路径。如:ps U zhang;(utility)
    -f    全部列出,通常和其他选项联用。如:ps -fa or ps -fx and so on.
    -l    长格式(有F,wchan,C 等字段)
    -j    作业格式
    -o    用户自定义格式。
    v     以虚拟存储器格式显示
    s     以信号格式显示
    -m    显示所有的线程
    -H    显示进程的层次(和其它的命令合用,如:ps -Ha)(utility)
    e     命令之后显示环境(如:ps -d e; ps -a e)(utility)
    h     不显示第一行
    
    ===================================ps 的参数说明=============================
    l     长格式输出;
    u     按用户名和启动时间的顺序来显示进程;
    j     用任务格式来显示进程;
    f     用树形格式来显示进程;
    a     显示所有用户的所有进程(包括其它用户)。显示所有进程
    -a    显示同一终端下的所有程序
    x     显示无控制终端的进程;
    r     显示运行中的进程;
    ww    避免详细参数被截断;
    -A    列出所有的进程
    -w    显示加宽可以显示较多的资讯
    -au   显示较详细的资讯
    -aux  显示所有包含其他使用者的进程
    -e    显示所有进程,环境变量
    -f    全格式
    -h    不显示标题
    -l    长格式
    -w    宽输出
    a     显示终端上地所有进程,包括其他用户地进程
    r     只显示正在运行地进程
    x     显示没有控制终端地进程
    
    常用的选项是组合是 aux 或 lax,还有参数 f 的应用。
    pids 只列出进程标识符,之间运用逗号分隔,
    该进程列表必须在命令行参数地最后一个选项后面紧接着给出,
    中间不能插入空格。比如:ps -f1,4,5 显示的是进程ID为1,4,5的进程
    
    下面介绍长命令行选项,这些选项都运用“--”开头:
    --sort X[+|-] key [,[+|-] key [,…]] 从SORT KEYS段中选一个多字母键.“+”字符是可选地,
    因为默认地方向就是按数字升序或者词典顺序,“-”字符是逆序排序(即降序).
    比如: ps -jax -sort=uid,-ppid,+pid.
    --help 显示帮助信息.
    --version 显示该命令地版本信息.
    在前面地选项说明中提到了排序键,接下来对排序键作进一步说明.
    需要注意的是排序中运用的值是ps运用地内部值,并非仅用于某些输出格式地伪值.
    排序键列表见下表.
    ============排序键列表==========================
    c cmd   可执行地简单名称 
    C cmdline   完整命令行 
    f flags   长模式标志 
    g pgrp   进程地组ID 
    G tpgid   控制tty进程组ID 
    j cutime   累计用户时间 
    J cstime   累计系统时间 
    k utime   用户时间 
    K stime   系统时间 
    m min_flt   次要页错误地数量 
    M maj_flt   重点页错误地数量 
    n cmin_flt 累计次要页错误 
    N cmaj_flt 累计重点页错误 
    o session   对话ID 
    p pid   进程ID 
    P ppid   父进程ID 
    r rss   驻留大小 
    R resident 驻留页 
    s size   内存大小(千字节) 
    S share   共享页地数量 
    t tty   tty次要设备号 
    T start_time 进程启动地时间 
    U uid   UID
    u user   用户名
    v vsize   总地虚拟内存数量(字节) 
    y priority 内核调度优先级

    日常生活中使用的 ps 命令的例子( UNIX 风格 )。

    1. ps    // 不加参数执行 ps 命令. 这是一个基本的 ps 使用    
            PID    TTY     TIME      COMMAND
            5800   ttyp0   00:00:00  bash
            5835   ttyp0   00:00:00  ps
            可以看到显示共分为四项:
                依次为PID(进程ID)、
                TTY(终端名称)、
                TIME(进程执行时 间)、
                COMMAND(该进程地命令行输入)。
    
    2. ps -ax | less   // 显示所有当前进程。-a 代表 all。同时加上 x参数会显示没有控制终端的进程。
       ps -aux | less  // 默认的结果集是未排序的。    
    
    3. ps -u pungki   // 根据用户过滤进程。查看特定用户的进程。示例是查看用户'pungki'的进程
       
    4. ps -aux --sort -pcpu | less  // --sort命令来排序。 示例是根据 CPU 使用来升序排序。
       ps -aux --sort -pmem | less  // 根据 内存使用 来升序排序。    
       ps -aux --sort -pcpu,+pmem | head -n 10
    
    5. $ ps -C getty  // 使用 -C 参数,后面跟你要找的进程的名字。示例名为getty的进程的信息。
       $ ps -f -C getty  // 使用-f参数来查看格式化的信息列表:
       
    6. $ ps -L 1213  // 根据线程来过滤进程. 
                     // 如果我们想知道特定进程的线程,可以使用-L 参数,后面加上特定的PID。
    7. $ps -axjf  // 树形显示进程, 有时候我们希望以树形结构显示进程,可以使用 -axjf 参数。
                  // 或者 使用另一个命令:pstree
      
    8. 显示安全信息. 
       如果想要查看现在有谁登入了你的服务器。可以使用ps命令加上相关参数:$ ps -eo pid,user,args
           参数 
              -e 显示所有进程信息
              -o 参数控制输出。
              Pid, User 和 Args 参数显示 PID,运行应用的用户 和 该应用。
    
    9. 格式化输出root用户(真实的或有效的UID)创建的进程
       系统管理员想要查看由root用户运行的进程和这个进程的其他相关信息时,可以通过下面的命令:
       $ ps -U root -u root u
           -U 参数按真实用户ID(RUID)筛选进程,它会从用户列表中选择真实用户名或 ID。
               真实用户即实际创建该进程的用户。
           -u 参数用来筛选有效用户ID(EUID)。 最后的u参数用来决定以针对用户的格式输出,
              由User, PID, %CPU, %MEM, VSZ, RSS, TTY, STAT, START, TIME和COMMAND这几列组成。
    
        $ ps u     // 可以运用 u 选项来查看进程所有者及其他少许详细信息,如下所示:
        USER    PID    %CPU    %MEM    USZ    RSS    TTY    STAT    START    TIME    COMMAND
        test    5800   0.0     0.4     1892   1040   ttyp0  S       Nov27    0:00    -bash
        test    5836   0.0     0.3     2528   856    ttyp0  R       Nov27    0:00    ps u
        在 bash 进程前面有条横线,意味着该进程便是用户地登录shell,
        所以对于一个登录用户来说带短横线的进程只有一个。
    
    
    10. 使用 PS 实时监控进程状态。
        ps 命令会显示你系统当前的进程状态,但是这个结果是静态的。当有一种情况,
        我们需要像上面第四点中提到的通过CPU和内存的使用率来筛选进程,
        并且我们希望结果能够每秒刷新一次。为此,我们可以将 ps命令 和 watch命令 结合起来。
        $ watch -n 1 ‘ps -aux --sort -pmem, -pcpu’
        如果输出太长,我们也可以限制它,比如前20条,我们可以使用head命令来做到。
        $ watch -n 1 ‘ps -aux --sort -pmem, -pcpu | head 20’
        这里的动态查看并不像top或者htop命令一样。但是使用ps的好处
        是你能够定义显示的字段,你能够选择你想查看的字段。
        举个例子,如果你只需要看名为'pungki'用户的信息,你可以使用下面的命令:
        $ watch -n 1 ‘ps -aux -U pungki u --sort -pmem, -pcpu | head 20’

    示例:

    ############################################################
    
    ps 命令常用用法(方便查看系统进程)
    1)ps a   显示现行终端机下的所有程序,包括其他用户的程序。
    2)ps -A  显示所有进程。
    3)ps c   列出程序时,显示每个程序真正的指令名称,而不包含路径,参数或常驻服务的标示。
    4)ps -e  此参数的效果和指定"A"参数相同。
    5)ps e   列出程序时,显示每个程序所使用的环境变量。
    6)ps f   用 ASCII 字符显示树状结构,表达程序间的相互关系。
    7)ps -H  显示树状结构,表示程序间的相互关系。
    8)ps -N  显示所有的程序,除了执行ps指令终端机下的程序之外。
    9)ps s   采用程序信号的格式显示程序状况。
    10)ps S  列出程序时,包括已中断的子程序资料。
    11)ps -t<终端机编号>  指定终端机编号,并列出属于该终端机的程序的状况。
    12)ps -u root  显示root用户信息
    13)ps x        显示所有程序,不以终端机来区分。
    
    ps -aux   最常用的方法,然后再利用一个管道符号导向到 grep 去查找特定的进程,
              然后再对特定的进程进行操作。
    ps aux    列出目前所有的正在内存当中的程序    
    	说明:
            USER:该 process 属于那个使用者账号的
            PID :该 process 的号码
            %CPU:该 process 使用掉的 CPU 资源百分比
            %MEM:该 process 所占用的物理内存百分比
            VSZ :该 process 使用掉的虚拟内存量 (Kbytes)
            RSS :该 process 占用的固定的内存量 (Kbytes)
            TTY :该 process 是在那个终端机上面运作,若与终端机无关则显示 ?,另外,tty1-tty6 
                  是本机上面的登入者程序,若为 pts/0 等等的,则表示为由网络连接进主机的程序。
            STAT:该程序目前的状态,主要的状态有
            R :该程序目前正在运作,或者是可被运作
            S :该程序目前正在睡眠当中 (可说是 idle 状态),但可被某些讯号 (signal) 唤醒。
            T :该程序目前正在侦测或者是停止了
            Z :该程序应该已经终止,但是其父程序却无法正常的终止他,造成 zombie (疆尸) 程序的状态
            START:该 process 被触发启动的时间
            TIME :该 process 实际使用 CPU 运作的时间
            COMMAND:该程序的实际指令
    
    ps -ef               显示所有进程信息,连同命令行
    ps -ef | grep ssh    ps 与grep 常用组合用法,查找特定进程
    
    ps -l   将目前属于您自己这次登入的 PID 与相关信息列示出来
            说明:
               	各相关信息的意义:
               	F      代表这个程序的旗标 (flag), 4 代表使用者为 super user
               	S      代表这个程序的状态 (STAT),关于各 STAT 的意义将在内文介绍
               	UID    程序被该 UID 所拥有
               	PID    就是这个程序的 ID !
               	PPID   则是其上级父程序的ID
               	C CPU  使用的资源百分比
               	PRI    这个是 Priority (优先执行序) 的缩写,详细后面介绍
               	NI     这个是 Nice 值,在下一小节我们会持续介绍
               	ADDR    这个是 kernel function,指出该程序在内存的那个部分。
                                             如果是个 running的程序,一般就是 "-"
               	SZ      使用掉的内存大小
               	WCHAN   目前这个程序是否正在运作当中,若为 - 表示正在运作
               	TTY     登入者的终端机位置
               	TIME    使用掉的 CPU 时间。
               	CMD     所下达的指令为何
            在预设的情况下, ps 仅会列出与目前所在的 bash shell 有关的 PID 而已,
            所以, 当我使用 ps -l 的时候,只有三个 PID。
    
    ps -axjf    列出类似程序树的程序显示
    ps aux | egrep '(cron|syslog)'    找出与 cron 与 syslog 这两个服务有关的 PID 号码
    ps -o pid,ppid,pgrp,session,tpgid,comm    输出指定的字段
    
    ############################################################
     
    注意:"ps aux" 和 "ps -aux" 不相同。
          例如:"-u" 用来显示该用户的进程。但是 "u" 则是显示详细的信息。
          BSD风格: 在 BSD 风格的语法选项前不带连字符。例如: ps aux 
          UNIX/LINUX的风格:在 linux 风格的语法选项前面有一个 "-"。例如: ps -ef 
          混合使用两种 Linux 系统上的语法风格是好事儿。例如:ps ax -f
    
    1、显示所有进程:
        $ ps ax 
        $ ps -ef
        "u"或者"-f"参数来显示所有进程的详细信息
        $ ps aux 
        $ ps -ef -f 
        注意:为什么用户列不显示我的用户名,但显示其他用户,如root、www等,对于所有的用户名(包括你)
             如果长度大于8个字符,然后ps将只显示UID,而不是用户名。
    
    2、根据用户显示进程:
        由进程的所属用户使用“-u”选项后跟用户名来显示。多个用户名可以提供以逗号分隔。
        $ ps -f -u www-data 
    
    3、通过名字和进程ID显示进程:
        通过名字或命令搜索进程,使用 “-C” 选项后面加搜索词。
        $ ps -C apache2 
    
    4、根据CPU或者内存进行排序:
        “–sort” 选项由逗号分隔的多个字段可以用指定。此外,该字段可以带有前缀“-”或“”符号,
        表示降序或升序分别排序。通过进程列表进行排序有很多参数,你可以检查手册页的完整列表。
        $ ps aux --sort=-pcpu,+pmem 
        $ ps aux --sort=-pcpu | head -5
    
    5、用树的风格显示进程的层次关系:
        许多进程实际上是一些父进程分的分支,知道这父子进程关系往往是有用的。
        在'–forest'选项将建立ASCII艺术风格层次的树视图。
        下面的命令将搜索进程名字为Apache2,形成一个树结构来显示详细的信息。
        $ ps -f --forest -C apache2 
    
    6、显示一个父进程的子进程:
        这里有一个例子显示所有apache进程的分支
        $ ps -o pid,uname,comm -C apache2 
    
    7、显示一个进程的线程:
        “-L”选项将显示进程的线程。它可以用来显示特定进程的所有线程或者所有进程。
        下面的命令将显示所有id为3150的进程所拥有的线程。
        $ ps -p 3150 -L 
    
    8、改变要显示的列:
        ps命令可以配置为只显示选中的列表。为了显示完整列表可以查看手册。
        下面的命令只显示PID,用户名,CPU,内存和命令的列。
        $ ps -e -o pid,uname,pcpu,pmem,comm 
        可以重命名列标签,相当的灵活。
        $ ps -e -o pid,uname=USERNAME,pcpu=CPU_USAGE,pmem,comm 
    
    9、显示进程运行的时间:
        表示进程的运行时间。对于运行的时间,列默认情况下是不显示的,可以使用“-O”选项查看。
        $ ps -e -o pid,comm,etime 
    
    10、把ps命令变成一个实时查看器:
        像往常一样,watch命令可以用来实时捕捉ps显示进程。简单的例子如下:
        $ watch -n 1 'ps -e -o pid,uname,cmd,pmem,pcpu --sort=-pmem,-pcpu | head -15' 

     

     

    ps aux 或 lax 输出的解释

    说明:

    ==================ps aux 或 lax 输出的解释============
    
    au(x) 输出格式 : 
    
    USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND
    
    USER:     进程所有者
    PID:      进程ID
    %CPU:     占用的 CPU 使用率
    %MEM:     占用的内存使用率
    VSZ:      占用的虚拟内存大小
    RSS:      占用的内存大小
    TTY:      终端的次要装置号码 (minor device number of tty)
    STAT:     进程状态:
    START:    启动进程的时间; 
    TIME:     进程消耗CPU的时间;
    COMMAND:  命令的名称和参数;

     

     

    进程 stat 状态

    说明:

    =========================================进程STAT状态==================================
    D     无法中断的休眠状态(通常 IO 的进程); 
    R     正在运行,在可中断队列中; 
    S     处于休眠状态,静止状态; 
    T     停止或被追踪,暂停执行; 
    W     进入内存交换(从内核2.6开始无效); 
    X     死掉的进程; 
    Z     僵尸进程不存在但暂时无法消除;
    W:    没有足够的记忆体分页可分配
    WCHAN 正在等待的进程资源;
    <:    高优先级进程
    N:    低优先序进程
    L:    有记忆体分页分配并锁在记忆体内 (即时系统或捱A I/O),即,有些页被锁进内存
    
    s     进程的领导者(在它之下有子进程); 
    l     多进程的(使用 CLONE_THREAD, 类似 NPTL pthreads); 
    +     位于后台的进程组;

     

     

    kill 终止进程

    说明:

    有十几种控制进程的方法,下面是一些常用的方法:
    kill -STOP [pid]
            发送 SIGSTOP (17,19,23)停止一个进程,而并不消灭这个进程。
    kill -CONT [pid] 
            发送 SIGCONT (19,18,25)重新开始一个停止的进程。
    kill -KILL [pid] 
            发送 SIGKILL (9)强迫进程立即停止,并且不实施清理操作。
    kill -9 -1 
            终止你拥有的全部进程。
    
    SIGKILL 和 SIGSTOP 信号不能被捕捉、封锁或者忽略,
    但是,其它的信号可以。所以这是你的终极武器。


     

     

     

     

    展开全文
  • Linux ps命令

    千次阅读 2019-06-13 09:21:55
    一、ps命令 ps命令用于报告当前系统的进程状态。可以搭配kill指令随时中断、删除不必要的程序。ps命令是最基本同时也是非常强大的进程查看命令,使用该命令可以确定有哪些进程正在运行和运行的状态、进程是否结束、...

    一、ps命令

    ps命令用于报告当前系统的进程状态。可以搭配kill指令随时中断、删除不必要的程序。ps命令是最基本同时也是非常强大的进程查看命令,使用该命令可以确定有哪些进程正在运行和运行的状态、进程是否结束、进程有没有僵死、哪些进程占用了过多的资源等等,总之大部分信息都是可以通过执行该命令得到的。

    1.1 语法

    ps(选项)
    

    1.2 选项

    选项 描述
    -a 显示所有终端机下执行的程序,除了阶段作业领导者之外。
    a 显示现行终端机下的所有程序,包括其他用户的程序。
    -A 显示所有程序。
    -c 显示CLS和PRI栏位。
    c 列出程序时,显示每个程序真正的指令名称,而不包含路径,选项或常驻服务的标示。
    -C<指令名称> 指定执行指令的名称,并列出该指令的程序的状况。
    -d 显示所有程序,但不包括阶段作业领导者的程序。
    -e 此选项的效果和指定"A"选项相同。
    e 列出程序时,显示每个程序所使用的环境变量。
    -f 显示UID,PPIP,C与STIME栏位。
    f 用ASCII字符显示树状结构,表达程序间的相互关系。
    -g<群组名称> 此选项的效果和指定"-G"选项相同,当亦能使用阶段作业领导者的名称来指定。
    g 显示现行终端机下的所有程序,包括群组领导者的程序。
    -G<群组识别码> 列出属于该群组的程序的状况,也可使用群组名称来指定。
    h 不显示标题列。
    -H 显示树状结构,表示程序间的相互关系。
    -j或j 采用工作控制的格式显示程序状况。
    -l或l 采用详细的格式来显示程序状况。
    L 列出栏位的相关信息。
    -m或m 显示所有的执行绪。
    n 以数字来表示USER和WCHAN栏位。
    -N 显示所有的程序,除了执行ps指令终端机下的程序之外。
    -p<程序识别码> 指定程序识别码,并列出该程序的状况。
    p<程序识别码> 此选项的效果和指定"-p"选项相同,只在列表格式方面稍有差异。
    r 只列出现行终端机正在执行中的程序。
    -s<阶段作业> 指定阶段作业的程序识别码,并列出隶属该阶段作业的程序的状况。
    s 采用程序信号的格式显示程序状况。
    S 列出程序时,包括已中断的子程序资料。
    -t<终端机编号> 指定终端机编号,并列出属于该终端机的程序的状况。
    t<终端机编号> 此选项的效果和指定"-t"选项相同,只在列表格式方面稍有差异。
    -T 显示现行终端机下的所有程序。
    -u<用户识别码> 此选项的效果和指定"-U"选项相同。
    u 以用户为主的格式来显示程序状况。
    -U<用户识别码> 列出属于该用户的程序的状况,也可使用用户名称来指定。
    U<用户名称> 列出属于该用户的程序的状况。
    v 采用虚拟内存的格式显示程序状况。
    -V或V 显示版本信息。
    -w或w 采用宽阔的格式来显示程序状况。
    x 显示所有程序,不以终端机来区分。
    X 采用旧式的Linux i386登陆格式显示程序状况。
    -y 配合选项"-l"使用时,不显示F(flag)栏位,并以RSS栏位取代ADDR栏位 。
    -<程序识别码> 此选项的效果和指定"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<用户识别码> 此选项的效果和指定"-U"选项相同。
    –version 此选项的效果和指定"-V"选项相同。
    –widty<每列字符数> 此选项的效果和指定"-cols"选项相同。

    二、使用场景

    ps -ef #显示所有当前进程
    ps aux #显示所有当前进程
    ps -ax #显示所有当前进程
    ps -u pungki #根据用户过滤进程
    ps -aux --sort -pcpu | less #根据 CPU 使用来升序排序
    ps -aux --sort -pmem | less #根据用户过滤进程
    ps -aux --sort -pcpu,+pmem | head -n 10 #查询全10个使用cpu和内存最高的应用
    ps -C getty #通过进程名和PID过滤
    ps -f -C getty #带格式显示的,通过进程名和PID过滤
    ps -L 1213 #根据线程来过滤进程
    ps -axjf(或pstree) #树形显示进程
    ps -eo pid,user,args # 显示安全信息
    ps -U root -u root u #格式化输出 root 用户(真实的或有效的UID)创建的进程
     
    
    展开全文
  • ps----查看完整的命令行

    万次阅读 2016-12-22 16:29:52
    ps -ax > tmp.txt ps -ef > tmp.txt 重定向就可以了。
  • ps命令

    2020-10-17 10:00:13
    ps:报告当前进程的快照。 简介: ps [参数] **说明:**ps 显示有关所选活动进程的信息。如果要重复更新所选内容和显示的信息,请改用top 参数格式 1、UNIX选项,可以分组,前面必须有破折号。 2、BSD选项,可以分组,...
  • PS命令大全

    千次阅读 2018-09-20 14:27:15
    ps命令列出的是当前那些进程的快照,就是执行ps命令的那个时刻的那些进程,如果想要动态的显示进程信息,就可以使用top命令。要对进程进行监测和控制,首先必须要了解当前进程的情况,也就是需要查看当前进程,而 ps...
  • ps命令详解

    千次阅读 2019-01-09 12:52:32
    此文档描述标准的 AIX® ps 命令以及 System V 版本的 ps 命令。 语法 X/Open 标准 ps [ -A ] [ -M ] [ -N ] [ -Z ] [ -a ] [ -d ] [ -e ] [ -f ] [ -k ] [ -l ] [ -F format] [ -o Format ] [ -c Clist ] [ -G ...
  • ps命令解析

    千次阅读 2018-08-19 11:07:47
    ps命令用于报告当前系统的进程状态。可以搭配kill指令随时中断、删除不必要的程序。ps命令是最基本同时也是非常强大的进程查看命令,使用该命令可以确定有哪些进程正在运行和运行的状态、进程是否结束、进程有没有...
  • Linux ps命令详细参数

    千次阅读 2019-06-19 15:16:36
    ps命令列出的是当前那些进程的快照,就是执行ps命令的那个时刻的那些进程,如果想要动态的显示进程信息,就可以使用top命令。要对进程进行监测和控制,首先必须要了解当前进程的情况,也就是需要查看当前进程,而 ps...
  • linux上ps命令详解

    千次阅读 2018-07-29 08:44:10
    linux上进程有5种状态:&amp;nbsp;1. 运行(正在运行或在运行队列中等待) 2. 中断(休眠中, 受阻, 在等待某个条件的形成或接受到信号) 3. 不可中断(收到信号不唤醒和不可运行, 进程必须等待直到有中断发生) 4....
  • ps命令输出详解

    千次阅读 2017-11-26 19:49:56
    Linux中的ps命令是Process Status的缩写。ps命令用来列出系统中当前运行的那些进程。ps命令列出的是当前那些进程的快照,就是执行ps命令的那个时刻的那些进程,如果想要动态的显示进程信息,就可以使用top命令。 ...
  • 使用linux操作系统,难免遇到一些软件"卡壳"的问题,这时就需要使用linux下强大的kill命令来结束相关进程。这在linux系统下是极其容易的事情,你只需要kill xxx即可,这里xxx代表与此软件运行相关...
  • Linux中ps命令介绍

    千次阅读 2017-01-17 08:53:01
    Linux中的ps命令是Process Status的缩写。ps命令用来列出系统中当前...ps命令列出的是当前那些进程的快照,就是执行ps命令的那个时刻的那些进程,如果想要动态的显示进程信息,就可以使用top命令。 要对进程
  • C语言实现ps命令

    千次阅读 2015-12-05 14:31:41
    在学习Unix/Linux编程实践教程时,总是感觉学不到东西,过后就没啥印象了,经过向师兄请教后,还是由于自己动手练习的太少,没能够深入理解,于是让我编写一个简单的ps命令。开始很是头大,经过自己的不断努力,终于...
  • Linux下ps命令详解

    万次阅读 2015-07-10 19:03:49
    有时候系统管理员可能只关心现在系统中运行着哪些程序,而不想知道有哪些进程在...要对进程进行监测和控制,首先必须要了解当前进程的情况,也就是需要查看当前进程,而 ps 命令就是最基本同时也是非常强大的进程查看命
  • linux 查看删除进程 ps命令详解

    千次阅读 2016-04-24 00:37:57
    ps命令详解 名称:ps 使用权限:所有使用者 使用方式:ps [options] [--help] 说明:显示瞬间行程 (process) 的动态 参数:ps的参数非常多, 在此仅列出几个常用的参数并大略介绍含义 -A 列出所有的...
  • shell中的ps命令详解

    万次阅读 2017-05-21 23:50:34
    ps命令列出的是当前那些进程的快照,就是执行ps命令的那个时刻的那些进程,如果想要动态的显示进程信息,就可以使用top命令。要对进程进行监测和控制,首先必须要了解当前进程的情况,也就是需要查看当前进程,而 ps...
  • Linux系列命令——ps命令详解

    千次阅读 2019-05-15 17:18:18
    (一)ps命令 (1)功能: ps是linux下最常用的也是非常强大的进程查看命令,常配合管道命令 | 和查找命令 grep 同时执行来查看特定进程。 (2)进程状态: R 运行,正在运行或在运行队列中等待 S 中断,休眠中,...
1 2 3 4 5 ... 20
收藏数 444,214
精华内容 177,685
关键字:

ps命令