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

不论是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 进程ID
PPID 父进程ID
C 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了。

时间: 2024-08-01 14:05:08

linux常用命令之ps(详细参数讲解)的相关文章

《嵌入式 Linux应用程序开发标准教程(第2版)》——2.1 Linux常用命令

2.1 Linux常用命令 嵌入式 Linux应用程序开发标准教程(第2版) 在安装完Linux再次启动之后,就可以进入到与Windows类似的图形化界面了.这个界面就是Linux图形化界面X窗口系统(简称X)的一部分.要注意的是,X窗口系统仅仅是Linux上面的一个软件(或者也可称为服务),它不是Linux自身的一部分.虽然现在的X窗口系统已经与Linux整合得相当好了,但毕竟还不能保证绝对的可靠性.另外,X窗口系统是一个相当耗费系统资源的软件,它会大大地降低Linux的系统性能.因此,若是希

不允许错过的Linux常用命令集合_Linux

直接贴上学习笔记: 系统信息 arch 显示机器的处理器架构(1) uname -m 显示机器的处理器架构(2) uname -r 显示正在使用的内核版本 dmidecode -q 显示硬件系统部件 - (SMBIOS / DMI) hdparm -i /dev/hda 罗列一个磁盘的架构特性 hdparm -tT /dev/sda 在磁盘上执行测试性读取操作 cat /proc/cpuinfo 显示CPU info的信息 cat /proc/interrupts 显示中断 cat /proc/

linux ar 命令的使用说明和实例讲解_linux shell

ar命令可以用来创建.修改库,也可以从库中提出单个模块.库是一单独的文件,里面包含了按照特定的结构组织起来的其它的一些文件(称做此库文件的member).原始文件的内容.模式.时间戳 .属主.组等属性都保留在库文件中. ar可让您集合许多文件,成为单一的备存文件.在备存文件中,所有成员文件皆保有原来的属性与权限. 用途说明 创建静态库.a文件.用C/C++开发程序时经常用到,但我很少单独在命令行中使用ar命令,一般写在makefile中,有时也会在shell脚 本中用到.关于Linux下的库文件

Linux | 常用命令(一)

整理了一下linux常用命令,方便大家使用和学习. 一.文件处理命令 1.命令格式与目录处理命令 ls –a[查看隐藏文件] ls –l[查看文件信息长格式显示] ls –d[查看指定目录的详细信息] ls –h[显示容量大小] ls –i[查看任何文件的I 节点] ll 文件名[查看一个文件的详细信息] 2.目录处理命令 mkdir –p[递归创建目录] cd[切换指定目录] pwd[显示当前目录] rmdir[删除空目录] cp[复制文件到某个目录下] cp –r[复制目录] cp –p[保

linux常用命令有哪些?

  Linux系统 Linux的常用命令有: echo 命令 举例:echo $PATH. 功能:将命令行中的参数显示到标准输出中. date命令 举例:date. 功能:显示或设置系统时间,没参数直接显示系统当前的日期和时间. Linux命令 passwd命令 举例:passwd. 功能:修改密码. file命令 举例:file 文件名 [参数]. 功能:确定指定文件类型. ls命令 举例 ls -a 显示当前目录下的全部文件(包括隐藏文件). 功能:列出目录文件. touch命令 举例:to

Centos学习笔记 linux 常用命令:压缩解压命令

  2012-2-9 星期4 linux 常用命令:压缩解压命令 -gz命令的英文原意:Gnu zip 语法:gzip 选项[文件] 功能描述:压缩文件 压缩后文件格式: .gz 1. 只能压缩文件,不能压缩目录 2.不保留源文件 解压缩命令:gunzip 语法:gunzip选项[压缩文件] 功能描述:解压缩.gz的压缩文件 范例:gunzip file1.gz 压缩解压目录:tar 命令名称:tar 语法 tar选项[cvf][目录]      -c 产生.tar打包文件      -v 显示

积累linux常用命令大全_linux shell

本人记忆力有限,就把平时在项目中遇到的linux常用命令分享给大家. Linux常用命令全集 http://www.jb51.net/linux/ linux文件中存在^M 使用shell命令tr可以实现去除,具体命令如下: 复制代码 代码如下:   cat -v yourfile | tr -d "^M" > targetfile VIM中选定某个单词 在ESC之后,使用w或者wi或者vwi可以选择某个单词 在控制台中快速移动光标 1.删除 1.1 ctrl + d 删除光标所

Linux新手必备100个命令 Linux常用命令大全

Linux常用命令大全100条: 1.echo "aa" > test.txt 和 echo "bb" >> test.txt//>将原文件清空,并且内容写入到文件中,>>将内容放到文件的尾部 2.chmod go+w -R /home/zhangy //给组用户和其他用户添加写的权限 3.tar -tzvf test.tar.gz //列出归档内容 4.du -ah //查看文件列表大小 5.du -sh //查看所有文件的大小

linux shell命令行选项与参数用法详解_linux shell

问题描述:在linux shell中如何处理tail -n 10 access.log这样的命令行选项?在bash中,可以用以下三种方式来处理命令行参数,每种方式都有自己的应用场景.1,直接处理,依次对$1,$2,...,$n进行解析,分别手工处理:2,getopts来处理,单个字符选项的情况(如:-n 10 -f file.txt等选项):3,getopt,可以处理单个字符选项,也可以处理长选项long-option(如:--prefix=/home等).总结:小脚本手工处理即可,getopt