【树莓派不吃灰】命令篇⑤ 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 $ 

这里其实就是执行了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

看到第三行就明白了。

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

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

  • 5
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

单片机菜鸟爱学习

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值