• 【Linux】ps命令


    ps命令是基础的监控命令,ps命令好比工具中的瑞士军刀,它能输出运行在系统上的所有程序的许多信息。

    参数

    • -A 显示所有进程(与-e效果一样)
    • -a 显示除控制进程与无端进程外的所有进程
    • -N 显示与指定参数不符的所有进程
    • -d 显示除控制进程外的所有进程
    • -C 显示包含在cmdlist列表中的进程
    • -G 显示组ID在grplist列表中的进程
    • -U 显示属主的用户ID在uerlist列表中的进程
    • -g 显示会话或组ID在grplist列表中的进程
    • -p 显示PID在pidlist列表中的进程
    • -s 显示会话ID在sesslist列表中的进程
    • -t 显示终端ID在ttylist列表中的进程
    • -u 显示有效用户ID在userlist列表中的进程
    • -F 显示更多额外输出(相对于-f参数而言)
    • -O 显示默认输出以外以及format列表指定的特定列
    • -M 显示进程的安全信息
    • -c 显示进程的额外调度信息
    • -f 显示完整格式的输出
    • -j 显示任务信息
    • -l 显示长列表
    • -o 仅显示由format指定的列
    • -y 不要显示进程标记
    • -Z 显示安全标签信息
    • -H 用层级格式来显示信息
    • -n 定义WCHAN列显示的值
    • -w 采用宽输出模式,不限宽度显示
    • -L 显示进程中的线程
    • -V 显示ps的版本号

    常用组合

    • ps aux  列出目前所有的正在内存当中的程序

               a:所有与终端相关的进程

               u:所有与终端无关的进程

               x:以用户为中心组织进程状态信息显示


    • ps –ef 显示所有信息,连同命令行

               -e:显示所有进程

               -f:显示完整格式的进程信息

    输出信息解释


    Linux:/usr/local/sbin # ps -ef
    UID        PID  PPID  C STIME TTY          TIME CMD
    root         1     0  0 Dec17 ?        00:00:02 init [5] 
    root         2     0  0 Dec17 ?        00:00:00 [kthreadd]
    root         3     2  0 Dec17 ?        00:00:01 [ksoftirqd/0]
    root         5     2  0 Dec17 ?        00:00:02 [kworker/u:0]
    root         6     2  0 Dec17 ?        00:00:00 [migration/0]
    root         7     2  0 Dec17 ?        00:00:00 [watchdog/0]

    • UID      启动这些进程的用户
    • PID      进程ID
    • PPID     父进程ID
    • C        进程CPU中的利用率
    • STIME    进程启动时的系统时间
    • TTY      进程启动时的终端设备
    • TIME     进行进程需要的累计CPU时间
    • CMD      启动的程序名称


    如果想要查看更多的输出信息

    Linux:/usr/local/sbin # ps -l
    F S   UID   PID  PPID  C PRI  NI ADDR SZ WCHAN  TTY          TIME CMD
    4 S     0 19366 19363  0  80   0 -  6459 wait   pts/2    00:00:12 bash
    4 R     0 27857 19366 99  80   0 -  1182 -      pts/2    00:00:00 ps

    • F      内核分配给进程的系统标记
    • S      进程的状态(O代表正在运行; S代表在睡眠; R代表可运行 正等待运行;Z代表僵化,进程已结束但父进程不存在;T代表停止)
    • PRI    进程的优先级
    • NI     谦让度值用来参与决定优先级
    • ADDR   进程的内存地址
    • SZ     假如进程被换出,所需交换空间的大致大小
    • WCHAN  进程休眠的内核函数的地址

    实际案例

    1.显示所有进程信息

    Linux:/usr/local/sbin # ps -A
       PID TTY          TIME CMD
         1 ?        00:00:02 init
         2 ?        00:00:00 kthreadd
         3 ?        00:00:02 ksoftirqd/0
         5 ?        00:00:02 kworker/u:0
         6 ?        00:00:00 migration/0
         7 ?        00:00:00 watchdog/0
         8 ?        00:00:00 cpuset
         9 ?        00:00:00 khelper

    2.显示指定用户信息

    Linux:/usr/local/sbin # ps -u root
       PID TTY          TIME CMD
         1 ?        00:00:02 init
         2 ?        00:00:00 kthreadd
         3 ?        00:00:02 ksoftirqd/0
         5 ?        00:00:02 kworker/u:0
         6 ?        00:00:00 migration/0
         7 ?        00:00:00 watchdog/0
         8 ?        00:00:00 cpuset
         9 ?        00:00:00 khelper
        10 ?        00:00:00 netns
        11 ?        00:00:00 sync_supers
        12 ?        00:00:00 bdi-default

    3.查找特定进程

    Linux:/usr/local/sbin # ps -ef|grep sshd
    root      3611     1  0 Dec17 ?        00:00:00 /usr/sbin/sshd -o PidFile=/var/run/sshd.init.pid
    root     19363  3611  0 Dec17 ?        00:00:03 sshd: root@pts/2                                  
    root     28205 19366 99 03:04 pts/2    00:00:00 grep sshd


  • 相关阅读:
    vim配置
    mongodb的dockercompose.yml
    上三角 css
    简单的散列函数djb2,sdbm,lose lose
    Vscode中前端比较好用的插件
    git rebase
    lineargradient mixin
    Nginx配置BrowserRouter跟随reactrouter
    Qt:no matching function for call to (类名)::connect()的错误原因总结
    Qt pro文件里如何判断系统是32位或64位
  • 原文地址:https://www.cnblogs.com/OliverQin/p/10137804.html
Copyright © 2020-2023  润新知