首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >ps命令手册

ps命令手册

作者头像
sunsky
发布2020-08-20 11:27:18
1.2K0
发布2020-08-20 11:27:18
举报
文章被收录于专栏:sunskysunskysunsky

LINFO

ps命令

在PS(即,处理状态)命令被用来提供关于当前正在运行的信息的过程,包括它们的过程标识号(PID)来。 过程也称为任务,是程序的执行(即运行)实例。系统为每个过程分配一个唯一的PID。 ps的基本语法是 ps [options] 当没有任何选项的情况下使用ps时,默认情况下它将发送到标准输出,即显示监视器,该输出显示系统中当前至少两个进程的四项信息:shell和ps。shell是一个程序,它在类Unix 操作系统中提供传统的纯文本用户界面,用于发布命令并与系统交互,并且在Linux上默认为bash。ps本身就是一个进程,只要它的输出显示就会死掉(即终止)。 这四个项目分别标记为PID,TTY,TIME和CMD。TIME是进程运行的CPU(中央处理单元)时间(以分钟和秒为单位)的时间量。CMD是启动该过程的命令的名称。 TTY(现在代表终端类型,但最初代表电传打字)是用户登录的控制台或终端(即,显示器和键盘的组合)的名称,也可以使用tty命令找到。这些信息通常只对多用户网络有用。 使用ps获得有关系统上当前进程的更完整信息的常用方便方法是使用以下命令: ps -aux | less 该-a选项告诉ps列出所有用户的进程在系统上,而不是仅仅与当前用户的,与外班组长和不与终端关联的进程。小组负责人是一组相关过程的第一个成员。 该-u选项告诉ps提供有关每个过程的详细信息。在-x选项添加到不具有控制终端列表过程,如守护进程,这是被期间启动程序启动(即,计算机启动),并在后台运行悄悄直到它们由特定的事件或条件激活。 由于进程列表可能相当长,占用的屏幕不止一个,ps -aux的输出可以传送(即传输)到less命令,从而可以一次查看一个屏幕。按下空格键可将输出向前推进一个屏幕,按b键则向后推一个屏幕。 ps -aux提供的关于每个进程的信息包括进程的用户,PID,进程使用的CPU百分比,进程使用的内存百分比,VSZ(虚拟大小以千字节为单位),RSS(实际内存大小或以1024字节为单位的常驻集大小),STAT(进程状态代码),进程的启动时间,进程已激活的时间长度以及启动进程的命令。过程状态代码包括D,不间断睡眠; N,低优先级; R,可运行(在运行队列上); S,睡觉; T,追踪或停止; Z,不存在(僵尸)。 与大多数命令相比,ps之前的连字符是可选的,不是强制性的。因此,以下内容可能(有时候会)用来代替上述命令: ps aux | less 用于查看系统上运行的所有进程的另一组选项是 ps -ef | less 该-e选项生成的有关当前正在运行的每个进程的信息列表。在-f选项生成包含的信息较少的项目超过了每个进程的列表-l选项。 在由ps -ef显示的列中,UID包含拥有进程的帐户的用户名(通常是启动进程的同一用户),STIME显示进程启动的时间,或者开始日期超过启动日期24小时前。 ps显示的过程可以限制为属于任何给定用户的过程,方法是通过grep(用于搜索文本的过滤器)输出输出。例如,属于具有用户名adam的用户的进程可以显示如下: ps -ef | grep adam -l选项会生成一个长列表,当与-e和-f选项一起使用时,将创建一个包含15列的表: ps -efl 最感兴趣的附加列是NI和SZ。前者显示过程的良好价值,它决定了过程的优先级。值越高,优先级越低。Linux系统默认的nice值为0。 后者在内存中显示进程的大小。该字段的值是进程占用的页数。在Linux系统上,一页是4,096字节。 ps通常用于获取故障进程的PID,以便使用kill命令终止它。例如,如果发现冻结程序或崩溃程序的PID为1125,则通常可以终止该过程: kill 1125 然后可以使用ps -ef或ps -efl来确认该过程确实已停止。如果没有,那么应该使用更有力的-9选项,即, kill -9 1125 该pstree命令类似PS的,因为它可以用来显示所有系统上的进程与它们的PID一起。然而,它不同之处在于它以树形图表示它的输出,显示进程如何相互关联,并且它提供的关于每个进程的详细信息不如ps。 2005 年5月20日创建。版权所有©2005 The Linux Information Project。版权所有。

一般来说,ps aux命令执行结果的几个列的信息分别是:

USER 进程所属用户 PID 进程ID %CPU 进程占用CPU百分比 %MEM 进程占用内存百分比 VSZ 虚拟内存占用大小 单位:kb(killobytes) RSS 实际内存占用大小 单位:kb(killobytes) TTY 终端类型 STAT 进程状态 START 进程启动时刻 TIME 进程运行时长 COMMAND 启动进程的命令

VIRT:virtual memory usage 虚拟内存 1、进程“需要的”虚拟内存大小,包括进程使用的库、代码、数据等 2、假如进程申请100m的内存,但实际只使用了10m,那么它会增长100m,而不是实际的使用量

RES:resident memory usage 常驻内存 1、进程当前使用的内存大小,但不包括swap out 2、包含其他进程的共享 3、如果申请100m的内存,实际使用10m,它只增长10m,与VIRT相反 4、关于库占用内存的情况,它只统计加载的库文件所占内存大小

SHR:shared memory 共享内存 1、除了自身进程的共享内存,也包括其他进程的共享内存 2、虽然进程只使用了几个共享库的函数,但它包含了整个共享库的大小 3、计算某个进程所占的物理内存大小公式:RES – SHR 4、swap out后,它将会降下来

DATA 1、数据占用的内存。如果top没有显示,按f键可以显示出来。 2、真正的该程序要求的数据空间,是真正在运行中要使用的。

top 运行中可以通过 top 的内部命令对进程的显示方式进行控制。内部命令如下: s – 改变画面更新频率 l – 关闭或开启第一部分第一行 top 信息的表示 t – 关闭或开启第一部分第二行 Tasks 和第三行 Cpus 信息的表示 m – 关闭或开启第一部分第四行 Mem 和 第五行 Swap 信息的表示 N – 以 PID 的大小的顺序排列表示进程列表 P – 以 CPU 占用率大小的顺序排列进程列表 M – 以内存占用率大小的顺序排列进程列表 h – 显示帮助 n – 设置在进程列表所显示进程的数量 q – 退出 top s – 改变画面更新周期

序号 列名 含义 a PID 进程id b PPID 父进程id c RUSER Real user name d UID 进程所有者的用户id e USER 进程所有者的用户名 f GROUP 进程所有者的组名 g TTY 启动进程的终端名。不是从终端启动的进程则显示为 ? h PR 优先级 i NI nice值。负值表示高优先级,正值表示低优先级 j P 最后使用的CPU,仅在多CPU环境下有意义 k %CPU 上次更新到现在的CPU时间占用百分比 l TIME 进程使用的CPU时间总计,单位秒 m TIME+ 进程使用的CPU时间总计,单位1/100秒 n %MEM 进程使用的物理内存百分比 o VIRT 进程使用的虚拟内存总量,单位kb。VIRT=SWAP+RES p SWAP 进程使用的虚拟内存中,被换出的大小,单位kb。 q RES 进程使用的、未被换出的物理内存大小,单位kb。RES=CODE+DATA r CODE 可执行代码占用的物理内存大小,单位kb s DATA 可执行代码以外的部分(数据段+栈)占用的物理内存大小,单位kb t SHR 共享内存大小,单位kb u nFLT 页面错误次数 v nDRT 最后一次写入到现在,被修改过的页面数。 w S 进程状态。(D=不可中断的睡眠状态,R=运行,S=睡眠,T=跟踪/停止,Z=僵尸进程) x COMMAND 命令名/命令行 y WCHAN 若该进程在睡眠,则显示睡眠中的系统函数名 z Flags 任务标志,参考 sched.h

默认情况下仅显示比较重要的 PID、USER、PR、NI、VIRT、RES、SHR、S、%CPU、%MEM、TIME+、COMMAND 列。可以通过下面的快捷键来更改显示内容。

通过 f 键可以选择显示的内容。按 f 键之后会显示列的列表,按 a-z 即可显示或隐藏对应的列,最后按回车键确定。 按 o 键可以改变列的显示顺序。按小写的 a-z 可以将相应的列向右移动,而大写的 A-Z 可以将相应的列向左移动。最后按回车键确定。 按大写的 F 或 O 键,然后按 a-z 可以将进程按照相应的列进行排序。而大写的 R 键可以将当前的排序倒转。

Linux中ps与top命令

这两个命令都是查看系统进程信息的命令,但是用处有点儿不同

1.ps命令–提供系统过去信息的一次性快照

也就是说ps命令能够查看刚刚系统的进程信息 命令:ps aux或者ps lax

[root@Linux ~]# ps aux USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND root 1 0.1 0.1 2032 644 ? Ss 21:55 0:01 init [3] root 2 0.0 0.0 0 0 ? S 21:55 0:00 [migration/0] root 3 0.0 0.0 0 0 ? SN 21:55 0:00 [ksoftirqd/0]

……

解释如下:

VSZ–进程的虚拟大小

RSS–驻留集的大小,可以理解为内存中页的数量

TTY–控制终端的ID

STAT–也就是当前进程的状态,其中S-睡眠,s-表示该进程是会话的先导进程,N-表示进程拥有比普通优先级更低的优先级,R-正在运行,D-短期等待,Z-僵死进程,T-被跟踪或者被停止等等

STRAT–这个很简单,就是该进程启动的时间

TIME–进程已经消耗的CPU时间,注意是消耗CPU的时间

COMMOND–命令的名称和参数

而]#ps lax 可以看到父进程,谦让值以及该进程正在等待的资源等待

2.top命令–这个命令就很有用了

top命令反应的是系统进程动态信息,默认10s更新一次

如下例所示:   $ ps -e -o 'pid,comm,args,pcpu,rsz,vsz,stime,user,uid' 其中rsz是是实际内存

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2018-04-10 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • ps命令
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档