您当前的位置:首页 > 计算机 > 编程开发 > Shell

Linux使用什么命令查看进程

时间:03-05来源:作者:点击数:

通过前面章节的一些实例的学习,想必你已经知道了使用 ps 命令可以查看进程的信息,但除了 ps 命令,我们还可以使用 pstree 命令和 pgrep 命令查看当前进程的信息。

使用 ps 命令,可以查看当前的进程。默认情况下,ps 命令只会输出当前用户并且是当前终端(比如,当前Shell)下调用的进程的信息。其输出将类似如下所示:

[www.cdsy.xyz]$ ps
PID  TTY       TIME    CMD
4380 pts/0    00:00:00  bash
4414 pts/0    00:00:00  ps

我们从上面的输出中可以看到,默认情况下,ps 命令会显示进程 ID(PID)、与进程关联的终端(TTY)、格式为“[dd-]hh:mm:ss”的进程累积 CPU 时间(TIME),以及可执行文件的名称(CMD)。并且,输出内容默认是不排序的。

使用标准语法显示系统中的每个进程:

[www.cdsy.xyz]$ ps -ef | head -2
UID   PID PPID C  STIME  TTY  TIME     CMD
root   1   0   0  Janl4   ?  00:00:02  init [5]

使用 BSD 语法显示系统中的每个进程:

[www.cdsy.xyz]$ ps aux | head -2
USER  PID  %CPU   %MEM   VSZ  RSS TTY  STAT  START   TIME   COMMAND
root   1    0.0   0.0   2160  648  ?    Ss   Janl4   0:02   init [5]

使用 BSD 样式选项会增加进程状态(STAT)等信息作为默认显示,你也可以使用 PS_FORMAT 环境变量重写默认的输出格式。

查看系统中 httpd 进程的信息:

ps aux | grep httpd

使用 pstree 命令,可以显示进程树的信息:

[www.cdsy.xyz]$ pstree
init-+-acpid
     |-atd
     |-auditd-+-audispd---{audispd}
     |        `-{auditd}
     |-automount---4*[{automount}]
     |-avahi-daemon---avahi-daemon
     |-crond---5*[crond-+-mj.sh]
     |                  `-sendmail]
     |-cupsd
     |-dbus-daemon---{dbus-daemon}
     |-events/0
     |-events/1
     |-gam_server
     |-gpm
     |-hald---hald-runner-+-hald-addon-acpi
     |                    |-hald-addon-keyb
     |                    `-hald-addon-stor
     |-hcid
     |-hidd
     |-hpiod
     |-java-+-java---17*[{java}]
     |      `-14*[{java}]
     |-java-+-java---29*[{java}]
     |      `-14*[{java}]
     |-java-+-java---34*[{java}]
     |      `-14*[{java}]
     |-java---20*[{java}]
     |-java---292*[{java}]
     |-khelper
     |-klogd
     |-krfcommd
     |-ksoftirqd/0
     |-ksoftirqd/1
     |-kthread-+-aio/0
     |         |-aio/1
     |         |-ata/0
     |         |-ata/1
     |         |-ata_aux
     |         |-cqueue/0
     |         |-cqueue/1
     |         |-hd-audio0
     |         |-kacpid
     |         |-kauditd
     |         |-kblockd/0
     |         |-kblockd/1
     |         |-khubd
     |         |-khungtaskd
     |         |-2*[kjournald]
     |         |-kmpath_handlerd
     |         |-kmpathd/0
     |         |-kmpathd/1
     |         |-kondemand/0
     |         |-kondemand/1
     |         |-kpsmoused
     |         |-kseriod
     |         |-ksnapd
     |         |-kstriped
     |         |-kswapd0
     |         |-2*[pdflush]
     |         |-rpciod/0
     |         |-rpciod/1
     |         |-scsi_eh_0
     |         |-scsi_eh_1
     |         |-scsi_eh_2
     |         |-scsi_eh_3
     |         |-scsi_eh_4
     |         `-scsi_eh_5
     |-loop0
     |-mcstransd
     |-migration/0
     |-migration/1
     |-6*[mingetty]
     |-mj.sh---make---java---11*[{java}]
     |-ntpd
     |-pcscd---{pcscd}
     |-portmap
     |-python
     |-restorecond
     |-rpc.idmapd
     |-rpc.statd
     |-screen---bash---update.sh---cvs
     |-sendmail---2*[sendmail]
     |-sendmail
     |-setroubleshootd---2*[{setroubleshootd}]
     |-smartd
     |-sshd-+-sshd---bash---update_and_rest---cvs
     |      |-sshd---bash---pstree
     |      `-sshd---bash
     |-start_derby.sh---java---45*[{java}]
     |-surf---8*[{surf}]
     |-syslogd
     |-tomcat---sleep
     |-udevd
     |-watchdog/0
     |-watchdog/1
     |-xfs
     |-xinetd
     `-yum-updatesd

pstree 命令以树形结构的形式显示系统中所有当前运行的进程的信息。此树形结构以指定的 PID 为根,若没有指定 PID,则以 init 进程为根。下面,我们看一个显示指定 PID 的进程树的例子:

[www.cdsy.xyz]$ pstree 4578
httpd-11*[httpd]

上述输出内容的含义是,PID 是 4578 的 httpd 进程下有 11 个 httpd 子进程。在显示时,pstree 命令会将一样的分支合并到一个方括号中,并在方括号前显示重复的次数。

如果 pstree 命令指定的参数是用户名,那么就会显示以此用户的进程为根的所有进程树的信息。其显示内容将类似如下所示:

[www.cdsy.xyz]$ pstree mozhiyan
Xvnc
dbus-daemon
dbus-launch
dcopserver
gconfd-2
kded
kdeinit-+-bt-applet
        |-esc-+-esc---9*[{esc}]
        |  `-esc---6*[{esc}]
        |-2*[kio_file]
        |-kio—media
        |-klauncher
        `-kwin
kdesktop
kicker
klipper
ksmserver
bash---pstree
start_kdeinit
xstartup---startkde---kwrapper

使用 pgrep 命令,可以基于名称或其他属性查找进程。

pgrep 命令会检查当前运行的进程,并列出与选择标准相匹配的进程的 ID。例如,查看 root 用户的 sshd 进程的 PID:

[www.cdsy.xyz]$ pgrep -u root sshd
2877
6572
18563

列出所有者是 root 和 daemon 的进程的 PID:

pgrep -u root,daemon
方便获取更多学习、工作、生活信息请关注本站微信公众号城东书院 微信服务号城东书院 微信订阅号
推荐内容
相关内容
    无相关信息
栏目更新
栏目热门