整理ps使用笔记

2023-05-16

尽管使用ps只需要记住常用命令: ps aux ps -ef
并且理解输出的列含义即可

但不理解命令的含义,用起来总有种空虚感

下面研究一下

文章目录

  • 介绍
    • BSD
      • 默认
      • simple
        • a
        • x
        • T、r
      • list
      • output
  • 总结

介绍

造成ps命令参数混乱的原因是它兼容了三种命令行规范:

  • BSD —— <option>
  • UNIX —— -<option>
  • GNU —— --<option>

通过help命令,可以看到ps似乎对于options做了分类

$ ps --help

Usage:
 ps [options]

 Try 'ps --help <simple|list|output|threads|misc|all>'
  or 'ps --help <s|l|o|t|m|a>'
 for additional help text.

For more details see ps(1).

BSD

那么就从BSD开始,按分类看参数作用

默认

默认:只看当前终端所有进程

$ sleep 99999999 &
[1] 42621
$ ps
    PID TTY          TIME CMD
  34397 pts/5    00:00:00 bash
  42621 pts/5    00:00:00 sleep
  42622 pts/5    00:00:00 ps

simple

$ ps --help simple

Usage:
 ps [options]

Basic options:
 -A, -e               all processes
 -a                   all with tty, except session leaders
  a                   all with tty, including other users
 -d                   all except session leaders
 -N, --deselect       negate selection
  r                   only running processes
  T                   all processes on this terminal
  x                   processes without controlling ttys

For more details see ps(1).

a

a: 看所有终端(包括其他用户)的所有进程(tty only)

其中,多了一些列

  • COMMAND —— 显示中多了参数
  • STAT —— 进程状态 R=运行中S=等待s 表示管理着会话+ 表示是前台进程(可接受前台输入)
$ ps a
    PID TTY      STAT   TIME COMMAND
    985 ttyS0    Ss+    0:00 /sbin/agetty -o -p -- \u --keep-baud 115200,38400,9600 ttyS0 vt220
    986 tty1     Ss+    0:00 /sbin/agetty -o -p -- \u --noclear tty1 linux
  13520 pts/0    Ss     0:00 -bash
  13582 pts/0    S      0:00 sleep 9999999
  13620 pts/0    R+     0:00 ps a

$ ps au
USER         PID %CPU %MEM    VSZ   RSS TTY      STAT START   TIME COMMAND
root         985  0.0  0.1 225432  2144 ttyS0    Ss+  Mar26   0:00 /sbin/agetty -o -p -- \u --keep-bau
root         986  0.0  0.0 225792  1448 tty1     Ss+  Mar26   0:00 /sbin/agetty -o -p -- \u --noclear
student    13520  0.0  0.2 234216  5104 pts/0    Ss   04:49   0:00 -bash
student    13582  0.0  0.0 217044   728 pts/0    S    04:58   0:00 sleep 9999999
student    13622  0.0  0.2 267612  3892 pts/0    R+   05:38   0:00 ps au

x

显示当前用户的进程

其中 tty=? 的是没有终端的进程(真正的后台进程)

$ ps
    PID TTY          TIME CMD
  13520 pts/0    00:00:00 bash
  13582 pts/0    00:00:00 sleep
  13643 pts/0    00:00:00 bash
  14001 pts/0    00:00:00 ps
$ ps x
    PID TTY      STAT   TIME COMMAND
  13508 ?        Ss     0:00 /usr/lib/systemd/systemd --user
  13513 ?        S      0:00 (sd-pam)
  13519 ?        S      0:03 sshd: student@pts/0
  13520 pts/0    Ss     0:00 -bash
  13582 pts/0    S      0:00 sleep 9999999
  13643 pts/0    S      0:00 bash
  14002 pts/0    R+     0:00 ps x
$ ps xu
USER         PID %CPU %MEM    VSZ   RSS TTY      STAT START   TIME COMMAND
student    13508  0.0  0.5  93740  9524 ?        Ss   04:49   0:00 /usr/lib/systemd/systemd --user
student    13513  0.0  0.2 253164  4992 ?        S    04:49   0:00 (sd-pam)
student    13519  0.0  0.3 161876  6656 ?        R    04:49   0:03 sshd: student@pts/0
student    13520  0.0  0.2 234216  5108 pts/0    Ss   04:49   0:00 -bash
student    13582  0.0  0.0 217044   728 pts/0    S    04:58   0:00 sleep 9999999
student    13643  0.0  0.2 234376  5472 pts/0    S    05:49   0:00 bash
student    14003  0.0  0.2 267612  3792 pts/0    R+   06:36   0:00 ps xu
$ ps xul
error: conflicting format options
$ ps xl
F   UID     PID    PPID PRI  NI    VSZ   RSS WCHAN  STAT TTY        TIME COMMAND
4  1000   13508       1  20   0  93740  9524 do_epo Ss   ?          0:00 /usr/lib/systemd/systemd --us
5  1000   13513   13508  20   0 253164  4992 -      S    ?          0:00 (sd-pam)
5  1000   13519   13503  20   0 161876  6656 -      S    ?          0:03 sshd: student@pts/0
0  1000   13520   13519  20   0 234216  5108 -      Ss   pts/0      0:00 -bash
0  1000   13582   13520  20   0 217044   728 hrtime S    pts/0      0:00 sleep 9999999
0  1000   13643   13520  20   0 234376  5472 -      S    pts/0      0:00 bash
0  1000   14005   13643  20   0 255196  2108 -      R+   pts/0      0:00 ps xl
$ ps xlf
F   UID     PID    PPID PRI  NI    VSZ   RSS WCHAN  STAT TTY        TIME COMMAND
5  1000   13519   13503  20   0 161876  6656 -      S    ?          0:03 sshd: student@pts/0
0  1000   13520   13519  20   0 234216  5108 -      Ss   pts/0      0:00  \_ -bash
0  1000   13582   13520  20   0 217044   728 hrtime S    pts/0      0:00      \_ sleep 9999999
0  1000   13643   13520  20   0 234376  5472 -      S    pts/0      0:00      \_ bash
0  1000   14006   13643  20   0 255196  2076 -      R+   pts/0      0:00          \_ ps xlf
4  1000   13508       1  20   0  93740  9524 do_epo Ss   ?          0:00 /usr/lib/systemd/systemd --us
5  1000   13513   13508  20   0 253164  4992 -      S    ?          0:00  \_ (sd-pam)

T、r

T: 显示当前终端的所有进程。
这输出结果和默认是一样的

$ ps T
    PID TTY      STAT   TIME COMMAND
  13520 pts/0    Ss     0:00 -bash
  13582 pts/0    S      0:00 sleep 9999999
  13634 pts/0    R+     0:00 ps T
$ ps t
    PID TTY      STAT   TIME COMMAND
  13520 pts/0    Ss     0:00 -bash
  13582 pts/0    S      0:00 sleep 9999999
  13635 pts/0    R+     0:00 ps t

r: 正在运行状态的进程。可以和a一起使用

$ ps r
    PID TTY      STAT   TIME COMMAND
  13975 pts/0    R+     0:00 ps r
$ cat testscript
#!/bin/bash
while true ; do
        echo "$@" >> test_output
#sleep 1
done
$ ~/testscript h &
[1] 13981
$ ps r
    PID TTY      STAT   TIME COMMAND
  13981 pts/0    R      0:01 /bin/bash /home/student/testscript h
  13982 pts/0    R+     0:00 ps r
$ ps ar
    PID TTY      STAT   TIME COMMAND
  13981 pts/0    R      0:07 /bin/bash /home/student/testscript h
  13984 pts/0    R+     0:00 ps ar
$ kill 13981
$ ps r
    PID TTY      STAT   TIME COMMAND
  13985 pts/0    R+     0:00 ps r
[1]+  Terminated              ~/testscript h

list

可以指定列出的范围
U <UID>t <tty>p <PID>q <PID>

$ ps --help list

Usage:
 ps [options]

Selection by list:
 -C <command>         command name
 -G, --Group <GID>    real group id or name
 -g, --group <group>  session or effective group name
 -p, p, --pid <PID>   process id
        --ppid <PID>  parent process id
 -q, q, --quick-pid <PID>
                      process id (quick mode)
 -s, --sid <session>  session id
 -t, t, --tty <tty>   terminal
 -u, U, --user <UID>  effective user id or name
 -U, --User <UID>     real user id or name

  The selection options take as their argument either:
    a comma-separated list e.g. '-u root,nobody' or
    a blank-separated list e.g. '-p 123 4567'

For more details see ps(1).

output

输出格式

$ ps --help output

Usage:
 ps [options]

Output formats:
 -F                   extra full
 -f                   full-format, including command lines
  f, --forest         ascii art process tree
 -H                   show process hierarchy
 -j                   jobs format
  j                   BSD job control format
 -l                   long format
  l                   BSD long format
 -M, Z                add security data (for SELinux)
 -O <format>          preloaded with default columns
  O <format>          as -O, with BSD personality
 -o, o, --format <format>
                      user-defined format
  s                   signal format
  u                   user-oriented format
  v                   virtual memory format
  X                   register format
 -y                   do not show flags, show rss vs. addr (used with -l)
     --context        display security context (for SELinux)
     --headers        repeat header lines, one per page
     --no-headers     do not print header at all
     --cols, --columns, --width <num>
                      set screen width
     --rows, --lines <num>
                      set screen height

For more details see ps(1).

对于BSD来说,有以下输出格式

  • f —— 树形关系展示(❗可以和下面格式一起使用)
    $ ps f
        PID TTY      STAT   TIME COMMAND
      13520 pts/0    Ss     0:00 -bash
      13582 pts/0    S      0:00  \_ sleep 9999999
      13643 pts/0    S      0:00  \_ bash
      14088 pts/0    R+     0:00      \_ ps f
    
  • j —— job控制格式
    $ ps j
       PPID     PID    PGID     SID TTY        TPGID STAT   UID   TIME COMMAND
      13519   13520   13520   13520 pts/0      14089 Ss    1000   0:00 -bash
      13520   13582   13582   13520 pts/0      14089 S     1000   0:00 sleep 9999999
      13520   13643   13643   13520 pts/0      14089 S     1000   0:00 bash
      13643   14089   14089   13520 pts/0      14089 R+    1000   0:00 ps j
    $ ps jf
       PPID     PID    PGID     SID TTY        TPGID STAT   UID   TIME COMMAND
      13519   13520   13520   13520 pts/0      14090 Ss    1000   0:00 -bash
      13520   13582   13582   13520 pts/0      14090 S     1000   0:00  \_ sleep 9999999
      13520   13643   13643   13520 pts/0      14090 S     1000   0:00  \_ bash
      13643   14090   14090   13520 pts/0      14090 R+    1000   0:00      \_ ps jf
    
  • l —— BSD long格式
    $ ps l
    F   UID     PID    PPID PRI  NI    VSZ   RSS WCHAN  STAT TTY        TIME COMMAND
    0  1000   13520   13519  20   0 234216  5108 -      Ss   pts/0      0:00 -bash
    0  1000   13582   13520  20   0 217044   728 hrtime S    pts/0      0:00 sleep 9999999
    0  1000   13643   13520  20   0 234376  5472 -      S    pts/0      0:00 bash
    0  1000   14094   13643  20   0 255196  2072 -      R+   pts/0      0:00 ps l
    
  • s —— signal格式
    $ ps s
      UID     PID   PENDING   BLOCKED   IGNORED    CAUGHT STAT TTY        TIME COMMAND
     1000   13520  00000000  00010000  00380004  4b817efb Ss   pts/0      0:00 -bash
     1000   13582  00000000  00000000  00000000  00000000 S    pts/0      0:00 sleep 9999999
     1000   13643  00000000  00010000  00380004  4b817efb S    pts/0      0:00 bash
     1000   14095  00000000  00000000  00000000 <f3d1fef9 R+   pts/0      0:00 ps s
    
  • u —— 面向用户的格式(常用)
    $ ps u
    USER         PID %CPU %MEM    VSZ   RSS TTY      STAT START   TIME COMMAND
    student    13520  0.0  0.2 234216  5108 pts/0    Ss   04:49   0:00 -bash
    student    13582  0.0  0.0 217044   728 pts/0    S    04:58   0:00 sleep 9999999
    student    13643  0.0  0.2 234376  5472 pts/0    S    05:49   0:00 bash
    student    14096  0.0  0.2 267612  3888 pts/0    R+   07:21   0:00 ps u
    $ ps uf
    USER         PID %CPU %MEM    VSZ   RSS TTY      STAT START   TIME COMMAND
    student    13520  0.0  0.2 234216  5108 pts/0    Ss   04:49   0:00 -bash
    student    13582  0.0  0.0 217044   728 pts/0    S    04:58   0:00  \_ sleep 9999999
    student    13643  0.0  0.2 234376  5472 pts/0    S    05:49   0:00  \_ bash
    student    14098  0.0  0.2 267612  3924 pts/0    R+   07:22   0:00      \_ ps uf
    
  • v —— virtual memory格式
    $ ps v
        PID TTY      STAT   TIME  MAJFL   TRS   DRS   RSS %MEM COMMAND
      13520 pts/0    Ss     0:00      0  1053 233162 5108  0.2 -bash
      13582 pts/0    S      0:00      0    27 217016  728  0.0 sleep 9999999
      13643 pts/0    S      0:00      0  1053 233322 5472  0.2 bash
      14099 pts/0    R+     0:00      0   110 255085 2008  0.1 ps v
    
  • X —— register(寄存器)格式
    $ ps X
        PID           STACKP              ESP              EIP TMOUT ALARM STAT TTY        TIME COMMAND
      13520 00007ffc42cfeda0 0000000000000000 0000000000000000     -     - Ss   pts/0      0:00 -bash
      13582 00007fff5c7d2050 0000000000000000 0000000000000000     -     - S    pts/0      0:00 sleep 9999
      13643 00007ffc2b727060 0000000000000000 0000000000000000     -     - S    pts/0      0:00 bash
      14101 00007ffcb3cb4130 0000000000000000 0000000000000000     -     - R+   pts/0      0:00 ps X
    

总结

  • BSD
    • 注意分层
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

整理ps使用笔记 的相关文章

  • pandas使用笔记

    DataFrame使用笔记 dates 61 pd date range span class hljs string 39 20160728 39 span periods 61 span class hljs number 6 span
  • Libsvm使用笔记【matlab】

    根据以下教程配置 xff1a 1038条消息 LIBSVM 繁拾简忆的博客 CSDN博客 https blog csdn net u014772862 category 6280683 html 目录 xff1a 一 libsvm使用 二
  • http隧道Neo-reGeorg使用笔记

    项目简介 https github com L codes Neo reGeorg Neo reGeorg 是一个旨在积极重构 reGeorg 的项目 xff0c 目的是 xff1a 提高 tunnel 连接安全性 提高可用性 xff0c
  • Docker使用笔记

    软件安装 https docs docker com engine install ubuntu 下载镜像 span class token function docker span pull ubuntu 创建一个CONTAINER 示例
  • netperf使用笔记

    一 netperf是什么 netperf是一个基于client server模式的网络测试工具 xff0c 可以测量TCP和UDP传输的吞吐量 时延 CPU占用率等性能参数 它可以测试以下几种模式的TCP核UDP网络性能 xff1a TCP
  • MacBook M12020使用笔记

    1 安装软件 1 1 安装brew 安装brew xff08 知乎高手写的脚本 xff0c 可以选择国内镜像源 xff09 bin zsh c span class token string 34 span class token vari
  • Protobuf3 使用笔记

    一 和protobuf2比 xff0c 更新的内容 xff1a 1 字段前取消了required和optional两个关键字 xff0c 目前可用的只有repeated关键字 2 不可以现设置默认值了 a string默认为空串 b 枚举默
  • CodeMirror使用笔记

    最近因工作需要 xff0c 在项目中使用了CodeMirror代码编辑器 xff0c 以下是使用笔记 首先 xff0c 看下最终的效果 引入基本的需要资源 lt script src 61 34 lt 61 request getConte
  • ROS使用笔记

    文章目录 1 提取bag中固定topic或者固定时间段数据2 提取pcd数据3 记录数据4 service amp action5 roslaunch文件6 自定义消息7 from raw velodyne packets to velod
  • CodeWarrior 10.7 使用笔记

    1 Code Warrior 10 7 IDE 工程创建 利用工程向导快速创建工程 1 1 点击菜单File BareBoard Project 裸板工程 1 2 设置工程名称 xff08 默认将该工程创建在当前工作空间 xff08 wor
  • Jetson AGX Xavier使用笔记

    由于毕设的缘故 xff0c 从业无人机相关 xff0c 嵌入式GPU首选Xavier xff0c 撰文记录一下刷机心得 xff0c 欢迎小伙伴们热烈讨论 xff0c 共同学习 1 刷机 网上教程很多 xff0c 但我依然刷了很久才搞定 xf
  • mysql使用笔记

    创建数据库 create database database name 删除数据库 drop database database name 创建表 span class token comment 最简单的语法 span span clas
  • aruco marker使用笔记

    在英伟达Jetson Xaiver开发板上配置 SDK环境 opencv 4 1 1 CUDA 10 2 1 git clone https github com pal robotics aruco ros 2 复制到catkin ws
  • vimdiff 使用笔记

    vimdiff 是建立在 diff 命令之上的 启动方法 xff1a vimdiff file left file right 或者 vim d file left file right 只在某一文件中存在的行的背景色被设置为蓝色 xff0
  • LTC6820和isoSPI使用笔记

    一 LTC6820使用笔记 1 MSTR主控 受控 MSTR 引脚 11 引脚 12 xff1a 串行接口主 从选择器输入 位于隔离式接口的主控器侧 xff08 SPI主机 xff09 xff0c 引脚接 VDD 位于隔离式接口的受控器侧
  • RTK使用笔记-千寻CORS模式

    一 千寻CORS模式 与基站 43 接收机1对1相比 xff0c 优点为携带方便 xff0c 也不用考虑10公里移动基站问题 xff1b 缺点为第一千寻CORS模式有自己基站涵盖范围 xff0c 所以需要提前确定好范围 xff08 下文有介
  • 整理windows terminal使用笔记

    github xff1a https github com microsoft terminal 之前这篇文章写了windows中powershell的美化 xff0c 过程中安装了windows terminal 这里记录windows
  • 整理ps使用笔记

    尽管使用ps只需要记住常用命令 xff1a ps aux ps ef 并且理解输出的列含义即可 但不理解命令的含义 xff0c 用起来总有种空虚感 下面研究一下 文章目录 介绍BSD默认simpleaxT r listoutput 总结 介
  • pugixml使用笔记

    https pugixml org docs manual html dom tree pugixml官方使用手册 1 创建xml文件信息 例如 xff1a pugi xml document xmldoc pugi xml node de
  • 【git】使用笔记

    拉取远程分支 git checkout b new branch name origin git reo origin branch name 如果git 项目拉取不到 xff0c 可能是没有更新远程信息 git fetch

随机推荐

  • aufs 存储机制

    aufs存储机制已经发展到超出了改进squid磁盘I O响应时间的最初尝试 34 a 34 代表着异步I O 默认的ufs和aufs之间的唯一区别 xff0c 在于I O是否被squid主进程执行 数据格式都是一样的 xff0c 所以你能在
  • align-items 与 align-content 的区别

    最明显的区别是align content 适用于多行 xff0c align item 则是适用于单行 align content xff08 单行无效 xff09 可以设置上对齐 下对齐 居中 拉伸 平分剩余空间 xff1b align
  • Apache Traffic Server 简介

    http blog sina com cn s blog 502c8cc40100mw7n html 作者 xff1a 王柯龙 一 介绍 Apache Traffic Server xff08 ATS 或 TS xff09 是一个高 性能
  • 反向代理原理

    局域网主机联入互联网的一种方式 xff0c 使用代理上网可以节约紧缺的IP地址资源 xff0c 而且可以阻断外部主机对内部主机的访问 xff0c 使内部网主机免受外部网主机的攻击 但是 xff0c 如果想让互联网上的主机访问内部网的主机资源
  • SQLite 揭秘

    http msdn microsoft com zh cn magazine ff898405 aspx 孜孜不倦的程序员 SQLite 揭秘 Ted Neward 下载示例代码 为了与本刊主题保持一致 xff0c 现在应该回过头来介绍一下
  • Actor的原理

    http www cnblogs com netfocus p 3365166 html 先从著名的c10k问题谈起 有一个叫Dan Kegel的人在网上 xff08 http www kegel com c10k html xff09 提
  • 【车载开发系列】CAN总线帧种类介绍篇

    车载开发系列 CAN总线帧种类介绍篇 CAN总线帧种类介绍篇 车载开发系列 CAN总线帧种类介绍篇一 CAN总线当中帧的种类二 五种类型帧用途说明三 数据帧的组成1 xff09 帧起始2 xff09 仲裁段3 xff09 控制段4 xff0
  • VS2013 C++ Rest SDK 环境配置方法

    简介 C 43 43 REST SDK 是 Microsoft 的一个开源跨平台项目 xff08 使用 MIT 开源协议 xff09 其使用大量现代异步 C 43 43 API 实现了一个基于 HTTP HTTPS 协议的 服务端 客户端
  • 【日常】FIFA历年四强

    世界杯 xff0c 全称 xff1a 国际足联世界杯 xff08 FIFA World Cup xff09 世界杯每四年举办一次 xff0c 任何国际足联会员国 xff08 地区 xff09 都可以派出代表队报名参加这项赛事 从1930年第
  • 【日常】圣诞节、颜色⛄

    2022年圣诞节到来啦 xff0c 很高兴这次我们又能一起度过 关于圣诞节 x1f384 xff0c 大家想到什么颜色 xff1f x1f98c x1f381 x1f385 x1f525 demo online https codepen
  • 【笔记】openwrt - full cone NAT(全锥NAT)、解决“arp_cache: neighbor table overflow!”

    最近安装了比特彗星 xff08 bitcomet xff09 后 xff0c 老是收到警告说日志的接收超过每秒上限了 一看日志 xff0c 好家伙 xff0c 一堆的kern info kernel 194004 157620 neighb
  • 【记录】ChatGPT使用记录

    文章目录 2023年02月08日数学哲学Java其他 2023年02月09日ChatGPT网络 2023年02月10日算法组网 2023年02月11日ChatGPT xff08 优化目标 xff09 DOS 2023年02月15日影评 xf
  • 简历模板百度网盘自取

    链接 https pan baidu com s 1ptO hJs69ZA8kwdjRUwc7A 提取码 sibc 复制这段内容后打开百度网盘手机App xff0c 操作更方便哦 来自HHppGo的分享
  • 【工具】笔记软件测评(简单)

    介绍 笔记软件测评 印象笔记 开源 markdown xff08 不好用 xff09 本地存储 臭名昭著 xff0c 被资本搞烂的理想 notion 开源 本地存储 数据导出 xff1a PDF HTML Markdown amp CSV
  • 【工具】logseq 使用分享

    Github https github com logseq logseq 我用 logseq 记录的学习笔记 xff1a 战争历史 https lawsssscat github io logseq worldwar 三月八日国际劳动妇女
  • 谈一谈搜索引擎是如何跟踪你、出卖你的

    文章目录 跟踪结果点击跟踪关键词跟踪 other 跟踪 结果点击跟踪 以b网为例 xff0c 当我们搜索关键词 haha 后 xff0c 搜索结果链接是这样子的 xff1a https www baidu com link url 61 X
  • 整理alacritty使用笔记

    github xff1a https github com alacritty alacritty features xff1a https github com alacritty alacritty blob master docs f
  • 整理windows terminal使用笔记

    github xff1a https github com microsoft terminal 之前这篇文章写了windows中powershell的美化 xff0c 过程中安装了windows terminal 这里记录windows
  • 区分/区别:su、su -、sudo、sudo su -

    su和su 的区别 su 不设置环境变量su 设置环境变量 su 和sudo su 的区别 su 输入root用户密码sudo su 输入当前用户密码 xff08 前提 xff1a 当前用户在 etc sudors或 etc sudors
  • 整理ps使用笔记

    尽管使用ps只需要记住常用命令 xff1a ps aux ps ef 并且理解输出的列含义即可 但不理解命令的含义 xff0c 用起来总有种空虚感 下面研究一下 文章目录 介绍BSD默认simpleaxT r listoutput 总结 介