linux常用命令之ps(详细参数讲解)

    xiaoxiao2023-06-25  178

    不论是windows系统还是linux系统,在系统运行时,都会有程序随之运行,我们将这个程序称之为进程(process)。

    windows可以直接用任务管理器查看,那么linux是如何查看系统进程的呢?

    想要在linux中查看这些进程,就需要熟悉ps命令的用法,它能输出运行在系统上的所有程序的信息,但是ps的参数很多,而且大多数参数是不常用的,一般我们用到的就是那么几种而已。

    ps选项三种风格

    1 、UNIX options, which may be grouped and must be preceded by a dash.UNIX风格,必须带一个“-”使用 2、 BSD options, which may be grouped and must not be used with a dash.BSD风格,不带“-”使用 3、 GNU long options, which are preceded by two dashes.GNU风格,必须带“--”

    Unix风格的参数

    最早由KenThompson、Dennis Ritchie和Douglas McIlroy于1969年在美国电话电报公司(AT&T)的贝尔实验室开发,从Unix系统上原有的ps命令继承下来的(想了解更多就去百科看看)

    Unix风格的ps命令参数及描述

    -A all processes 显示所有的进程

    -N negate selection 显示与指定参数不符的进程

    -a all w/ tty except session leaders 显示除控制进程和无终端进程外的所有进程

    -d all except session leaders 显示除控制进程外的所有进程

    -e all processes 显示所有的进程

    -C cmdlist by command name 显示包含在cmdlist列表中的进程

    -G grouplist by real group ID (supports names) 显示组ID在grouplist列表中的进程

    -U userlist by real user ID (supports names) 显示属主的用户ID在userlist列表中的进程

    -g grouplist by session OR by effective group name 显示组ID在grouplist列表中的进程

    -p pid by process ID 显示PID在pid列表中的进程

    -q by process ID (unsorted & quick)

    -s sessionlist processes in the sessions given 显示会话ID在sessionlist列表中的进程

    -t ttylist by tty 显示终端ID在ttylist列表中的进程

    -u userlist by effective user ID (supports names) 显示有效用户ID在userlist列表中的进程

    -o,o fotmat user-defined 仅显示由format指定的列

    -j,j job control 显示任务信息

    -O,O preloaded -o 显示默认的输出列

    -l,l long 显示长列表

    -F extra full 显示更多额外输出(相对于-f参数而言)

    -f full 显示完整格式的信息

    -V,V show version 显示ps的版本信息

    -m,m,-L,-T,H threads 显示所有的执行绪

    -M,Z security data 显示进程的安全信息

    -w,w wide output 带宽输出模式,不限宽度显示

    -y change -l format 配合-l使用

    -c scheduling class 显示进程的额外调度信息

    -H process hierarchy 用层级格式来显示进程

    其实说了这么多的参数,一般情况下都用不到的,常用ps -ef

    字段解释:

    UID 启用这个进程的用户PID 进程IDPPID 父进程IDC CPU占用率STIME 进程启动时的系统时间TTY 开始此进程的终端TIME 此进程运行的总时间CMD 启动的程序名称F:内核分配给进程的系统标记S:进程的状态(O表示正在运行;S代表正在休眠;R代表运行态;Z代表僵死态;T代表停止)PRI:进程的优先级NI:用来参与决定优先级ADDR:进程的内存地址SZ:所需交换空间的大致大小WCHAN:进程休眠的内核函数地址

    BSD风格的参数

    伯克利软件发行版(Berkeley software distribution,BSD)是加州大学伯克利分校开发的一个Unix版本。它和Unix系统有许多细小的不同。

    BSD风格的ps命令参数及描述

    T all processes on this terminal 显示跟当前终端关联的所有进程

    a all w/ tty, including other users 所有与终端相关的进程

    g OBSOLETE -- DO NOT USE 显示所有的进程,包括控制进程

    r only running processes 仅显示运行中的进程

    x processes w/o controlling ttys 所有与终端无关的进程

    U userlist processes for specified users 显示归userlist列表中某用户ID所有的进程

    t by tty 跟-t选项相同

    s signal 采用信号格式显示

    v virtual memory 采用虚拟内存格式显示

    u user-oriented 以用户为中心组织进程状态信息显示(显示进程所有者的信息)

    X registers 按i386寄存器格式显示

    L list format codes 列出所有格式指定符

    S children in sum 列出程序时,包括已中断的子程序

    c true command name 显示真实用以启动进程的程序名称

    n numeric WCHAN,UID 和WCHAN信息一起显示出来,用数值表示用户ID和组ID

    f ASCII art forest 用ASCII字符显示树状结构,表达程序间的相互关系

    Unix和BSD的参数有很多重复的地方,用不到的参数很多,常用ps aux

    字段解释:

    USER:启动进程的用户 PID:进程号 %CPU:占用的CPU使用率 %MEM:内存空间占整个内存的比率 VSZ:占用的虚拟内存集,就是占用的虚拟内存大小 RSS:常驻内存集Resident Size,就是占用的固定的内存大小 TTY:终端 STAT:该进程目前的状态 R:running运行态 S:interruptable sleeping可中断睡眠 D:uninterruptable sleeping不可中断睡眠 T:Stopped停止态 Z:zombie僵死态 +:前台进程 l:多线程进程 N:低优先级进程 <:高优先级进程 s:session leader会话引领者(在终端上启动个shell,在shell程序上启动好几个进程,shell就是领导者) START:被触发启动的时间 TIME:实际使用CPU运行的时间 COMMAND:该程序的实际指令 VSZ:进程在内存中的大小,以千字节(KB)为单位 RSS:进程在未换出时占用的物理内存 STAT:代表当前进程状态的双字符状态码(双字符状态码能比Unix风格输出的单字符状态码更清楚地表示进程的当前状态)

    GNU风格的参数

    GNU开发人员在ps命令中加入了另外一些参数,其中一些GNU长参数复制了现有的Unix或BSD类型的参数,另一些则提供了新功能。

    GNU风格的ps命令参数及描述

    --Group grouplist 显示组ID在grouplist列表中的进程,和“-G”选项相同

    --User userlist 显示用户ID在userlist列表中的进程,和“-U”选项相同

    --pid pidlist 显示PID在pidlist列表中的进程,和“-p”选项相同

    --cols n 将屏幕宽度设置n列

    --ppid pidlist 显示父PID在pidlist列表中的进程

    --group grouplist 显示有效组ID在grouplist列表中的进程,和“-G”选项相同

    --user userlist 显示有效用户ID在userlist列表中的进程,和“-U”选项相同

    --sid sidlist 显示会话ID在sidlist列表中的进程

    --rows n 将屏幕高度设置n排

    --info 显示调试信息

    --cumulative 包含已停止的子进程信息

    --format formatlist 仅显示由formatlist指定的列

    --deselect 显示所有进程

    --sort 指定输出按哪列排序

    --tty ttylist 显示终端ID在ttylist列表中的进程,和“-t”选项相同

    --forest 用层级结构显示出进程和父进程之间的关系

    --version 显示ps的版本号,和“-V”选项相同

    --heading 列的头

    --no-heading 不显示列的头

    --context 显示额外的安全信息

    --help 显示帮助

    总结:其实好多参数是用不到的,最常用的两种组合就是ps aux和ps -ef了。

    相关资源:敏捷开发V1.0.pptx
    最新回复(0)