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了。

目录
相关文章
|
2月前
|
Linux 网络安全 数据安全/隐私保护
Linux 超级强大的十六进制 dump 工具:XXD 命令,我教你应该如何使用!
在 Linux 系统中,xxd 命令是一个强大的十六进制 dump 工具,可以将文件或数据以十六进制和 ASCII 字符形式显示,帮助用户深入了解和分析数据。本文详细介绍了 xxd 命令的基本用法、高级功能及实际应用案例,包括查看文件内容、指定输出格式、写入文件、数据比较、数据提取、数据转换和数据加密解密等。通过掌握这些技巧,用户可以更高效地处理各种数据问题。
161 8
|
2月前
|
监控 Linux
如何检查 Linux 内存使用量是否耗尽?这 5 个命令堪称绝了!
本文介绍了在Linux系统中检查内存使用情况的5个常用命令:`free`、`top`、`vmstat`、`pidstat` 和 `/proc/meminfo` 文件,帮助用户准确监控内存状态,确保系统稳定运行。
640 6
|
2月前
|
Linux
在 Linux 系统中,“cd”命令用于切换当前工作目录
在 Linux 系统中,“cd”命令用于切换当前工作目录。本文详细介绍了“cd”命令的基本用法和常见技巧,包括使用“.”、“..”、“~”、绝对路径和相对路径,以及快速切换到上一次工作目录等。此外,还探讨了高级技巧,如使用通配符、结合其他命令、在脚本中使用,以及实际应用案例,帮助读者提高工作效率。
110 3
|
2月前
|
监控 安全 Linux
在 Linux 系统中,网络管理是重要任务。本文介绍了常用的网络命令及其适用场景
在 Linux 系统中,网络管理是重要任务。本文介绍了常用的网络命令及其适用场景,包括 ping(测试连通性)、traceroute(跟踪路由路径)、netstat(显示网络连接信息)、nmap(网络扫描)、ifconfig 和 ip(网络接口配置)。掌握这些命令有助于高效诊断和解决网络问题,保障网络稳定运行。
92 2
|
1月前
|
Linux Shell
Linux 10 个“who”命令示例
Linux 10 个“who”命令示例
61 14
Linux 10 个“who”命令示例
|
12天前
|
Linux
linux查看目录下的文件夹命令,find查找某个目录,但是不包括这个目录本身?
通过本文的介绍,您应该对如何在 Linux 系统中查看目录下的文件夹以及使用 `find` 命令查找特定目录内容并排除该目录本身有了清晰的理解。掌握这些命令和技巧,可以大大提高日常文件管理和查找操作的效率。 在实际应用中,灵活使用这些命令和参数,可以帮助您快速定位和管理文件和目录,满足各种复杂的文件系统操作需求。
38 8
|
21天前
|
Ubuntu Linux
Linux 各发行版安装 ping 命令指南
如何在不同 Linux 发行版(Ubuntu/Debian、CentOS/RHEL/Fedora、Arch Linux、openSUSE、Alpine Linux)上安装 `ping` 命令,详细列出各发行版的安装步骤和验证方法,帮助系统管理员和网络工程师快速排查网络问题。
116 20
|
22天前
|
网络协议 Linux 应用服务中间件
kali的常用命令汇总Linux
kali的常用命令汇总linux
52 7
|
2月前
|
Linux 数据库
Linux中第一次使用locate命令报错?????
在Linux CentOS7系统中,使用`locate`命令时出现“command not found”错误,原因是缺少`mlocate`包。解决方法是通过`yum install mlocate -y`或`apt-get install mlocate`安装该包,并执行`updatedb`更新数据库以解决后续的“can not stat”错误。
40 9
|
2月前
|
监控 网络协议 Linux
Linux netstat 命令详解
Linux netstat 命令详解