linux命令大全之ps命令详解

作者&投稿:胥详 (若有异议请与网页底部的电邮联系)
~

Linux中的ps命令是Process Status的缩写。ps命令用来列出系统中当前运行的那些进程。ps命令列出的是当前那些进程的快照,就是执行ps命令的那个时刻的那些进程,如果想要动态的显示进程信息,就可以使用top命令。要对进程进行监测和控制,首先必须要了解当前进程的情况,也就是需要查看当前进程,而 ps 命令就是最基本同时也是非常强大的进程查看命令。使用该命令可以确定有哪些进程正在运行和运行的状态、进程是否结束、进程有没有僵死、哪些进程占用了过多的资源等等。总之大部分信息都是可以通过执行该命令得到的。

ps 为我们提供了进程的一次性的查看,它所提供的查看结果并不动态连续的;如果想对进程时间监控,应该用 top 工具。

kill 命令用于杀死进程。

linux上进程有5种状态:

1. 运行(正在运行或在运行队列中等待)

   2. 中断(休眠中, 受阻, 在等待某个条件的形成或接受到信号)

   3. 不可中断(收到信号不唤醒和不可运行, 进程必须等待直到有中断发生)

   4. 僵死(进程已终止, 但进程描述符存在, 直到父进程调用wait4()系统调用后释放)

   5. 停止(进程收到SIGSTOP, SIGSTP, SIGTIN, SIGTOU信号后停止运行运行)

   ps工具标识进程的5种状态码:

   D 不可中断 uninterruptible sleep (usually IO)

   R 运行 runnable (on run queue)

   S 中断 sleeping

   T 停止 traced or stopped

   Z 僵死 a defunct (”zombie”) process

1.命令格式:

ps[参数]

2.命令功能:

   用来显示当前进程的状态

3.命令参数:

   a  显示所有进程

   -a 显示同一终端下的所有程序

   -A 显示所有进程

   c  显示进程的真实名称

   -N 反向选择

   -e 等于“-A”

   e  显示环境变量

   f  显示程序间的关系

   -H 显示树状结构

   r  显示当前终端的进程

   T  显示当前终端的所有程序

   u  指定用户的所有进程

   -au 显示较详细的资讯

   -aux 显示所有包含其他使用者的行程

   -C命令 列出指定命令的状况

   --lines行数 每页显示的行数

   --width字符数 每页显示的字符数

   --help 显示帮助信息

   --version 显示版本显示

4.使用实例

   实例1:显示所有进程信息

   命令:ps -A

   输出:

复制代码

   

代码如下:

[root@localhost test6]# ps -A

   PID TTY TIME CMD

   1 ? 00:00:00 init

   2 ? 00:00:01 migration/0

   3 ? 00:00:00 ksoftirqd/0

   4 ? 00:00:01 migration/1

   5 ? 00:00:00 ksoftirqd/1

   6 ? 00:29:57 events/0

   7 ? 00:00:00 events/1

   8 ? 00:00:00 khelper

   49 ? 00:00:00 kthread

   54 ? 00:00:00 kblockd/0

   55 ? 00:00:00 kblockd/1

   56 ? 00:00:00 kacpid

   217 ? 00:00:00 cqueue/0

说明:

   实例2:显示指定用户信息

   命令:ps -u root

   输出:

复制代码

   

代码如下:

[root@localhost test6]# ps -u root

   PID TTY TIME CMD

   1 ? 00:00:00 init

   2 ? 00:00:01 migration/0

   3 ? 00:00:00 ksoftirqd/0

   4 ? 00:00:01 migration/1

   5 ? 00:00:00 ksoftirqd/1

   6 ? 00:29:57 events/0

   7 ? 00:00:00 events/1

   8 ? 00:00:00 khelper

   49 ? 00:00:00 kthread

   54 ? 00:00:00 kblockd/0

   55 ? 00:00:00 kblockd/1

   56 ? 00:00:00 kacpid

说明:

   实例3:显示所有进程信息,连同命令行

   命令:ps -ef

   输出:

复制代码

   

代码如下:

[root@localhost test6]# ps -ef

   UID PID PPID C STIME TTY TIME CMD

   root 1 0 0 Nov02 ? 00:00:00 init [3]

   root 2 1 0 Nov02 ? 00:00:01 [migration/0]

   root 3 1 0 Nov02 ? 00:00:00 [ksoftirqd/0]

   root 4 1 0 Nov02 ? 00:00:01 [migration/1]

   root 5 1 0 Nov02 ? 00:00:00 [ksoftirqd/1]

   root 6 1 0 Nov02 ? 00:29:57 [events/0]

   root 7 1 0 Nov02 ? 00:00:00 [events/1]

   root 8 1 0 Nov02 ? 00:00:00 [khelper]

   root 49 1 0 Nov02 ? 00:00:00 [kthread]

   root 54 49 0 Nov02 ? 00:00:00 [kblockd/0]

   root 55 49 0 Nov02 ? 00:00:00 [kblockd/1]

   root 56 49 0 Nov02 ? 00:00:00 [kacpid]

说明:

   实例4: ps 与grep 常用组合用法,查找特定进程

   命令:ps -ef|grep ssh

   输出:

复制代码

   

代码如下:

[root@localhost test6]# ps -ef|grep ssh

   root 2720 1 0 Nov02 ? 00:00:00 /usr/sbin/sshd

   root 17394 2720 0 14:58 ? 00:00:00 sshd: a href="mailto:root@pts/0"root@pts/0/a

   root 17465 17398 0 15:57 pts/0 00:00:00 grep ssh

说明:

实例5:将目前属于您自己这次登入的 PID 与相关信息列示出来

命令:ps -l

输出:

复制代码

   

代码如下:

[root@localhost test6]# ps -l

   F S UID PID PPID C PRI NI ADDR SZ WCHAN TTY TIME CMD

   4 S 0 17398 17394 0 75 0 - 16543 wait pts/0 00:00:00 bash

   4 R 0 17469 17398 0 77 0 - 15877 - pts/0 00:00:00 ps

说明:

各相关信息的意义:

F 代表这个程序的旗标 (flag), 4 代表使用者为 super user

S 代表这个程序的状态 (STAT),关于各 STAT 的意义将在内文介绍

UID 程序被该 UID 所拥有

PID 就是这个程序的 ID !

PPID 则是其上级父程序的ID

C CPU 使用的资源百分比

PRI 这个是 Priority (优先执行序) 的缩写,详细后面介绍

NI 这个是 Nice 值,在下一小节我们会持续介绍

ADDR 这个是 kernel function,指出该程序在内存的那个部分。如果是个 running的程序,一般就是 "-"

SZ 使用掉的内存大小

WCHAN 目前这个程序是否正在运作当中,若为 - 表示正在运作

TTY 登入者的终端机位置

TIME 使用掉的 CPU 时间。

CMD 所下达的指令为何

在预设的情况下, ps 仅会列出与目前所在的 bash shell 有关的 PID 而已,所以, 当我使用 ps -l 的时候,只有三个 PID。

   实例6:列出目前所有的正在内存当中的程序

   命令:ps aux

   输出:

复制代码

   

代码如下:

[root@localhost test6]# ps aux

   USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND

   root 1 0.0 0.0 10368 676 ? Ss Nov02 0:00 init [3]

   root 2 0.0 0.0 0 0 ? S Nov02 0:01 [migration/0]

   root 3 0.0 0.0 0 0 ? SN Nov02 0:00 [ksoftirqd/0]

   root 4 0.0 0.0 0 0 ? S Nov02 0:01 [migration/1]

   root 5 0.0 0.0 0 0 ? SN Nov02 0:00 [ksoftirqd/1]

   root 6 0.0 0.0 0 0 ? S Nov02 29:57 [events/0]

   root 7 0.0 0.0 0 0 ? S Nov02 0:00 [events/1]

   root 8 0.0 0.0 0 0 ? S Nov02 0:00 [khelper]

   root 49 0.0 0.0 0 0 ? S Nov02 0:00 [kthread]

   root 54 0.0 0.0 0 0 ? S Nov02 0:00 [kblockd/0]

   root 55 0.0 0.0 0 0 ? S Nov02 0:00 [kblockd/1]

   root 56 0.0 0.0 0 0 ? S Nov02 0:00 [kacpid]

说明:

USER:该 process 属于那个使用者账号的

PID :该 process 的号码

%CPU:该 process 使用掉的 CPU 资源百分比

%MEM:该 process 所占用的物理内存百分比

VSZ :该 process 使用掉的虚拟内存量 (Kbytes)

RSS :该 process 占用的固定的内存量 (Kbytes)

TTY :该 process 是在那个终端机上面运作,若与终端机无关,则显示 ?,另外, tty1-tty6 是本机上面的登入者程序,若为 pts/0 等等的,则表示为由网络连接进主机的程序。

STAT:该程序目前的状态,主要的状态有

R :该程序目前正在运作,或者是可被运作

S :该程序目前正在睡眠当中 (可说是 idle 状态),但可被某些讯号 (signal) 唤醒。

T :该程序目前正在侦测或者是停止了

Z :该程序应该已经终止,但是其父程序却无法正常的终止他,造成 zombie (疆尸) 程序的状态

START:该 process 被触发启动的时间

TIME :该 process 实际使用 CPU 运作的时间

COMMAND:该程序的实际指令

   实例7:列出类似程序树的程序显示

   命令:ps -axjf

   输出:

复制代码

   

代码如下:

[root@localhost test6]# ps -axjf

   Warning: bad syntax, perhaps a bogus '-'? See /usr/share/doc/procps-3.2.7/FAQ

   PPID PID PGID SID TTY TPGID STAT UID TIME COMMAND

   0 1 1 1 ? -1 Ss 0 0:00 init [3]

   1 2 1 1 ? -1 S 0 0:01 [migration/0]

   1 3 1 1 ? -1 SN 0 0:00 [ksoftirqd/0]

   1 4 1 1 ? -1 S 0 0:01 [migration/1]

   1 5 1 1 ? -1 SN 0 0:00 [ksoftirqd/1]

   1 6 1 1 ? -1 S 0 29:58 [events/0]

   1 7 1 1 ? -1 S 0 0:00 [events/1]

   1 8 1 1 ? -1 S 0 0:00 [khelper]

   1 49 1 1 ? -1 S 0 0:00 [kthread]

   49 54 1 1 ? -1 S 0 0:00 /_ [kblockd/0]

   49 55 1 1 ? -1 S 0 0:00 /_ [kblockd/1]

   49 56 1 1 ? -1 S 0 0:00 /_ [kacpid]

说明:

   实例8:找出与 cron 与 syslog 这两个服务有关的 PID 号码

   命令:ps aux | egrep '(cron|syslog)'

   输出:

复制代码

   

代码如下:

[root@localhost test6]# ps aux | egrep '(cron|syslog)'

   root 2682 0.0 0.0 83384 2000 ? Sl Nov02 0:00 /sbin/rsyslogd -i /var/run/syslogd.pid -c 5

   root 2735 0.0 0.0 74812 1140 ? Ss Nov02 0:00 crond

   root 17475 0.0 0.0 61180 832 pts/0 S+ 16:27 0:00 egrep (cron|syslog)

   [root@localhost test6]#

其他实例:

   1. 可以用 | 管道和 more 连接起来分页查看

   命令:ps -aux |more

2. 把所有进程显示出来,并输出到ps001.txt文件

   命令:ps -aux ps001.txt

3. 输出指定的字段

   命令:ps -o pid,ppid,pgrp,session,tpgid,comm

   输出:

复制代码

   

代码如下:

[root@localhost test6]# ps -o pid,ppid,pgrp,session,tpgid,comm

   PID PPID PGRP SESS TPGID COMMAND

   17398 17394 17398 17398 17478 bash

   17478 17398 17478 17398 17478 ps

   [root@localhost test6]#




linux命令大全
1、su:用户切换 格式:su [选项] [使用者] 切换至root用户时,建议使用-选项,这样可以讲root的环境变量和工作目录同时带入。可以看到su root与su - root的环境变量是不同的。注意到当进入root用户时,符号$变为#。2、用户管理:useradd 用户添加 usermod 用户属性 userdel 用户删除 groupa...

linux命令大全之grep命令详解
命令:grep 'linux' test.txt test2.txt 输出:复制代码 代码如下:[root@localhost test]# grep -n 'linux' test.txt test2.txt test.txt:1:hnlinux test.txt:4:ubuntu linux test.txt:7:linuxmint test2.txt:1:linux [root@localhost test]# grep 'linux' test.txt test2.txt test.txt:hnlinux tes...

linux基本操作命令大全有哪些呢?
linux系统中操作指令有很多,最常用操作指令是:cd命令、cd命令、grep命令、find命令、cp命令、mv命令、rm命令、ps命令、kill命令、killall命令、file命令、tar命令、cat命令、chgrp命令、chown命令、chmod命令、pwd命令、vim命令、gcc命令、time命令。 1、cd命令 这是一个非常基本,用于切换当前目录,它的参数是要切换到...

Linux常用命令大全
mkfs \/dev\/hda1 在hda1分区创建一个文件系统 mke2fs \/dev\/hda1 在hda1分区创建一个linux ext2的文件系统 mke2fs -j \/dev\/hda1 在hda1分区创建一个linux ext3(日志型)的文件系统 mkfs -t vfat 32 -F \/dev\/hda1 创建一个 FAT32 文件系统 fdformat -n \/dev\/fd0 格式化一个软盘 mkswap \/dev\/hda3...

linux命令大全之scp命令详解
1.命令格式: scp [参数] [原路径] [目标路径]2.命令功能: scp是 secure copy的缩写, scp是linux系统下基于ssh登陆进行安全的远程文件拷贝命令。linux的scp命令可以在linux服务器之间复制文件和目录。3.命令参数: -1 强制scp命令使用协议ssh1 -2 强制scp命令使用协议ssh2 -4 强制scp命令只使用IPv4寻址 -...

linux 常用命令大全?
linux常用命令: 1、 pwd命令 该命令的英文解释为print working directory(打印工作目录)。输入pwd命令,Linux会输出当前目录。 2、 cd命令 cd命令用来改变所在目录。 cd \/ 转到根目录中 cd ~ 转到\/home\/user用户目录下 cd \/usr 转到根目录下的usr目录中---绝对路径 cd te...

Linux命令有哪些?Linux常用命令大全
Linux命令是对Linux系统进行管理的命令。对于Linux系统来说,无论是中央处理器、内存、驱动、键盘、鼠标,还是用户等都是文件,Linux命令是它正常运行的核心。接下来,就来看看xp系统下载编辑为各位带来的Linux常用命令大全吧! Linux常用命令大全100条: 1,echo “aa” 》 test.txt 和 echo “bb” 》...

linux命令大全之crontab命令使用详解
另外, 由于使用者自己也可以设置计划任务,所以, Linux 系统也提供了使用者控制计划任务的命令 :crontab 命令。 一、crond简介 crond是linux下用来周期性的执行某种任务或等待处理某些事件的一个守护进程,与windows下的计划任务类似,当安装完成操作系统后,默认会安装此服务工具,并且会自动启动crond进程,crond进程每分钟会...

Linux命令行技术大全目录
Linux命令行技术大全目录概述:第1章:磁盘管理 切换目录:cd, pwd 显示目录内容:ls, tree 创建\/删除目录:mkdir, rmdir 磁盘空间管理:quotacheck, quotaon, edquota, quota, repquota 文件系统创建:mkdosfs, mke2fs, mkfs, mkisofs 磁盘分区:fdisk, sfdisk, parted第2章:文件管理 基础文件...

linux命令大全
Linux命令大全精华概览<\/ 文件管理<\/: ls<\/ 显示文件属性,如 ls -l, -h, -a, -A;cd 改变目录,home、用户家目录,切换、上下级,.. 返回上一级。printenv 显示环境变量,date, clock, hwclock -W, hwclock -s 管理时间,cal 显示日历。帮助与查找: 内部命令用help,外部命令用man(翻页...

岚山区17168982374: linux 系统ps命令的用法是什么? -
鞠尝欣奇: ps命令最常用的还是用于监控后台进程的工作情况,因为后台进程是不和屏幕键盘这些标准输入/输出设备进行通信的,所以如果需要检测其情况,便可以使用ps命令了. 1) ps a 显示现行终端机下的所有程序,包括其他用户的程序. 2)ps -A 显示...

岚山区17168982374: linux 系统中得ps命令用法. -
鞠尝欣奇: ps命令 要对进程进行监测和控制,首先必须要 了解当前进程的情况,也就是需要查看当前进程,而ps命令就是最基本同时也是非常强大的进程查看命令.使用该命令 可以确定有哪些进程正在运行和运行的状态、进程是否结束、进程有没有僵尸、...

岚山区17168982374: Linux操作系统的PS命令有哪些呢?
鞠尝欣奇: 要对进程进行监测和控 制,首先必须要了解当前进程的情况,也就是需要查看当前进程,而 ps 命令就是最基本同时也是非常强大的进程查看命令.使用该命令可以确定有...

岚山区17168982374: Linux进程操作命令? -
鞠尝欣奇: ps命令可以查看当前系统运行的各个进程的状态-a 显示终端所有进程,包括其他用户的进程-u 查看进程所有者及详细信息-x 显示没有控制终端的进程-e 显示所有进程-l PPID和NI的显示格式 pstree 显示进程树结构 kill PID 终止进程 kill -9 PID 强制终止进程

岚山区17168982374: linux命令:1、使用ps命令显示当前进程的详细信息.
鞠尝欣奇: 1、ps aux2、who -a3、top -d 34、按内存top 按shift+M,按时间top 按shift+T5、“系统监视器”?top?6、Xorg是图形界面依赖的进程,强制终止那么图形界面就崩溃了7、有这样的指令吗?

岚山区17168982374: linux命令解释:ps - C php - o pid= - o cmd= ,麻烦解释的详细点,最好逐个说下. -
鞠尝欣奇: 这些内容你都可以通过查看ps的手册页找到说明 $ man ps 其中, -C 用来指定所执行的命令名称,你这里也就是让ps仅仅显示php命令所产生的进程的信息 -o 用来自定义进程信息的输出格式 ,-o pid= -o cmd= 就是让ps分别显示进程的pid和相应的命令和详细参数,这样ps命令就不会像默认的那样显示很多其他内容了,而只显示你关心的部分 总得说,就是用ps命令查看系统中当前以php命令产生的进程,并只显示进程的pid和命令加详细参数 所以,你要学会看man手册页 里面讲得很详细的. 希望对你有所帮助,如还有问题,欢迎交流:)

岚山区17168982374: Linux ps 是什么意思啊?ps - ef 是指正在运行的进程 -
鞠尝欣奇: ps是Linux 操作系统中的一个命令,用来查看系统进程的. 要对进程进行监测和控制,首先必须要了解当前进程的情况,也就是需要查看当前进程,而ps命令就是最基本同时也是非常强大的进程查看命令.使用该命令可以确定有哪些进程正在运...

岚山区17168982374: Linux查看进程命令有哪些 -
鞠尝欣奇: 首先我们需要打开终端,本经验以Fedora操作系统为例,其他的操作系统可能略有不同.打开终端之后我们输入ps,它就是我们今天的主角,ps是linux操作系统中最基本同时也是非常强大的进程查看命令,如果你对此命令不是十分了解,我们...

岚山区17168982374: linux命令ps - ef | grep httpd 是啥意思 -
鞠尝欣奇: 这条命令是用来检查进程中有无httpd开启或是启动. 下面是ps命令参数解释: -e 命令之后显示环境(如:ps -d e; ps -a e)(utility) -f 全部列出,通常和其他选项联用.如:ps -fa or ps -fx and so on. |管道命令 grep命令是一种强大的文本搜索工具,能使用正则表达式搜索文本,并把匹配的行打印来.grep全称是Global Regular Expression Print,表示全局正则表达式版本,使用权限是所有用户. ps -ef | grep httpd : 检查httpd进程是否存在.

岚山区17168982374: linux的ps命令
鞠尝欣奇: 和top里面是有Ss的 man了一下 ps和top 解释如下 PROCESS STATE CODES Here are the different values that the s, stat and state output specifiers (header "STAT" or "S") will display to describe the state of a process. D Uninterruptible ...

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 星空见康网