- ❤️ 博客主页 单片机菜鸟哥,一个野生非专业硬件IOT爱好者 ❤️
- ❤️ 本篇创建记录 2022-11-18 ❤️
- ❤️ 本篇更新记录 2022-11-18 ❤️
- 🎉 欢迎关注 🔎点赞 👍收藏 ⭐️留言 📝
- 🙏 此博客均由博主单独编写,不存在任何商业团队运营,如发现错误,请留言轰炸哦!及时修正!感谢支持!
- 🔥 Arduino ESP8266教程累计帮助过超过1W+同学入门学习硬件网络编程,入选过选修课程,刊登过无线电杂志🔥
我们经常用来查找某一个进程是否存在的时候,经常用到命令
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 的项???
只要我们把所有命令都一步步执行就能知道为什么需要它。以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
我们要查找的是 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 的命令影响。