• 【树莓派不吃灰】命令篇⑤ ps -ef | grep xxx | grep -v grep | wc -l 命令


    在这里插入图片描述

    • ❤️ 博客主页 单片机菜鸟哥,一个野生非专业硬件IOT爱好者 ❤️
    • ❤️ 本篇创建记录 2022-11-18 ❤️
    • ❤️ 本篇更新记录 2022-11-18 ❤️
    • 🎉 欢迎关注 🔎点赞 👍收藏 ⭐️留言 📝
    • 🙏 此博客均由博主单独编写,不存在任何商业团队运营,如发现错误,请留言轰炸哦!及时修正!感谢支持!
    • 🔥 Arduino ESP8266教程累计帮助过超过1W+同学入门学习硬件网络编程,入选过选修课程,刊登过无线电杂志🔥

    1. 简介

    我们经常用来查找某一个进程是否存在的时候,经常用到命令

    ps -ef | grep xxxx | grep -v grep | wc -l
    其中 xxx就表示某一个具体进程名字,比如我们过滤Python3

    pi@raspberrypi:/lib/systemd $ ps -ef
    UID        PID  PPID  C STIME TTY          TIME CMD
    root         1     0  0 Nov13 ?        00:00:31 /sbin/init splash
    systemd+   318     1  0 Nov13 ?        00:00:02 /lib/systemd/systemd-timesyncd
    avahi      400     1  0 Nov13 ?        00:00:39 avahi-daemon: running [raspberrypi.local]
    root       401     1  0 Nov13 ?        00:00:01 /usr/sbin/cron -f
    message+   402     1  0 Nov13 ?        00:00:02 /usr/bin/dbus-daemon --system --address=systemd: --nofork --nopidfile --systemd
    avahi      405   400  0 Nov13 ?        00:00:00 avahi-daemon: chroot helper
    root       413     1  0 Nov13 ?        00:00:00 /usr/libexec/polkitd --no-debug
    root       420     1  0 Nov13 ?        00:00:09 /usr/sbin/rsyslogd -n -iNONE
    root       424     1  0 Nov13 ?        00:00:02 /lib/systemd/systemd-logind
    nobody     427     1  0 Nov13 ?        00:00:05 /usr/sbin/thd --triggers /etc/triggerhappy/triggers.d/ --socket /run/thd.socket
    root       428     1  0 Nov13 ?        00:00:01 /usr/libexec/udisks2/udisksd
    root       431     1  0 Nov13 ?        00:00:02 /sbin/wpa_supplicant -u -s -O /run/wpa_supplicant
    root       481     1  0 Nov13 ?        00:00:02 /usr/sbin/dhcpcd -b -q
    root       499     1  0 Nov13 ?        00:00:07 /usr/sbin/rngd -r /dev/hwrng
    root       503     1  0 Nov13 ?        00:00:00 /usr/sbin/ModemManager
    epmd       507     1  0 Nov13 ?        00:00:06 /usr/bin/epmd -systemd
    root       519     1  0 Nov13 ?        00:00:00 /usr/bin/vncserver-x11-serviced -fg
    root       524     1  0 Nov13 ?        00:04:12 /usr/bin/containerd
    root       525   519  0 Nov13 ?        00:01:18 /usr/bin/vncserver-x11-core -service
    root       532     1  0 Nov13 ?        00:00:00 /usr/sbin/lightdm
    root       572     1  0 Nov13 ?        00:01:47 sshd: /usr/sbin/sshd -D [listener] 0 of 10-100 startups
    root       585   532  0 Nov13 tty7     00:02:49 /usr/lib/xorg/Xorg :0 -seat seat0 -auth /var/run/lightdm/root/:0 -nolisten tcp 
    root       586     1  0 Nov13 tty1     00:00:00 /bin/login -f
    root       587     1  0 Nov13 ?        00:01:05 wpa_supplicant -B -c/etc/wpa_supplicant/wpa_supplicant.conf -iwlan0
    root       619   525  0 Nov13 ?        00:00:00 /usr/bin/vncagent service 0
    root       625     1  0 Nov13 ?        00:07:00 /usr/bin/dockerd -H fd:// --containerd=/run/containerd/containerd.sock
    root       642   532  0 Nov13 ?        00:00:00 lightdm --session-child 14 17
    pi         657     1  0 Nov13 ?        00:00:00 /lib/systemd/systemd --user
    pi         665   657  0 Nov13 ?        00:00:00 (sd-pam)
    pi         743   657  0 Nov13 ?        00:00:00 /usr/bin/pipewire
    pi         744   657  0 Nov13 ?        00:00:00 /usr/bin/pulseaudio --daemonize=no --log-target=journal
    pi         750   586  0 Nov13 tty1     00:00:00 -bash
    pi         753   642  0 Nov13 ?        00:00:11 /usr/bin/lxsession -s LXDE-pi -e LXDE -w openbox-lxde-pi
    pi         788   657  0 Nov13 ?        00:00:00 /usr/bin/dbus-daemon --session --address=systemd: --nofork --nopidfile --system
    rtkit      789     1  0 Nov13 ?        00:00:07 /usr/libexec/rtkit-daemon
    pi         934   743  0 Nov13 ?        00:00:04 /usr/bin/pipewire-media-session
    pi         996   753  0 Nov13 ?        00:00:02 /usr/bin/ssh-agent x-session-manager
    root      1138     1  0 Nov13 ?        00:00:00 /usr/bin/hciattach /dev/serial1 bcm43xx 3000000 flow -
    pi        1150   657  0 Nov13 ?        00:00:00 /usr/libexec/gvfsd
    root      1160     1  0 Nov13 ?        00:00:00 /usr/libexec/bluetooth/bluetoothd
    pi        1172   657  0 Nov13 ?        00:01:12 /usr/libexec/gvfsd-fuse /run/user/1000/gvfs -f
    pi        1199   753  0 Nov13 ?        00:00:00 openbox --config-file /home/pi/.config/openbox/lxde-pi-rc.xml
    pi        1203   753  0 Nov13 ?        00:00:00 lxpolkit
    pi        1207   753  0 Nov13 ?        00:09:37 lxpanel --profile LXDE-pi
    pi        1209   753  0 Nov13 ?        00:00:01 pcmanfm --desktop --profile LXDE-pi
    root      1215     2  0 Nov13 ?        00:00:00 [cryptd]
    pi        1227     1  0 Nov13 ?        00:00:00 /usr/libexec/geoclue-2.0/demos/agent
    pi        1242     1  0 Nov13 ?        00:00:00 /usr/bin/ssh-agent -s
    pi        1250     1  0 Nov13 ?        00:00:00 /usr/bin/python3 /usr/share/system-config-printer/applet.py
    pi        1257     1  0 Nov13 ?        00:00:00 xcompmgr -aR
    root      1300     2  0 Nov13 ?        00:00:00 [krfcommd]
    root      1317     2  0 14:25 ?        00:00:00 [kworker/1:2-mm_percpu_wq]
    root      1319   625  0 Nov13 ?        00:00:00 /usr/bin/docker-proxy -proto tcp -host-ip 0.0.0.0 -host-port 9000 -container-ip
    root      1325   625  0 Nov13 ?        00:00:00 /usr/bin/docker-proxy -proto tcp -host-ip :: -host-port 9000 -container-ip 172.
    root      1343   625  0 Nov13 ?        00:00:00 /usr/bin/docker-proxy -proto tcp -host-ip 0.0.0.0 -host-port 8000 -container-ip
    root      1351   625  0 Nov13 ?        00:00:00 /usr/bin/docker-proxy -proto tcp -host-ip :: -host-port 8000 -container-ip 172.
    pi        1364   525  0 Nov13 ?        00:00:02 /usr/bin/vncserverui service 0
    pi        1375  1364  0 Nov13 ?        00:00:00 /usr/bin/vncserverui -statusicon 0
    root      1382     1  0 Nov13 ?        00:01:41 /usr/bin/containerd-shim-runc-v2 -namespace moby -id 4b76c996f6fc5d9537f1d9f442
    root      1383     1  0 Nov13 ?        00:01:39 /usr/bin/containerd-shim-runc-v2 -namespace moby -id 0939aabe6a094e13b0eece41cb
    root      1576  1444  0 Nov13 ?        00:00:00 s6-supervise s6rc-oneshot-runner
    root      1577  1444  0 Nov13 ?        00:00:00 s6-supervise s6rc-fdholder
    root      1595  1576  0 Nov13 ?        00:00:00 /package/admin/s6/command/s6-ipcserverd -1 -- /package/admin/s6/command/s6-ipcs
    root      1630  1444  0 Nov13 ?        00:00:00 s6-supervise home-assistant
    root      1632  1630  0 Nov13 ?        00:15:29 python3 -m homeassistant --config /config
    root      1768     1  0 Nov13 ?        00:00:38 /usr/libexec/packagekitd
    root      2019     1  1 Nov13 ?        01:47:07 /usr/bin/frpc -c /etc/frp/frpc.ini
    root      7664     2  0 12:17 ?        00:00:00 [kworker/3:2H]
    root      8065   572  0 13:44 ?        00:00:00 sshd: pi [priv]
    pi        8071  8065  2 13:44 ?        00:01:53 sshd: pi@pts/0,pts/1
    pi        8072  8071  0 13:44 pts/0    00:00:00 -bash
    pi        8083  8071  0 13:44 pts/1    00:00:00 -bash
    pi        8084  8071  0 13:44 ?        00:00:00 /usr/lib/openssh/sftp-server
    pi        8135  8083  1 13:44 pts/1    00:01:01 top
    root      8427     2  0 14:36 ?        00:00:00 [kworker/2:0-events_power_efficient]
    root      9537     2  0 13:46 ?        00:00:00 [kworker/0:2H]
    pi       10843  8072  0 14:40 pts/0    00:00:00 top
    root     23230     1  0 00:00 ?        00:00:00 /usr/sbin/cupsd -l
    root     23231     1  0 00:00 ?        00:00:00 /usr/sbin/cups-browsed
    pi       24626  8071  2 15:02 ?        00:00:00 bash -c export LANG="en_US";export LANGUAGE="en_US";export LC_ALL="en_US";free;
    pi       24631 24626  0 15:02 ?        00:00:00 sleep 1
    pi       24632  8072  0 15:02 pts/0    00:00:00 ps -ef
    root     32717     2  0 14:23 ?        00:00:00 [kworker/3:1-events]
    pi@raspberrypi:/lib/systemd $ ps -ef | grep python3
    pi        1250     1  0 Nov13 ?        00:00:00 /usr/bin/python3 /usr/share/system-config-printer/applet.py
    root      1632  1630  0 Nov13 ?        00:15:29 python3 -m homeassistant --config /config
    pi       24862  8072  0 15:02 pts/0    00:00:00 grep --color=auto python3
    pi@raspberrypi:/lib/systemd $ ps -ef | grep python3 | grep -v grep
    pi        1250     1  0 Nov13 ?        00:00:00 /usr/bin/python3 /usr/share/system-config-printer/applet.py
    root      1632  1630  0 Nov13 ?        00:15:29 python3 -m homeassistant --config /config
    pi@raspberrypi:/lib/systemd $ ps -ef | grep python3 | grep -v grep | wc -l
    2
    pi@raspberrypi:/lib/systemd $ 
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32
    • 33
    • 34
    • 35
    • 36
    • 37
    • 38
    • 39
    • 40
    • 41
    • 42
    • 43
    • 44
    • 45
    • 46
    • 47
    • 48
    • 49
    • 50
    • 51
    • 52
    • 53
    • 54
    • 55
    • 56
    • 57
    • 58
    • 59
    • 60
    • 61
    • 62
    • 63
    • 64
    • 65
    • 66
    • 67
    • 68
    • 69
    • 70
    • 71
    • 72
    • 73
    • 74
    • 75
    • 76
    • 77
    • 78
    • 79
    • 80
    • 81
    • 82
    • 83
    • 84
    • 85
    • 86
    • 87
    • 88
    • 89
    • 90
    • 91
    • 92
    • 93
    • 94
    • 95
    • 96

    这里其实就是执行了4个命令以及命令之间的输出输入通过管道传输。

    • ps -ef 指令用来查询所有进程
    • grep xxxx 过滤指定 xxxx进程
    • grep -v反向查询的意思,即过滤出不包含 -v 参数后指定字符的信息
      grep -v grep 的作用是即反向过滤除结果集中包含 grep 的项
    • wc -l 是统计结果的行数

    所以整条命令:过滤并统计包含 "xxxx" 关键字的进程个数
    注意疑问点是:

    为什么需要去除包含 grep 的项,什么是包含 grep 的项???

    2. grep -v grep 命令作用

    只要我们把所有命令都一步步执行就能知道为什么需要它。以Python3为例子。

    2.1 ps -ef | grep python3

    这里是两条命令

    • ps -ef
    • grep python3

    先执行 ps -ef 统计所有进程信息,“-e” 参数代表显示所有进程,“-f” 参数代表全格式;

    再执行 grep python3这个命令过滤进程,该命令本身执行的时候也是一个进程,并也带有 python3 关键字,所以其会出现在最后输出的进程信息里

    pi@raspberrypi:/lib/systemd $ ps -ef | grep python3
    pi        1250     1  0 Nov13 ?        00:00:00 /usr/bin/python3 /usr/share/system-config-printer/applet.py
    root      1632  1630  0 Nov13 ?        00:15:29 python3 -m homeassistant --config /config
    pi       24862  8072  0 15:02 pts/0    00:00:00 grep --color=auto python3
    
    • 1
    • 2
    • 3
    • 4

    看到第三行就明白了。

    pi 24862 8072 0 15:02 pts/0 00:00:00 grep --color=auto python3

    2.2 grep -v grep

    我们要查找的是 python3 进程,显然上面的 grep python3 进程并不是我们要找的进程,所以我们需要把 grep python3这个进程过滤掉,才是最后的结果.

    要用 grep 做关键字进行反向过滤:grep -v grep

    pi@raspberrypi:/lib/systemd $ ps -ef | grep python3 | grep -v grep
    pi        1250     1  0 Nov13 ?        00:00:00 /usr/bin/python3 /usr/share/system-config-printer/applet.py
    root      1632  1630  0 Nov13 ?        00:15:29 python3 -m homeassistant --config /config
    
    • 1
    • 2
    • 3

    这样得到的结果就提出了grep python3 的命令影响。

  • 相关阅读:
    CSS Position与Float:探索布局的灵活性
    产品经理经验谈100篇(十一)-策略产品经理:模型与方法论
    工具篇之Axure RP 10的使用
    微信小程序自动化框架的搭建python+minium
    从区划边界geojson中查询经纬度坐标对应的省市区县乡镇名称,开源Java工具,内存占用低、高性能
    【Python基础入门技能树笔记】数据类型-复合数据类型
    【机器学习项目实战10例】(五):基于随机森林的假新闻检测项目
    【用户画像】ClickHouse中的数据类型、表引擎介绍及使用、项目几个问题的解决办法
    No.1-------MySQL:数据库系统概述、MySQL简介、库操作
    【前端面试知识题】- 6.1 Vue.js
  • 原文地址:https://blog.csdn.net/weixin_44614230/article/details/127931068