linux(三十一)系统信息命令ps查看系统进程

本文涉及的产品
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
RDS MySQL Serverless 高可用系列,价值2615元额度,1个月
RDS MySQL DuckDB 分析主实例,集群系列 8核16GB
简介: linux(三十一)系统信息命令ps查看系统进程

Linux 查看系统进程命令ps,这个命令很重要。有点类似于windows的任务管理器的意思。


ps命令用来列出系统中当前运行的那些进程。


ps命令列出的是当前那些进程的快照。

 

就是执行ps命令的那个时刻的那些进程,如果想要动态的显示进程信息,就可以使用top命令。

 

1:参数


a  显示所有进程


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


-A 显示所有进程


c  显示进程的真实名称


-N 反向选择


-e 等于“-A”


e  显示环境变量


f  显示程序间的关系


-H 显示树状结构


r  显示当前终端的进程


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


u  指定用户的所有进程


-au 显示较详细的资讯


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


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


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


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


--help 显示帮助信息


--version 显示版本显示

 

Ps的参数比较多,这里基本上就是常用的参数。

 

2:示例


(1):显示所有当前进程

[root@iZuf60ynur81p6k0ysvtneZ /]# ps -ax
  PID TTY      STAT   TIME COMMAND
    1 ?        Ss     1:37 /usr/lib/systemd/systemd --switched-root --system --deserialize 22
    2 ?        S      0:00 [kthreadd]
    4 ?        S<     0:00 [kworker/0:0H]
    5 ?        S      0:07 [kworker/u2:0]
    6 ?        S      0:05 [ksoftirqd/0]
    7 ?        S      0:00 [migration/0]
    8 ?        S      0:00 [rcu_bh]
    9 ?        R      2:25 [rcu_sched]
   10 ?        S<     0:00 [lru-add-drain]
   11 ?        S      0:09 [watchdog/0]
   13 ?        S      0:00 [kdevtmpfs]
   14 ?        S<     0:00 [netns]
   15 ?        S      0:00 [khungtaskd]
   16 ?        S<     0:00 [writeback]
   17 ?        S<     0:00 [kintegrityd]
 …………………………………………………………

(2):根据用户过滤进程


在需要查看特定用户进程的情况下,我们可以使用 -u 参数。比如我们要查看用户apache的进程,可以通过下面的命令:

[root@iZuf60ynur81p6k0ysvtneZ /]# ps -u apache
  PID TTY          TIME CMD
  990 ?        00:00:07 php-fpm
  991 ?        00:00:07 php-fpm
  992 ?        00:00:09 php-fpm
  993 ?        00:00:08 php-fpm
  994 ?        00:00:07 php-fpm
 1170 ?        00:00:09 php-fpm
 1202 ?        00:00:08 php-fpm

 

(3):通过cpu和内存使用来过滤进程

[root@iZuf60ynur81p6k0ysvtneZ /]# ps -aux
USER       PID %CPU %MEM    VSZ   RSS TTY      STAT START   TIME COMMAND
root         1  0.0  0.2  51728  3956 ?        Ss   Aug12   1:37 /usr/lib/systemd/systemd --switched-root --system --deserialize 22
root         2  0.0  0.0      0     0 ?        S    Aug12   0:00 [kthreadd]
root         4  0.0  0.0      0     0 ?        S<   Aug12   0:00 [kworker/0:0H]
root         5  0.0  0.0      0     0 ?        S    Aug12   0:07 [kworker/u2:0]
root         6  0.0  0.0      0     0 ?        S    Aug12   0:05 [ksoftirqd/0]
root         7  0.0  0.0      0     0 ?        S    Aug12   0:00 [migration/0]
root         8  0.0  0.0      0     0 ?        S    Aug12   0:00 [rcu_bh]
root         9  0.0  0.0      0     0 ?        R    Aug12   2:25 [rcu_sched]
…………………………………………………………

 

(4):查找具体进程


我们来查找nginx的进程

[root@iZuf60ynur81p6k0ysvtneZ /]# ps -aux | grep nginx
root      8709  0.0  0.0  46604  1208 ?        Ss   Aug14   0:00 nginx: master process /usr/sbin/nginx -c /etc/nginx/nginx.conf
nginx     8710  0.0  0.1  47600  2940 ?        S    Aug14   0:01 nginx: worker process
root     22387  0.0  0.0 112812   968 pts/0    R+   16:51   0:00 grep --color=auto nginx
**
**

(5):通过进程名和PID过滤


我们来查找nginx

[root@iZuf60ynur81p6k0ysvtneZ /]# ps -C nginx
  PID TTY          TIME CMD
 8709 ?        00:00:00 nginx
 8710 ?        00:00:01 nginx

 

我们查看详细信息:

[root@iZuf60ynur81p6k0ysvtneZ /]# ps -f -C nginx
UID        PID  PPID  C STIME TTY          TIME CMD
root      8709     1  0 Aug14 ?        00:00:00 nginx: master process /usr/sbin/nginx -c /etc/nginx/nginx.conf
nginx     8710  8709  0 Aug14 ?        00:00:01 nginx: worker process

(6):根据线程来过滤进程

[root@iZuf60ynur81p6k0ysvtneZ /]#  ps -L 8710
  PID   LWP TTY      STAT   TIME COMMAND
 8710  8710 ?        S      0:01 nginx: worker process

(7):树形显示进程

[root@iZuf60ynur81p6k0ysvtneZ /]# ps -axjf
 PPID   PID  PGID   SID TTY      TPGID STAT   UID   TIME COMMAND
    1   852   852   852 ?           -1 Ssl    995  15:56 /usr/sbin/mysqld --basedir=/usr
    1  1042  1042  1042 ?           -1 Ss       0   0:00 /usr/sbin/sshd -D
 1042 20537 20537 20537 ?           -1 Ss       0   0:00  _ sshd: root@pts/0
20537 20539 20539 20539 pts/0    24360 Ss       0   0:00      _ -bash
20539 22155 22154 20539 pts/0    24360 T        0   0:00          _ less
20539 22297 22296 20539 pts/0    24360 T        0   0:00          _ less
20539 24360 24360 20539 pts/0    24360 R+       0   0:00          _ ps -axjf
    1  8709  8709  8709 ?           -1 Ss       0   0:00 nginx: master process /usr/sbin/nginx -c /etc/nginx/nginx.conf
 8709  8710  8709  8709 ?           -1 S      997   0:01  _ nginx: worker process
    1 10039 10039 10039 ?           -1 Ssl      0  79:39 /usr/sbin/aliyun-service
    1  5599  5599  5599 ?           -1 S<sl     0   4:38 /usr/local/aegis/aegis_update/AliYunDunUpdate
    1  5644  5644  5644 ?           -1 S<sl     0  78:15 /usr/local/aegis/aegis_client/aegis_10_85/AliYunDun

进程显示树形还有另一个命令pstree

[root@iZuf60ynur81p6k0ysvtneZ /]# pstree
systemd─┬─AliYunDun───22*[{AliYunDun}]
        ├─AliYunDunUpdate───3*[{AliYunDunUpdate}]
        ├─2*[agetty]
        ├─aliyun-service───2*[{aliyun-service}]
        ├─atd
        ├─auditd───{auditd}
        ├─chronyd
        ├─crond
        ├─dbus-daemon
        ├─dhclient
        ├─mysqld───29*[{mysqld}]
        ├─nginx───nginx
        ├─php-fpm───7*[php-fpm]
        ├─polkitd───6*[{polkitd}]
        ├─rsyslogd───2*[{rsyslogd}]
        ├─sshd───sshd───bash─┬─2*[less]
        │                    └─pstree
        ├─systemd-journal
        ├─systemd-logind
        ├─systemd-udevd
        └─tuned───4*[{tuned}]

 

(9):显示安全信息


如果想要查看现在有谁登入了你的服务器。可以使用ps命令加上相关参数:

[root@iZuf60ynur81p6k0ysvtneZ /]# ps -eo pid,user,args
  PID USER     COMMAND
  471 polkitd  /usr/lib/polkit-1/polkitd --no-debug
  472 dbus     /usr/bin/dbus-daemon --system --address=systemd: --nofork --nopidfile --systemd-activation
  487 root     /usr/lib/systemd/systemd-logind
  498 chrony   /usr/sbin/chronyd
  504 root     /usr/sbin/atd -f
  512 root     /usr/sbin/crond -n
  990 apache   php-fpm: pool www
  991 apache   php-fpm: pool www
  992 apache   php-fpm: pool www
  993 apache   php-fpm: pool www
  994 apache   php-fpm: pool www
 1042 root     /usr/sbin/sshd -D
 1170 apache   php-fpm: pool www
 1202 apache   php-fpm: pool www
8710 nginx    nginx: worker process

 

(10):把所有进程显示出来,并输出到ps001.txt文件

ps -aux > ps001.txt

(11):输出指定的字段

[root@iZuf60ynur81p6k0ysvtneZ /]# ps -o pid,ppid,pgrp,session,tpgid,comm
  PID  PPID  PGRP  SESS TPGID COMMAND
20539 20537 20539 20539 24823 bash
22155 20539 22154 20539 24823 less
22297 20539 22296 20539 24823 less
24602 20539 24602 20539 24823 watch
24643 20539 24643 20539 24823 watch
24823 20539 24823 20539 24823 ps

 

我这里对ps aux命令输出的每一列都代表什么解释一下:


USER:该进程是由哪个用户产生的


PD:进程的D号


%CPU:该进程占用CPU资源的百分比,占用越高,进程越耗费资源;


%MEM:该进程占用物理内存的百分比,占用越高,进程越耗费资源;


VSZ:该进程占用虚拟内存的大小,单位KB;


RSS:该进程占用实际物理内存的大小,单位KB;


TTY:该进程是在哪个终端中运行的。对于CentOS来说,y1是图形化终端,


ty2-y6是本地的字符界面终端。pts/0-255代表虚拟终端。


STAT:进程状态。常见的状态有:R:运行状态、S:睡眠状态、T:暂停状态、Z:僵尸状态、S:包含子进程、1:多线程、+:前台显示


START:该进程的启动时间~


最后,这里再扩展一个查看进程树的命令:pstree,运行实例如下

root@iZijvdp1z0m5q4Z:~# pstree
systemd─┬─AliSecGuard───6*[{AliSecGuard}]
        ├─AliYunDun───25*[{AliYunDun}]
        ├─AliYunDunUpdate───5*[{AliYunDunUpdate}]
        ├─CmsGoAgent.linu─┬─exe───12*[{exe}]
        │                 └─5*[{CmsGoAgent.linu}]
        ├─accounts-daemon───2*[{accounts-daemon}]
        ├─2*[agetty]
        ├─aliyun-service───8*[{aliyun-service}]
        ├─assist_daemon───7*[{assist_daemon}]
        ├─atd
        ├─chronyd
        ├─cron───6*[cron───sh───lynx───lynx]
        ├─dbus-daemon
        ├─mysqld───62*[{mysqld}]
        ├─networkd-dispat───{networkd-dispat}
        ├─nginx───2*[nginx]
        ├─php-fpm7.3───3*[php-fpm7.3]
        ├─redis-server───3*[{redis-server}]
        ├─rsyslogd───3*[{rsyslogd}]
        ├─sshd───sshd───bash───pstree
        ├─systemd───(sd-pam)
        ├─systemd-journal
        ├─systemd-logind
        ├─systemd-network
        ├─systemd-resolve
        ├─systemd-udevd
        └─unattended-upgr───{unattended-upgr}

pstree命令将所有进程以树状图显示,树状图将会以 pid (如果有指定) 或是以 init 这个基本进程为根 (root),如果有指定使用者 id,则树状图会只显示该使用者所拥有的进程。


有好的建议,请在下方输入你的评论。


相关实践学习
每个IT人都想学的“Web应用上云经典架构”实战
本实验从Web应用上云这个最基本的、最普遍的需求出发,帮助IT从业者们通过“阿里云Web应用上云解决方案”,了解一个企业级Web应用上云的常见架构,了解如何构建一个高可用、可扩展的企业级应用架构。
MySQL数据库入门学习
本课程通过最流行的开源数据库MySQL带你了解数据库的世界。 &nbsp; 相关的阿里云产品:云数据库RDS MySQL 版 阿里云关系型数据库RDS(Relational Database Service)是一种稳定可靠、可弹性伸缩的在线数据库服务,提供容灾、备份、恢复、迁移等方面的全套解决方案,彻底解决数据库运维的烦恼。 了解产品详情:&nbsp;https://www.aliyun.com/product/rds/mysql&nbsp;
目录
相关文章
|
3月前
|
Linux 应用服务中间件 Shell
二、Linux文本处理与文件操作核心命令
熟悉了Linux的基本“行走”后,就该拿起真正的“工具”干活了。用grep这个“放大镜”在文件里搜索内容,用find这个“探测器”在系统中寻找文件,再用tar把东西打包带走。最关键的是要学会使用管道符|,它像一条流水线,能把这些命令串联起来,让简单工具组合出强大的功能,比如 ps -ef | grep 'nginx' 就能快速找出nginx进程。
二、Linux文本处理与文件操作核心命令
|
3月前
|
Linux
linux命令—stat
`stat` 是 Linux 系统中用于查看文件或文件系统详细状态信息的命令。相比 `ls -l`,它提供更全面的信息,包括文件大小、权限、所有者、时间戳(最后访问、修改、状态变更时间)、inode 号、设备信息等。其常用选项包括 `-f` 查看文件系统状态、`-t` 以简洁格式输出、`-L` 跟踪符号链接,以及 `-c` 或 `--format` 自定义输出格式。通过这些选项,用户可以灵活获取所需信息,适用于系统调试、权限检查、磁盘管理等场景。
305 137
|
3月前
|
安全 Ubuntu Unix
一、初识 Linux 与基本命令
玩转Linux命令行,就像探索一座新城市。首先要熟悉它的“地图”,也就是/根目录下/etc(放配置)、/home(住家)这些核心区域。然后掌握几个“生存口令”:用ls看周围,cd去别处,mkdir建新房,cp/mv搬东西,再用cat或tail看文件内容。最后,别忘了随时按Tab键,它能帮你自动补全命令和路径,是提高效率的第一神器。
701 57
|
2月前
|
监控 关系型数据库 MySQL
在CentOS系统中,如何统计哪个进程打开了文件描述符?
利用上述方法,你可以有效地监控和统计CentOS系统中的进程打开的文件描述符数量,以帮助排查错误或优化系统配置。通过组合使用各种工具和命令,可以获得对系统状态和行为的深入了解,进而做出相应的调整和
129 5
|
2月前
|
存储 安全 Linux
Linux卡在emergency mode怎么办?xfs_repair 命令轻松解决
Linux虚拟机遇紧急模式?别慌!多因磁盘挂载失败。本文教你通过日志定位问题,用`xfs_repair`等工具修复文件系统,三步快速恢复。掌握查日志、修磁盘、验重启,轻松应对紧急模式,保障系统稳定运行。
452 2
|
3月前
|
缓存 监控 Linux
Linux内存问题排查命令详解
Linux服务器卡顿?可能是内存问题。掌握free、vmstat、sar三大命令,快速排查内存使用情况。free查看实时内存,vmstat诊断系统整体性能瓶颈,sar实现长期监控,三者结合,高效定位并解决内存问题。
306 0
Linux内存问题排查命令详解
|
3月前
|
Unix Linux 程序员
Linux文本搜索工具grep命令使用指南
以上就是对Linux环境下强大工具 `grep` 的基础到进阶功能介绍。它不仅能够执行简单文字查询任务还能够处理复杂文字处理任务,并且支持强大而灵活地正则表达规范来增加查询精度与效率。无论您是程序员、数据分析师还是系统管理员,在日常工作中熟练运用该命令都将极大提升您处理和分析数据效率。
284 16
|
Linux
百度搜索:蓝易云【Linux系统ps命令:查看正在运行的进程】
通过这些简洁的ps命令用法,你可以方便地查看Linux系统中正在运行的进程信息。
255 1
|
存储 监控 Linux
【Shell 命令集合 系统管理 】⭐⭐⭐Linux 查看当前正在运行的进程信息 ps命令 使用指南
【Shell 命令集合 系统管理 】⭐⭐⭐Linux 查看当前正在运行的进程信息 ps命令 使用指南
435 0
|
监控 Linux 应用服务中间件
探索Linux中的`ps`命令:进程监控与分析的利器
探索Linux中的`ps`命令:进程监控与分析的利器
412 13

热门文章

最新文章