前言


第一步:grep -v grep

grep(global search regular expression(RE) and print out the line,全面搜索正则表达式并把行打印出来)是一种强大的文本搜索工具,它能使用正则表达式搜索文本,并把匹配的行打印出来。

  • ps -ef|grep java就是通过管道的方式,将ps命令查询出来的进程信息内容筛选出与jar进程相关的数据

  • 但是使用grep命令过滤时会查询出grep自己的进程信息,示例如下:

    [root@localdomain1 ~]# ps -ef|grep xh-1.0-SNAPSHOT.jar
    root 3256 1 0 Aug11 ? 00:17:19 java -jar xh-1.0-SNAPSHOT.jar --spring.config.location=application.yml
    root 6435 6395 0 08:38 pts/1 00:00:00 grep --color=auto xh-1.0-SNAPSHOT.jar
  • 可以看到在查询到的进程信息中,除了我们需要的xh-1.0-SNAPSHOT.jar进程,还包括了grep --color=auto进程信息

  • 大多数情况下,在编写脚本时,往往需要精确获取到单一进程的信息,此时就需要通过 -v 参数排除掉grep进程的信息数据

  • -v 参数,作用是反转查找,即过滤出除了参数后面的其他数据,示例如下

    [root@localdomain1 ~]# ps -ef|grep xh-1.0-SNAPSHOT.jar |grep -v grep
    root 3256 1 0 Aug11 ? 00:17:19 java -jar xh-1.0-SNAPSHOT.jar --spring.config.location=application.yml
  • 可以发现,当我们在后面添加了|grep -v grep后,查询出来的结果就只剩下我们需要的xh-1.0-SNAPSHOT.jar进程信息了,说明grep进程已经被排除在外了

第二步:awk '{print $2}'

awk是行处理器: 相比较屏幕处理的优点,在处理庞大文件时不会出现内存溢出或是处理缓慢的问题,通常用来格式化文本信息

awk处理过程: 依次对每一行进行处理,然后输出

print & $0 是awk打印指定内容的主要命令

  • 在第一步中,我们查询出来了jar进程的信息,此时需要获取到这条进程信息的PID

  • 我们就可以使用awk命令将自己需要的某一列数据单独提取出来,示例如下

    [root@localdomain1 ~]# ps -ef|grep xh-1.0-SNAPSHOT.jar|grep -v grep|awk '{print $2}'
    3256
  • 其中,$2代表提取进程信息中第二列的值,而我们使用ps命令查询出的进程信息中的第二列对应的正好就是进程的PID(注意:$0表示获取整个当前行)

  • 可以看到,通过awk '{print $2}'命令,我们成功拿到了xh-1.0-SNAPSHOT.jar进程的PID

类似脚本示例(脚本来源

#检查程序是否在运行
is_exist(){
pid=`ps -ef|grep $APP_NAME|grep -v grep|awk '{print $2}'`
#如果不存在返回1,存在返回0
if [ -z "${pid}" ]; then
return 1
else
return 0
fi
}
 

【Linux】ps -ef|grep -v grep|awk '{print $2}' 命令详解的更多相关文章

  1. Linux防火墙iptables学习笔记(三)iptables命令详解和举例[转载]

     Linux防火墙iptables学习笔记(三)iptables命令详解和举例 2008-10-16 23:45:46 转载 网上看到这个配置讲解得还比较易懂,就转过来了,大家一起看下,希望对您工作能 ...

  2. Linux/CentOS 服务安装/卸载,开机启动chkconfig命令详解|如何让MySQL、Apache开机启动?

    chkconfig chkconfig在命令行操作时会经常用到.它可以方便地设置和查询不同运行级上的系统服务.这个可要好好掌握,用熟练之后,就可以轻轻松松的管理好你的启动服务了. 注:谨记chkcon ...

  3. linux shell 脚本攻略学习11--mkdir和touch命令详解

    一.创建目录(mkdir命令详解) amosli@amosli-pc:~/learn$ mkdir dir amosli@amosli-pc:~/learn/dir$ mkdir folder amo ...

  4. ifconfig|grep eth0|awk '{print $5}' 命令详解

    因需要将linx下获取某个网中的MAC地址,可以使用如下命令获取: ifconfig|grep eth0|awk '{print $5}' ifconfig: 输出linux下所有网口的信息(包括IP ...

  5. Linux下的awk文本分析命令详解

    一.简介 awk是一种编程语言,用于在linux/unix下对文本和数据进行处理.数据可以来自标准输入.一个或多个文件,或其它命令的输出.它支持用户自定义函数和动态正则表达式等先进功能,是linux/ ...

  6. linux的mount(挂载)NFS 共享,命令详解

    Linux下挂载(mount)光盘镜像文件.移动硬盘.U盘.Windows和NFS网络共享 linux是一个优秀的开放源码的操作系统,可以运行在大到巨型小到掌上型各类计算机系统上,随着 linux系统 ...

  7. linux bash Shell脚本经典 Fork炸弹演示及命令详解

    Jaromil 在 2002 年设计了最为精简的一个Linux Fork炸弹,整个代码只有13个字符,在 shell 中运行后几秒后系统就会宕机: :(){:|:&};: 这样看起来不是很好理 ...

  8. 【Linux】【Services】【KVM】virsh命令详解

    1. virsh的常用命令 help:获取帮助 virsh help KEYWORD list:列出域 dumpxml:导出指定域的xml格式的配置文件: create:创建并启动域: define: ...

  9. Liunx 日志检索 grep -v -a awk

    grep -5 'parttern' inputfile.log //打印匹配行的前后5行   grep -C 5 'parttern' inputfile.log //打印匹配行的前后5行   gr ...

  10. 什么是grep -v grep??

    1.grep 是查找含有指定文本行的意思,比如grep test 就是查找含有test的文本的行 2.grep -v 是反向查找的意思,比如 grep -v grep 就是查找不含有 grep 字段的 ...

随机推荐

  1. 2022年 GOPS 全球运维大会(上海站)资料分享

    2022年 GOPS 全球运维大会(上海站)主题为"XOps 风向标",共分为16个专场,主要侧重方向是运维.DevOps.AIOps.DevSecOps.云原生.研发效能.可观测 ...

  2. iOS堆和栈的使用小结

    堆和栈都是一种数据项按序排列的数据结构,只能在一端(称为栈顶(top))对数据项进行插入和删除.堆,队列优先,先进先出(FIFO-first in first out):栈,先进后出(FILO-Fir ...

  3. DOM 操作的常用 API 有哪些 ?

    DOM 操作的常用 API 就是DOM 通过API (接口)获取页面(html)元素: 1. 节点查询 API 1.1 document.querySelector()  选择第一个匹配的元素 1.2 ...

  4. webpack 的优点

    1. 社区庞大,活跃,紧跟技术的前言,不断发展迭代 : 2. 专注处理模块化的项目,可以开箱即用 : 3. 通过 loader 扩展,可以把所有类型的文件解析打包 : 4. 通过plugin 扩展 , ...

  5. 016 Python 中的基本运算符

    #!/usr/bin/env python # -*- coding:utf-8 -*- # Datatime:2022/7/28 15:01 # Filename:016 Python 中的基本运算 ...

  6. grafana配置告警

    首先,进入grafana控制面板,选择需要监控指标的区域,然后点击编辑 此时进入Alert页面会发现提示 Template variables are not supported in alert q ...

  7. Nuxt.js 应用中的 close 事件钩子详解

    title: Nuxt.js 应用中的 close 事件钩子详解 date: 2024/10/13 updated: 2024/10/13 author: cmdragon excerpt: clos ...

  8. OpenFunction 1.2.0 发布:集成 KEDA http-addon 作为同步函数运行时

    OpenFunction 是一个开源的云原生 FaaS(Function as a Service,函数即服务)平台,旨在帮助开发者专注于业务逻辑的研发.我们非常高兴地宣布 OpenFunction ...

  9. KubeSphere 社区双周报 | 本周六上海站 Meetup 准时开启 | 2023.7.21-08.03

    KubeSphere 社区双周报主要整理展示新增的贡献者名单和证书.新增的讲师证书以及两周内提交过 commit 的贡献者,并对近期重要的 PR 进行解析,同时还包含了线上/线下活动和布道推广等一系列 ...

  10. 智子: Vue Vapor年底发布alpha版本,如果有资金支持

    前言 在最近的Vue Fes大会上,Vue Vapor的作者智子大佬宣布,如果能够得到资金支持,那么Vue Vapor年底就能发布alpha版本了. 关注公众号:[前端欧阳],给自己一个进阶vue的机 ...