首页 > 编程知识 正文

linux用ps命令大全,linux中ps是什么指令

时间:2023-05-03 13:23:16 阅读:219298 作者:962

ps命令是什么?

ps命令能够给出当前系统中进程的快照。它能捕获系统在某一时间的进程状态。如果想要不断更新查看这个状态,可以配合watch命令或使用top命令

ps命令支持三种语法格式:

Unix风格的参数,前面加单破折线BSD风格的参数,前面不加破折线GNU风格的长参数,前面加双破折线

常用的ps命令参数

参数描述-a显示除控制进程(session leader)和无终端进程外的所有进程-A显示所有进程-e此参数的效果和指定-A参数相同-f显示完整格式的输出-u<用户识别码> 列出属于该用户的进程的状况,也可使用用户名称来指定-L显示进程中的线程-l显示长列表a显示跟任意终端关联的所有进程u 采用基于用户的格式显示x 显示所有的进程,甚至包括未分配任何终端的进程o format仅显示由format指定的列k sort指定用以将输出排序的列--format format仅显示由format指定的列--forest用层级结构显示出进程和父进程之间的关系--sort order指定将输出按哪列排序-C cmdlist显示包含在cmdlist列表中的进程-g grplist显示会话或组ID在grplist列表中的进程-p pidlist显示PID在pidlist列表中的进程-s sesslist显示会话ID在sesslist列表中的进程-t ttylist显示终端ID在ttylist列表中的进程-u userlist显示有效用户ID在userlist列表中的进程常用命令 $ ps -efUID PID PPID C STIME TTY TIME CMDroot 1 0 0 11:29 ? 00:00:01 init [5]root 2 0 0 11:29 ? 00:00:00 [kthreadd]root 3 2 0 11:29 ? 00:00:00 [migration/0]root 4 2 0 11:29 ? 00:00:00 [ksoftirqd/0]root 5 2 0 11:29 ? 00:00:00 [watchdog/0]root 6 2 0 11:29 ? 00:00:00 [events/0]root 7 2 0 11:29 ? 00:00:00 [khelper]root 47 2 0 11:29 ? 00:00:00 [kblockd/0]root 48 2 0 11:29 ? 00:00:00 [kacpid]68 2349 1 0 11:30 ? 00:00:00 haldroot 3078 1981 0 12:00 ? 00:00:00 sshd: rich [priv]rich 3080 3078 0 12:00 ? 00:00:00 sshd: rich@pts/0rich 3081 3080 0 12:00 pts/0 00:00:00 -bashrich 4445 3081 3 13:48 pts/0 00:00:00 ps -ef

上例中,我们略去了输出中的不少行,以节约空间。但如你所见, Linux系统上运行着很多
进程。这个例子用了两个参数: -e参数指定显示所有运行在系统上的进程; -f参数则扩展了输
出,这些扩展的列包含了有用的信息。
 UID:启动这些进程的用户。
 PID:进程的进程ID。
 PPID:父进程的进程号(如果该进程是由另一个进程启动的)。
 C:进程生命周期中的CPU利用率。
 STIME:进程启动时的系统时间。
 TTY:进程启动时的终端设备。
 TIME:运行进程需要的累计CPU时间。
 CMD:启动的程序名称。
上例中输出了合理数量的信息,这也正是大多数系统管理员希望看到的。如果想要获得更多
的信息,可采用-l参数,它会产生一个长格式输出。
 

$ ps -lF S UID PID PPID C PRI NI ADDR SZ WCHAN TTY TIME CMD0 S 500 3081 3080 0 80 0 - 1173 wait pts/0 00:00:00 bash0 R 500 4463 3081 1 80 0 - 1116 - pts/0 00:00:00 ps

注意使用了-l参数之后多出的那些列。
 F:内核分配给进程的系统标记。
 S:进程的状态(O代表正在运行; S代表在休眠; R代表可运行,正等待运行; Z代表僵
化,进程已结束但父进程已不存在; T代表停止)。
 PRI:进程的优先级(越大的数字代表越低的优先级)。
 NI:谦让度值用来参与决定优先级。
 ADDR:进程的内存地址。
 SZ:假如进程被换出,所需交换空间的大致大小。
 WCHAN:进程休眠的内核函数的地址
 

在使用BSD参数时, ps命令会自动改变输出以模仿BSD格式。下例是使用l参数的输出:
 

$ ps lF UID PID PPID PRI NI VSZ RSS WCHAN STAT TTY TIME COMMAND0 500 3081 3080 20 0 4692 1432 wait Ss pts/0 0:00 -bash0 500 5104 3081 20 0 4468 844 - R+ pts/0 0:00 ps l

注意,其中大部分的输出列跟使用Unix风格参数时的输出是一样的,只有一小部分不同。
 VSZ:进程在内存中的大小,以千字节(KB)为单位。
 RSS:进程在未换出时占用的物理内存。
 STAT:代表当前进程状态的双字符状态码。
许多系统管理员都喜欢BSD风格的l参数。它能输出更详细的进程状态码(STAT列)。双字
符状态码能比Unix风格输出的单字符状态码更清楚地表示进程的当前状态。
第一个字符采用了和Unix风格S列相同的值,表明进程是在休眠、运行还是等待。第二个参
数进一步说明进程的状态。
 <:该进程运行在高优先级上。
 N:该进程运行在低优先级上。
 L:该进程有页面锁定在内存中。
 s:该进程是控制进程。
 l:该进程是多线程的。
 +:该进程运行在前台。
从前面的例子可以看出, bash命令处于休眠状态,但同时它也是一个控制进程(在我的会
话中,它是主要进程),而ps命令则运行在系统的前台。
 

按照指定用户bigdata显示:

[bigdata@slave ~]$ ps -fu bigdataUID PID PPID C STIME TTY TIME CMDbigdata 2688 2684 0 Nov19 ? 00:00:03 sshd: bigdata@pts/0bigdata 2689 2688 0 Nov19 pts/0 00:00:00 -bashbigdata 14548 1 0 Nov21 pts/0 00:03:34 /usr/java/jdk1.8.0_111/瘦瘦的钢笔/java -server -Xms2048m -Xmx3072m -Xmn1024m -XX:SurvivorRatio=2 -XX:PermSize=96m -XX:MaxPermSize=2bigdata 19234 2689 1 11:09 pts/0 00:00:00 ps -fu bigdata

按照指定格式显示,显示进程id,用户名,cpu,内存和命令 

[bigdata@slave ~]$ ps axo pid,uname,pcpu,pmem,comm PID USER %CPU %MEM COMMAND 1 root 0.0 0.1 init 2 root 0.0 0.0 kthreadd 3 root 0.0 0.0 migration/0 4 root 0.0 0.0 ksoftirqd/0 5 root 0.0 0.0 migration/0 6 root 0.0 0.0 watchdog/0 7 root 0.0 0.0 migration/1 8 root 0.0 0.0 migration/1 9 root 0.0 0.0 ksoftirqd/1 10 root 0.0 0.0 watchdog/1

 查找指定进程

[bigdata@slave ~]$ ps -ef|grep httpdbigdata 19282 2689 0 11:16 pts/0 00:00:00 grep httpd

查看某个进程的线程信息

[bigdata@slave ~]$ ps -LC mysqld PID LWP TTY TIME CMD 2099 2099 ? 00:00:00 mysqld 2099 2103 ? 00:00:00 mysqld 2099 2104 ? 00:00:12 mysqld 2099 2105 ? 00:00:11 mysqld 2099 2106 ? 00:00:12 mysqld 2099 2107 ? 00:00:11 mysqld 2099 2108 ? 00:00:11 mysqld 2099 2109 ? 00:00:12 mysqld 2099 2110 ? 00:00:13 mysqld 2099 2111 ? 00:00:11 mysqld 2099 2112 ? 00:00:11 mysqld 2099 2113 ? 00:00:11 mysqld 2099 2119 ? 00:00:23 mysqld 2099 2120 ? 00:00:19 mysqld 2099 2121 ? 00:00:02 mysqld 2099 2122 ? 00:00:02 mysqld 2099 2123 ? 00:00:00 mysqld 2099 2124 ? 00:00:00 mysqld 2099 2132 ? 00:00:00 mysqld

按照CPU,内存进行排序,-表示逆序,+表示正序 

[bigdata@slave ~]$ ps aux --sort=-pcpu,+pmemUSER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMANDbigdata 19338 1.0 0.1 110348 1140 pts/0 R+ 11:28 0:00 ps aux --sort=-pcpu,+pmembigdata 14548 0.3 53.9 5700836 546204 pts/0 Sl Nov21 3:37 /usr/java/jdk1.8.0_111/瘦瘦的钢笔/java -server -Xms2048m -Xmx3072m -Xmn1024m -XX:SurvivorRatio=2 -XX:PermSize=96mroot 11 0.1 0.0 0 0 ? S Nov19 4:37 [events/0]root 1301 0.1 0.2 189456 2160 ? Sl Nov19 4:24 /usr/s瘦瘦的钢笔/vmtoolsdroot 1 0.0 0.1 19364 1104 ? Ss Nov19 0:01 /s瘦瘦的钢笔/initroot 2 0.0 0.0 0 0 ? S Nov19 0:00 [kthreadd]root 3 0.0 0.0 0 0 ? S Nov19 0:00 [migration/0]root 4 0.0 0.0 0 0 ? S Nov19 0:08 [ksoftirqd/0]root 5 0.0 0.0 0 0 ? S Nov19 0:00 [migration/0]root 6 0.0 0.0 0 0 ? S Nov19 0:01 [watchdog/0]root 7 0.0 0.0 0 0 ? S Nov19 0:00 [migration/1]

用树的风格显示进程的层次关系

ps -f --forest -C nginxUID PID PPID C STIME TTY TIME CMDroot 32633 1 0 Jun22 ? 00:00:00 nginx: master process /usr/s瘦瘦的钢笔/nginx -c /etc/nginx/nginx.confroot 32635 32633 0 Jun22 ? 00:00:19 _ nginx: worker process

 

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。