300字范文,内容丰富有趣,生活中的好帮手!
300字范文 > Linux 命令之 ps -- 显示进程状态/查看进程信息

Linux 命令之 ps -- 显示进程状态/查看进程信息

时间:2023-01-22 03:28:06

相关推荐

Linux 命令之 ps -- 显示进程状态/查看进程信息

文章目录

介绍语法格式常用选项命令示例示例 1,查看进程的 PID、名称以及 CPU 占用率示例 2,查看所有的进程示例 3,按内存资源的使用量对进程进行排序示例 4,按 CPU 资源的使用量对进程进行排序示例 5,显示所有进程信息示例 6,显示指定用户的进程信息示例 7,查看所有进程示例 8,显示所有进程信息,连同命令行示例 9,结合命令 grep 查看指定进程的信息示例 10,通过名字或命令查看指定进程信息示例 11,查看所有进程,并按 CPU 降序,内存升序示例 12,用树的风格显示进程的层次关系示例 13,显示一个父进程的子进程示例 14,重定义标签,即自定义显示栏的名称,或者说显示列的名称示例 15,显示进程运行的时间示例 16,查看指定进程的详细信息示例 17,通过进程 id 获取服务名称示例 18,将目前属于您自己这次登入的进程与相关信息列示出来字段说明示例 19,列出目前所有正在内存当中的程序字段说明示例 20,按程序树的形式来显示进程的信息示例 21,查看服务名称含有 cron 或者 syslog 的进程信息示例 22,把所有进程显示出来,并输出到 ps001.txt 文件示例 23,用管道符|管道和more连接起来分页查看所有的进程示例 24,按指定的字段来显示进程的信息

介绍

ps 命令是“process status”的缩写,ps 命令用于显示当前系统的进程状态。可以搭配kill指令随时中断、删除不必要的程序。

ps 命令是最基本同时也是非常强大的进程查看命令,使用该命令可以确定有哪些进程正在运行和运行的状态、进程是否结束、进程有没有僵死、哪些进程占用了过多的资源等等,总之大部分信息都是可以通过执行该命令得到的。

语法格式

ps [选项]

常用选项

命令示例

示例 1,查看进程的 PID、名称以及 CPU 占用率

[root@htlwk0001host ~]# ps axo pid,comm,pcpuPID COMMAND %CPU1 systemd0.02 kthreadd 0.03 rcu_gp 0.04 rcu_par_gp 0.06 kworker/0:0H0.08 mm_percpu_wq0.0

示例 2,查看所有的进程

[root@htlwk0001host ~]# ps -auxUSER PID %CPU %MEM VSZ RSS TTYSTAT START TIME COMMANDroot 1 0.0 0.2 179148 9780 ? Ss 12:36 /usr/lib/systroot 2 0.0 0.000 ? S 0:02 [kthreadd]root 3 0.0 0.000 ? I< 0:00 [rcu_gp]root 4 0.0 0.000 ? I< 0:00 [rcu_par_gp]root 6 0.0 0.000 ? I< 0:00 [kworker/0:0Hroot 8 0.0 0.000 ? I< 0:00 [mm_percpu_wqroot 9 0.0 0.000 ? S 0:05 [ksoftirqd/0]

示例 3,按内存资源的使用量对进程进行排序

[root@htlwk0001host ~]# ps aux | sort -rnk 4

示例 4,按 CPU 资源的使用量对进程进行排序

[root@htlwk0001host ~]# ps aux | sort -nk 3

示例 5,显示所有进程信息

[root@htlwk0001host ~]# ps -APID TTYTIME CMD1 ? 00:12:36 systemd2 ? 00:00:02 kthreadd3 ? 00:00:00 rcu_gp4 ? 00:00:00 rcu_par_gp[root@htlwk0001host ~]# ps -aux # 也是查看所有的进程

示例 6,显示指定用户的进程信息

[root@htlwk0001host ~]# ps -u rootPID TTYTIME CMD1 ? 00:12:36 systemd2 ? 00:00:02 kthreadd3 ? 00:00:00 rcu_gp

示例 7,查看所有进程

[root@htlwk0001host ~]# ps -efLUIDPID PPIDLWP C NLWP STIME TTYTIME CMDroot 1 0 1 0 1 ? 00:12:36 /usr/lib/systemd/systemd --switched-root --system --deserialize 17root 2 0 2 0 1 ? 00:00:02 [kthreadd]root 3 2 3 0 1 ? 00:00:00 [rcu_gp]

示例 8,显示所有进程信息,连同命令行

[root@htlwk0001host ~]# ps -efUIDPID PPID C STIME TTYTIME CMDroot 1 0 0 ? 00:12:36 /usr/lib/systemd/systemd --switched-root --system --deserialize 17root 2 0 0 ? 00:00:02 [kthreadd]root 3 2 0 ? 00:00:00 [rcu_gp]

示例 9,结合命令 grep 查看指定进程的信息

通过 ps 与 grep 的组合用法,查看进程 ssh 的信息:

[root@htlwk0001host ~]# ps -ef | grep ssh

示例 10,通过名字或命令查看指定进程信息

查看命令 nginx 的进程信息:

[root@htlwk0001host ~]# ps -C nginxPID TTYTIME CMD26556 ? 00:00:00 nginx414774 ? 00:00:23 nginx414775 ? 00:00:00 nginx

示例 11,查看所有进程,并按 CPU 降序,内存升序

[root@htlwk0001host ~]# ps aux --sort=-pcpu,+pmemUSER PID %CPU %MEM VSZ RSS TTYSTAT START TIME COMMANDroot545600 0.0 0.0 17832 1580 ? Ssl 1月30 6:17 /usr/local/share/assist-daemon/assist_daemonroot558809 0.0 0.0 13100 1596 tty5Ss+ 2月02 0:00 /sbin/agetty -o -p -- \u --noclear tty5 linuxroot558808 0.0 0.0 13100 1708 tty6Ss+ 2月02 0:00 /sbin/agetty -o -p -- \u --noclear tty6 linuxroot558810 0.0 0.0 13100 1756 tty4Ss+ 2月02 0:00 /sbin/agetty -o -p -- \u --noclear tty4 linuxroot 34295 0.0 0.0 98700 1864 ? Ss 0:00 svnserve -d -r /opt/svn/qydpw/

注:-表示降序,+表示升序

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

[root@htlwk0001host ~]# ps -f --forest -C nginxUIDPID PPID C STIME TTYTIME CMDroot 26556 1 0 ? 00:00:00 nginx: master process nginxroot414774 26556 0 ? 00:00:23 \_ nginx: worker processroot414775 26556 0 ? 00:00:00 \_ nginx: worker process[root@htlwk0001host ~]#

示例 13,显示一个父进程的子进程

[root@htlwk0001host ~]# ps -o pid,uname,comm -C nginxPID USERCOMMAND26556 rootnginx414774 rootnginx414775 rootnginx

示例 14,重定义标签,即自定义显示栏的名称,或者说显示列的名称

[root@htlwk0001host ~]# ps -e -o pid,uname=USERNAME,pcpu=CPU_USAGE,pmem,commPID USERNAME CPU_USAGE %MEM COMMAND1 root 0.0 0.2 systemd2 root 0.0 0.0 kthreadd3 root 0.0 0.0 rcu_gp4 root 0.0 0.0 rcu_par_gp

示例 15,显示进程运行的时间

[root@htlwk0001host ~]# ps -e -o pid,comm,etimePID COMMAND ELAPSED1 systemd 201-06:48:462 kthreadd 201-06:48:46

示例 16,查看指定进程的详细信息

查看 named 进程的详细信息:

[root@htlwk0001host ~]# ps -aux | grep namedroot828974 0.0 0.0 12320 1068 pts/0 S+ 16:51 0:00 grep --color=auto named[root@htlwk0001host ~]#

示例 17,通过进程 id 获取服务名称

[root@htlwk0001host ~]# ps -o command -p 9 | sed -n 2p[ksoftirqd/0]

示例 18,将目前属于您自己这次登入的进程与相关信息列示出来

[root@htlwk0001host ~]# ps -lF S UIDPID PPID C PRI NI ADDR SZ WCHAN TTYTIME CMD0 S0 828665 828664 0 80 0 - 7418 -pts/0 00:00:00 bash0 R0 828984 828665 0 80 0 - 11404 -pts/0 00:00:00 ps

字段说明

在预设的情况下, ps 仅会列出与目前所在的 bash shell 有关的 PID 而已,所以, 当我使用 ps -l 的时候,只有2个 PID。F# 代表这个程序的旗标 (flag), 例如:4 代表使用者为 super userS# 代表这个程序的状态 (STAT)UID # 进程所属用户 IDPID # 进程 IDPPID # 上级父程序的IDC CPU # 使用的资源百分比PRI # 这个是 Priority (优先执行序) 的缩写NI # 这个是 Nice 值ADDR # 这个是 kernel function,指出该程序在内存的那个部分。如果是个 running的程序,一般就是 "-"SZ # 使用掉的内存大小WCHAN # 目前这个程序是否正在运作当中,若为 - 表示正在运作TTY # 登入者的终端机位置TIME # 使用掉的 CPU 时间CMD # 所下达的指令为何

示例 19,列出目前所有正在内存当中的程序

[root@htlwk0001host ~]# ps auxUSER PID %CPU %MEM VSZ RSS TTYSTAT START TIME COMMANDroot 1 0.0 0.2 179148 9780 ? Ss 12:36 /usr/lib/systemd/systemd --switched-root --system --deserialize 17root 2 0.0 0.000 ? S 0:02 [kthreadd]root 3 0.0 0.000 ? I< 0:00 [rcu_gp]root 4 0.0 0.000 ? I< 0:00 [rcu_par_gp]root 6 0.0 0.000 ? I< 0:00 [kworker/0:0H]

字段说明

USER # 该 process 属于那个使用者账号的PID# 该 process 的编号%CPU # 该 process 使用掉的 CPU 资源百分比%MEM # 该 process 所占用的物理内存百分比VSZ# 该 process 使用掉的虚拟内存量 (Kbytes)VSZ (Virtual Memory Size),表明是虚拟内存大小,表明了该进程可以访问的所有内存,包括被交换的内存和共享库内存。RSS# 该 process 占用的固定的内存量 (Kbytes)RSS( Resident Set Size )常驻内存集合大小,表示相应进程在RAM中占用了多少内存,并不包含在SWAP中占用的虚拟内存。在内存中使用的共享库的内存大小也一并计算在内,包含了完整的在stack和heap中的内存。TTY# 该 process 是在那个终端机上面运作,若与终端机无关,则显示问号 ?。另外, tty1-tty6 是本机上面的登入者程序,若为 pts/0 等等的,则表示为由网络连接进主机的程序。STAT # 该程序目前的状态,主要的状态有:R # 该程序目前正在运作,或者是可被运作S # 该程序目前正在睡眠当中 (可说是 idle 状态),但可被某些讯号 (signal) 唤醒。T # 该程序目前正在侦测或者是停止了Z # 该程序应该已经终止,但是其父程序却无法正常的终止他,造成 zombie (疆尸) 程序的状态START # 该 process 被触发启动的时间TIME # 该 process 实际使用 CPU 运作的时间COMMAND # 该程序的实际指令

示例 20,按程序树的形式来显示进程的信息

[root@htlwk0001host ~]# ps -axjfPPIDPID PGIDSID TTY TPGID STAT UID TIME COMMAND0 2 0 0 ? -1 S 0 0:02 [kthreadd]2 3 0 0 ? -1 I< 0 0:00 \_ [rcu_gp]2 4 0 0 ? -1 I< 0 0:00 \_ [rcu_par_gp]2 6 0 0 ? -1 I< 0 0:00 \_ [kworker/0:0H]2 8 0 0 ? -1 I< 0 0:00 \_ [mm_percpu_wq]2 9 0 0 ? -1 S 0 0:05 \_ [ksoftirqd/0]210 0 0 ? -1 I 0 9:12 \_ [rcu_sched]211 0 0 ? -1 S 0 0:00 \_ [migration/0]212 0 0 ? -1 S 0 0:00 \_ [watchdog/0]213 0 0 ? -1 S 0 0:00 \_ [cpuhp/0]

示例 21,查看服务名称含有 cron 或者 syslog 的进程信息

[root@htlwk0001host ~]# ps aux | egrep '(cron|syslog)'dbus 728 0.0 0.1 56448 5252 ? Ss 9:47 /usr/bin/dbus-daemon --system --address=systemd: --nofork --nopidfile --systemd-activation --syslog-onlyroot 1087 0.0 0.2 511332 9036 ? Ssl 5:32 /usr/sbin/rsyslogd -nroot 1096 0.0 0.0 36092 3516 ? Ss 0:10 /usr/sbin/crond -nroot829022 0.0 0.0 12320 2448 pts/0 S+ 17:10 0:00 grep -E --color=auto (cron|syslog)[root@htlwk0001host ~]#

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

[root@htlwk0001host ~]# ps -aux > ps001.txt

示例 23,用管道符|管道和more连接起来分页查看所有的进程

liaowenongdeair:bin root# ps -ef|moreUID PID PPID C STIME TTY TIME CMD010 0 8:13上午 ?? 1:15.47 /sbin/launchd0 571 0 8:13上午 ?? 0:03.13 /usr/sbin/syslogd0 581 0 8:13上午 ?? 0:13.99 /usr/libexec/UserEventAgent (System)0 611 0 8:13上午 ?? 0:01.70 /System/Library/PrivateFrameworks/Uninstall.framework/Resources/uninstalld0 621 0 8:13上午 ?? 0:37.31 /System/Library/Frameworks/CoreServices.framework/Versions/A/Frameworks/FSEvents.framework/Versions/A/Support/fseventsd0 631 0 8:13上午 ?? 0:00.54 /System/Library/PrivateFrameworks/MediaRemote.framework/Support/mediaremoted0 651 0 8:13上午 ?? 12:57.99 /Applications/SunloginClient.app/Contents/MacOS/SunloginClient -m service0 671 0 8:13上午 ?? 0:48.33 /usr/sbin/systemstats --daemon

示例 24,按指定的字段来显示进程的信息

liaowenongdeair:bin root# ps -o pid,ppid,uid,tpgid,commPID PPID UID TPGID COMM1630 15990 3183 login1637 16310 3183 sudo1638 16370 3183 -bash3183 16380 3183 ps

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。