GNU/Linux >> Znalost Linux >  >> Linux

Linux pgrep Command Tutorial pro začátečníky (10 příkladů)

Možná už znáte příkaz grep v Linuxu, který vyhledává vzor a poté vytiskne odpovídající text na výstupu. Co když je požadavek použít tento druh zpracování k načtení vybraných informací o procesech aktuálně běžících v systému?

No, budete rádi, když víte, že existuje nástroj příkazového řádku – pgrep - to vám umožní udělat přesně tohle. V tomto tutoriálu probereme základy pgrep pomocí několika snadno pochopitelných příkladů. Ale než to uděláme, stojí za zmínku, že všechny příklady zde byly testovány na počítači Ubuntu 20.04 LTS a na Debianu 10.

Příkaz pgrep pro Linux

Příkaz pgrep v Linuxu umožňuje uživatelům vyhledávat procesy na základě názvu a dalších atributů. Následuje jeho syntaxe:

pgrep [options] pattern

A zde je návod, jak to vysvětluje manuálová stránka nástroje:

pgrep looks through the currently running processes and lists the process IDs which match the 
selection criteria to stdout. All the criteria have to match.

Následuje několik příkladů ve stylu otázek a odpovědí, které by vám měly poskytnout dobrou představu o tom, jak příkaz pgrep funguje.

O1. Jak zjistit ID procesu vlastněného konkrétním uživatelem?

To lze provést pomocí volby příkazového řádku -u. Chcete-li například najít ID procesu 'gedit' vlastněného uživatelem 'himanshu', použijte pgrep následujícím způsobem:

pgrep -u himanshu gedit

Zde je výstup, který tento příkaz vytvořil v mém případě:

2. Jak zajistit, aby pgrep tiskl počet odpovídajících procesů?

V případě, že chcete, aby nástroj vytiskl pouze počet a ne samotná ID, použijte volbu -c příkazového řádku. Chcete-li například zjistit počet procesů vlastněných uživatelem 'himanshu', spusťte následující příkaz:

pgrep -c -u himanshu

Následuje výstup, který tento příkaz vytvořil v mém systému:

83

Q3. Jak použít vlastní oddělovač ve výstupu?

Ve výchozím nastavení jsou ID procesů ve výstupu oddělena novým řádkem. Pokud však chcete, můžete změnit oddělovač, což můžete provést pomocí volby příkazového řádku -d.

Například jsem chtěl jako oddělovač použít dvojtečku (:), takže jsem provedl příkaz pgrep následujícím způsobem:

pgrep -u himanshu -d:

A následuje výstup, který příkaz vytvořil:

1793:1794:1807:1811:1813:1817:1820:1914:1917:1922:1925:1936:1938:1954:1974:1978:1980:1982:1993:1999
:2008:2009:2012:2020:2024:2034:2036:2043:2048:2049:2051:2052:2055:2064:2068:2073:2074:2085:2088:
2093:2094:2095:2098:2101:2104:2117:2125:2161:2162:2168:2173:2182:2201:2213:2233:2245:2266:2279:
2388:2409:2430:2456:2473:2564:2647:3085:3108:3178:3284:3297:3320:3325:3467:3487:3980:4040:4658:
5668:5721:5777:6271:6281:6512:6808

4. Jak zajistit, aby vyhledávání pgrep nerozlišovalo malá a velká písmena?

Ve výchozím nastavení se při vyhledávání pgrep rozlišují velká a malá písmena. Pokud však chcete, můžete v něm rozlišovat malá a velká písmena. K tomu musíte použít volbu -i příkazového řádku.

Například:

pgrep -i gedit

O5. Jak vytvořit také názvy procesů seznamu pgrep?

K tomu použijte volbu -l příkazového řádku.

Zde je příklad:

pgrep -u himanshu -l

Zde je výňatek z výstupu vytvořeného na mém systému:

1793 systemd
1794 (sd-pam)
1807 gnome-keyring-d
1811 gdm-x-session
1813 Xorg
1817 dbus-daemon
1820 gnome-session-b
1914 ssh-agent
1917 gvfsd
1922 gvfsd-fuse
1925 at-spi-bus-laun
1936 dbus-daemon
1938 at-spi2-registr
1954 gnome-shell
1974 ibus-daemon
1978 ibus-dconf
1980 ibus-x11
1982 ibus-portal
1993 gnome-shell-cal
1999 evolution-sourc
2008 dconf-service
2009 gvfs-udisks2-vo
2012 goa-daemon
2020 gvfs-mtp-volume
2024 gvfs-goa-volume
...
...
...

Můžete tedy vidět, že kromě ID procesů byly ve výstupu vytvořeny také názvy procesů.

O6. Jak udělat z pgrep list také úplný příkaz?

V případě, že chcete, aby pgrep zobrazil celý příkaz, který byl použit ke spuštění každého procesu, použijte volbu -a příkazového řádku.

pgrep -u himanshu -a
1793 /lib/systemd/systemd --user
1794 (sd-pam)
1807 /usr/bin/gnome-keyring-daemon --daemonize --login
1811 /usr/lib/gdm3/gdm-x-session --run-script env GNOME_SHELL_SESSION_MODE=ubuntu gnome-session --session=ubuntu
1813 /usr/lib/xorg/Xorg vt2 -displayfd 3 -auth /run/user/1000/gdm/Xauthority -background none -noreset -keeptty -verbose 3
1817 /usr/bin/dbus-daemon --session --address=systemd: --nofork --nopidfile --systemd-activation --syslog-only
1820 /usr/lib/gnome-session/gnome-session-binary --session=ubuntu
1914 /usr/bin/ssh-agent /usr/bin/im-launch env GNOME_SHELL_SESSION_MODE=ubuntu gnome-session --session=ubuntu
1917 /usr/lib/gvfs/gvfsd
1922 /usr/lib/gvfs/gvfsd-fuse /run/user/1000/gvfs -f -o big_writes
1925 /usr/lib/at-spi2-core/at-spi-bus-launcher
1936 /usr/bin/dbus-daemon --config-file=/usr/share/defaults/at-spi2/accessibility.conf --nofork --print-address 3
1938 /usr/lib/at-spi2-core/at-spi2-registryd --use-gnome-session
1954 /usr/bin/gnome-shell
1974 ibus-daemon --xim --panel disable
1978 /usr/lib/ibus/ibus-dconf
1980 /usr/lib/ibus/ibus-x11 --kill-daemon
1982 /usr/lib/ibus/ibus-portal
1993 /usr/lib/gnome-shell/gnome-shell-calendar-server
1999 /usr/lib/evolution/evolution-source-registry
2008 /usr/lib/dconf/dconf-service
2009 /usr/lib/gvfs/gvfs-udisks2-volume-monitor
2012 /usr/lib/gnome-online-accounts/goa-daemon
2020 /usr/lib/gvfs/gvfs-mtp-volume-monitor
2024 /usr/lib/gvfs/gvfs-goa-volume-monitor
2034 /usr/lib/gnome-online-accounts/goa-identity-service
2036 /usr/lib/gvfs/gvfs-gphoto2-volume-monitor
2043 /usr/lib/gvfs/gvfs-afc-volume-monitor

O7. Jak zajistit, aby pgrep zobrazoval pouze nejnovější proces?

Pokud místo všech procesů chcete, aby pgrep vypisoval pouze nejnovější proces, pak to lze provést pomocí volby -n příkazového řádku.

Zde je příklad:

pgrep -u himanshu -n -l

A následuje výstup tohoto příkazu:

7163 thunderbird

Mohu potvrdit, že Thunderbird byl skutečně nejnovějším procesem, který spustil uživatel „himanshu“.

O8. Jak zajistit, aby pgrep zobrazoval pouze nejstarší proces?

K tomu použijte volbu -o příkazového řádku.

pgrep -u himanshu -o -l

A zde je výstup tohoto příkazu:

1793 systemd

Závěr

Takže můžete vidět, že pgrep je extrémně užitečný příkaz. Jakmile si procvičíte možnost příkazového řádku, kterou jsme zde probrali, můžete přejít na stránku manuálu nástroje, kde se o něm dozvíte více.


Linux
  1. Linux cd command tutorial pro začátečníky (8 příkladů)

  2. Linux Date Command Tutorial pro začátečníky (8 příkladů)

  3. Linux hostname Command Tutorial pro začátečníky (5 příkladů)

  1. Výuka příkazů Linux pro začátečníky (5 příkladů)

  2. Linux df Command Tutorial pro začátečníky (8 příkladů)

  3. Linux du Command Tutorial pro začátečníky (10 příkladů)

  1. Výukový program Linux echo Command pro začátečníky (5 příkladů)

  2. Linux env Command Tutorial pro začátečníky (5 příkladů)

  3. Návod k příkazu velikosti Linuxu pro začátečníky (6 příkladů)