美文网首页
Linux命令之ps(17)

Linux命令之ps(17)

作者: 3d0829501918 | 来源:发表于2022-11-05 21:04 被阅读0次

    ps命令常用于:
    1、显示所有进程信息
    2、显示指定用户相关进程信息
    3、显示所有进程信息,连带命令行
    4、ps 与grep 常用组合用法,查找特定进程
    5、搭配kill指令随时中断、删除不必要的程序

    1、功能说明

    用于显示当前系统的进程状态

    2、语法格式

    ps [选项]

    3、选项解释

     a   显示所有程序,包括其他用户的程序
     -a  显示所有终端机下执行的程序
     -A  显示所有程序
     c   显示每个程序真正的指令名称
     -c  显示CLS和PRI栏位。
     -C<指令名称>  指定执行指令的名称,并列出该指令的程序的状况。
     e   显示环境变量
     -e  显示所有进程
     f   显示程序间的关系
     -f  显示UID,PPIP,C与STIME栏位
     -H  显示树状结构
     r   显示当前终端的进程
     T   显示当前终端的所有程序
     -l  采用详细的格式来显示程序状况
     L   列出栏位的相关信息
     -o  显示与指定关键字的空格或逗号分隔列表相关的信息。多个关键字也可以以多个-o选项的形式给出
     u   显示进程的用户信息
     -u  显示指定用户相关的进程信息
     -x  显示没有控制终端的进程,同时显示各个命令的具体路径
     x   显示与终端无关的所有进程 
     -au    显示较详细的资讯
     -aux   显示所有包含其他使用者的行程
     -ef    显示所有进程信息,连同命令行
     ...
    

    4、参考实例

    • 显示所有进程信息
    ps -A
    
    • 显示指定用户信息
    [root@xiaonong ~]$ ps -u root
    PID TTY      TIME CMD
    1   ?        04:17:59 systemd
    2   ?        00:00:47 kthreadd
    4   ?        00:00:00 kworker/0:0H
    6   ?        01:28:46 ksoftirqd/0
    7   ?        00:02:44 migration/0
    8   ?        00:00:00 rcu_bh
    9   ?        1-09:22:01 rcu_sched
    
    • 显示所有进程信息,连同命令行
    ps -ef   
    当数量过多时,可搭配more分页
    
    • 查看特定进程
    ps -ef | grep java
    ps -aux | grep java
    
    • 通过名字或命令搜索进程
    [root@xiaonong ~]$ ps -C nginx
    PID  TTY       TIME CMD
    3100  ?        00:03:17 nginx
    8008  ?        00:36:25 nginx
    20745 ?        00:57:37 nginx
    25055 ?        00:00:01 nginx
    31771 ?        02:01:10 nginx
    
    • 输出指定的字段
    [root@xiaonong ~]$ ps -o pid,ppid,pgrp,session,user,time
    PID  PPID  PGRP  SESS USER         TIME
    21931 21930 21931 21931 root   00:00:00
    29137 21931 29137 21931 root   00:00:00
    29138 21931 29137 21931 root   00:00:00
    
    • 把所有进程显示出来,并输出到test.txt文件
    ps -aux > test.txt
    
    • 查看线程数
    [root@xiaonong ~]$ ps -efL
    UID        PID  PPID   LWP  C NLWP STIME TTY          TIME CMD
    root         1     0     1  0    1  2020 ?        04:17:59 /usr/lib/systemd/systemd --system --deserialize 21
    root         2     0     2  0    1  2020 ?        00:00:47 [kthreadd]
    root         4     2     4  0    1  2020 ?        00:00:00 [kworker/0:0H]
    root         6     2     6  0    1  2020 ?        01:28:46 [ksoftirqd/0]
    root         7     2     7  0    1  2020 ?        00:02:44 [migration/0]
    

    5、拓展命令

    1、杀死特定程序
      ps -aux | grep java | awk '{print $2}' | xargs kill -9
    
    2、查看cpu占用率前5的进程
      ps -aux --sort=-pcpu|head -5
    
    3、CPU或者内存进行排序,-降序,+升序
      ps aux --sort=-pcpu,+pmem
    
    4、通过进程id获取服务名称
      ps -o command -p 88888 | sed -n 2p
    
    5、按内存资源的使用量对进程进行排序
      ps aux | sort -rnk 4
      ps -e -o "%C : %p :%z : %a"|sort -k5 -nr
    
    6、查看进程的PID、名称以及CPU 占用率
      ps axo pid,comm,pcpu
    
    7、找出与job、job2服务有关的PID号码
      ps aux | egrep '(job|job2)'
    
    8、显示一个父进程的子进程
      ps -o pid,uname,comm -C nginx
    

    6、补充说明

    UID    此进程的拥有者
    PID    进程的标识号
    PPID   进程的父进程的标识号
    C      CPU使用的资源百分比
    STIME  进程开始的时间
    TTY    该进程是在哪个终端上运作,与终端无关的显示问号"?"
    TMIE   进程使用CPU总的时间
    CMD    正在执行的命令行
    USER   该进程所属用户
    %CPU   该进程所用掉的CPU资源百分比
    %MEM   该进程所占用的物理内存百分比
    VSZ    该进程使用掉的虚拟内存量 (Kbytes)
    RSS    该进程占用的固定的内存量 (Kbytes)
    STAT   进程目前的状态:
      R  正在运行或者是可被运行
      S  该程序目前正在睡眠当中,但可被某些讯号 (signal) 唤醒
      D  不可中断睡眠
      T  正在侦查或者是停止了
      Z  僵尸进程
      <  优先级高的进程
      N  优先级较低的进程
      L  有些页被锁进内存
      s  进程的领导者
      l  多线程进程
      +  位于后台的进程组
    START  该进程被触发启动的时间
    

    相关文章

      网友评论

          本文标题:Linux命令之ps(17)

          本文链接:https://www.haomeiwen.com/subject/tffmtdtx.html