ps
Linux 系统中,有一个常用的命令叫做 ps,它的全称是 process status,即进程状态。它可以用来显示当前系统中运行的进程的各种信息,比如进程的 ID,用户,CPU 占用率,内存占用率,启动时间,运行时间,命令行等。ps 命令有很多参数,可以根据不同的需求来选择不同的输出格式和内容。
grep 是另一个常用的命令,它的全称是 global regular expression print,即全局正则表达式打印。它可以用来在文本中搜索符合指定正则表达式的内容,并把匹配的行打印出来。grep 命令也有很多参数,可以根据不同的需求来选择不同的匹配模式和输出格式。
ps 和 grep 命令可以结合起来使用,形成一个管道命令,即 ps -ef | grep 关键字。这个命令的意思是先用 ps -ef 命令列出所有进程的信息,然后用 grep 命令过滤出包含指定关键字的进程信息。这样就可以快速地找到我们感兴趣的进程,并查看它们的状态。
下面我们来具体解释一下 ps -ef | grep 关键字 这个命令的结果含义。首先,我们要了解 ps -ef 命令的输出格式。ps -ef 命令会显示以下几个字段:
- UID:进程的拥有者
- PID:进程的 ID
- PPID:进程的父进程 ID
- C:进程占用 CPU 的百分比
- STIME:进程启动的时间
- TTY:进程所在的终端设备
- TIME:进程运行的时间
- CMD:进程执行的命令
例如,我们执行 ps -ef | grep php 这个命令,就可以看到如下输出:
root 794 1 0 2020 ? 00:00:52 php-fpm: master process (/etc/php/7.3/fpm/php-fpm.conf)
www-data 951 794 0 2020 ? 00:24:15 php-fpm: pool www
www-data 953 794 0 2020 ? 00:24:14 php-fpm: pool www
www-data 954 794 0 2020 ? 00:24:29 php-fpm: pool www
这个输出表示系统中有四个 php 相关的进程在运行。第一行是 php-fpm 的主进程,它是由 init 进程(PID=1)启动的,它没有终端设备(TTY=?),它从 2020 年开始运行,占用了 52 秒的 CPU 时间。第二行到第四行是 php-fpm 的子进程,它们是由主进程(PID=794)启动的,它们也没有终端设备(TTY=?),它们从 2020 年开始运行,分别占用了 15 秒,14 秒和 29 秒的 CPU 时间。
当然,ps -ef | grep 关键字 这个命令也有一些注意事项。首先,这个命令会把 grep 关键字 自身也作为一个进程显示出来,因为 grep 命令也会匹配自己的命令行。例如,我们执行 ps -ef | grep ApacheJetspeed 这个命令,就会看到如下输出:
root 18887 18828 0 08:09 pts/0 00:00:00 grep ApacheJetspeed
这个输出表示系统中没有 ApacheJetspeed 相关的进程在运行,只有一个 grep ApacheJetspeed 的进程在运行。如果我们想要排除掉 grep 自身这个进程,我们可以使用一个小技巧,就是在关键字中加入一个正则表达式元字符 [ ] ,例如 [A]pacheJetspeed 。这样就可以避免 grep 命令匹配自己了。
其次,这个命令只能根据关键字进行粗略地过滤,并不能保证过滤出来的结果都是我们想要的。例如,我们执行 ps -ef | grep java 这个命令,就会看到如下输出:
root 18888 794 99 Oct20 ? 1-01:02:03 java -jar ApacheJetspeed.jar
root 18889 794 99 Oct20 ? 1-01:02:03 java -jar Tomcat.jar
root 18890 794 99 Oct20 ? 1-01:02:03 java -jar Jetty.jar
root 18891 794 99 Oct20 ? 1-01:02:03 java -jar SpringBoot.jar
root 18892 794 99 Oct20 ? 1-01:02:03 java -jar Minecraft.jar
root 18893 794 99 Oct20 ? 1-01:02:03 java -jar Solr.jar
root 18894 794 99 Oct20 ? 1-01:02:03 java -jar Elasticsearch.jar
root 18895 794 99 Oct20 ? 1-01:02:03 java -jar Kafka.jar
root 18896 794 99 Oct20 ? 1-01:02:03 java -jar Spark.jar
root 18897 794 99 Oct20 ? 1-01:02:03 java -jar Hadoop.jar
root 18898 794 99 Oct20 ? 1-01:02:03 java -jar Zookeeper.jar
这个输出表示系统中有十一个 java 相关的进程在运行。但是,并不是所有这些进程都是我们感兴趣的。例如,我们可能只想要查看 ApacheJetspeed 的进程状态,而不关心其他 java 应用程序或游戏。如果我们想要更精确地过滤出我们想要的结果,我们可以使用更复杂或更具体的正则表达式作为关键字。例如,我们可以执行 ps -ef | grep "java.*ApacheJetspeed" 这个命令,就会看到如下输出:
root 18888
这个输出表示系统中只有一个 ApacheJetspeed 相关的进程在运行。
总之,ps -ef | grep 关键字 这个命令结果含义是显示包含指定关键字的进程信息,并且每个字段都有特定的含义和格式。这个命令可以帮助我们快速地查看系统中运行的进程状态,并进行相应地管理或调试。但是这个命令也有一些局限性和注意事项,在使用时需要根据实际情况进行调整和优化。
举报/反馈
最近更新教育平台
- 河南出台28个重点产业链行动方案
- 玉林工务段聚力抗击台风“三巴”保障安全
- 2023下半年广西英语四级考试时间具体安排
- 【邀请函】11月29日,北京物资学院2024届毕业生秋招校园双选会(第三场)
- “超级稻”亩产809公斤!江苏省第一家水韵苏米“三品一标”示范基地诞生
- 北京市第八中学京西附属小学 院士开讲“太阳风暴”向学生发出科研“邀请”
- 多地高考报名时间提前 专家:考生把握好自己的学习节奏
- 光谷一街道就业超市开17家“连锁店”,专为60、70后待岗居民“供货”
- 思政有深度,育人有温度——郑州市第四十七中学管城三中校区开展中小学“思政一体化”
- 创新风潮迭起,2023深圳国际金融科技大赛——西丽湖金融科技大学生挑战赛正式启动
- 一图读懂丨上海松江新城“十四五” 规划出炉
- 美国众议院选举第二轮投票依旧无果 众议院仍处混乱状态
- [浦东]竹园小学:长岛|弘扬科学精神,X沪东“科堂”公益科普活动激发科学梦想
- 导读:郑州妇科医院排名公布
- 第六届进博会期间,上海部分道路和区域采取临时交通管制措施
- 热搜第一,王楚钦深夜发声!
- 成人自考本科通过率高吗?
- 打造雄安家门口的名校名院 “三校一院”平稳运行
- 弘一法师李叔同的《送别》:城南草堂结下天涯五友,挚友阔别留下传世之曲
- 早参|神舟十七号瞄准今日11时14分发射;2024年广州中考报名准备工作开启
- 人社部回应身份证和档案年龄不同退休依据哪个算
- 新银发族“求知若渴” 老年大学如何满足?
- 女子结婚要求前同事还礼400引热议,当事人:发了两次请帖,对方一直不理,后来还说
- 教师批学生对日不当称谓:怒拍桌子给学生们上了一课
- 英伟达将与鸿海共建AI工厂,涉及智能电动汽车、自主移动机器人等项目