GNU/Linux >> Linux の 問題 >  >> Linux

初心者向けのLinuxpgrepコマンドチュートリアル(10例)

Linuxのgrepコマンドについては、すでにご存知かもしれません。このコマンドは、パターンを検索し、一致するテキストを出力に出力します。この種の処理を適用して、システムで現在実行されているプロセスに関する選択された情報を取得する必要がある場合はどうなりますか?

さて、あなたはコマンドラインツールが存在することを知ってうれしいでしょう- pgrep -それはあなたがまさにこれをすることを可能にします。このチュートリアルでは、わかりやすい例を使用してpgrepの基本について説明します。ただし、その前に、ここでのすべての例がUbuntu20.04LTSマシンとDebian10でテストされていることを言及する価値があります。

Linuxpgrepコマンド

Linuxのpgrepコマンドを使用すると、ユーザーは名前やその他の属性に基づいてプロセスを検索できます。その構文は次のとおりです。

pgrep[オプション]パターン

そして、ツールのマニュアルページで説明されているのは次のとおりです。

 pgrepは現在実行中のプロセスを調べ、stdoutの
選択基準に一致するプロセスIDを一覧表示します。すべての基準が一致する必要があります。

以下は、pgrepコマンドがどのように機能するかについての良いアイデアを与えるはずのいくつかのQ&Aスタイルの例です。

Q1。特定のユーザーが所有するプロセスのIDを見つける方法は?

これは、-uコマンドラインオプションを使用して実行できます。たとえば、ユーザー「himanshu」が所有する「gedit」プロセスのIDを見つけるには、次のようにpgrepを使用します。

 pgrep -u himanshu gedit 

私の場合、このコマンドが生成する出力は次のとおりです。

Q2。一致するプロセスのpgrep印刷カウントを作成するにはどうすればよいですか?

ID自体ではなく、カウントのみをツールに出力する場合は、-cコマンドラインオプションを使用します。たとえば、ユーザー「himanshu」が所有するプロセスの数を知るには、次のコマンドを実行します。

 pgrep -c -u himanshu 

このコマンドが私のシステムで生成した出力は次のとおりです。

 83 

Q3。出力でカスタム区切り文字を使用するにはどうすればよいですか?

デフォルトでは、出力のプロセスIDは改行で区切られます。ただし、必要に応じて、区切り文字を変更できます。これは、-dコマンドラインオプションを使用して実行できます。

たとえば、区切り文字としてコロン(:)を使用したかったので、次の方法でpgrepコマンドを実行しました。

 pgrep -u himanshu -d:

そして、以下はコマンドが生成した出力です:

 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

Q4。 pgrepの検索で大文字と小文字を区別しないようにするにはどうすればよいですか?

デフォルトでは、pgrep検索では大文字と小文字が区別されます。ただし、必要に応じて、大文字と小文字を区別しないようにすることができます。このためには、-iコマンドラインオプションを使用する必要があります。

例:

 pgrep -i gedit 

Q5。 pgrepリストのプロセス名も作成する方法は?

これには、-lコマンドラインオプションを使用します。

次に例を示します:

 pgrep -u himanshu -l <​​/ pre> 

これが私のシステムで生成された出力の抜粋です:

 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-デーモン
1938at-spi2-registr
1954 gnome-shell
1974 ibus-daemon
1978 ibus-dconf
1980 ibus-x11
1982 ibus-ポータル
1993gnome-shell-cal
1999 Evolution-sourc
2008 dconf-service
2009 gvfs-udisks2-vo
2012 goa-daemon
2020 gvfs-mtp-volume
2024 gvfs-goa-volume
...
...
...

したがって、プロセスIDに加えて、プロセス名も出力に生成されたことがわかります。

Q6。 pgrep listを完全なコマンドにする方法もありますか?

各プロセスの起動に使用された完全なコマンドをpgrepに表示させたい場合は、-aコマンドラインオプションを使用してください。

 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 -n​​oreset -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-セッション
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-モニター
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

Q7。 pgrepに最新のプロセスのみを表示させる方法は?

すべてのプロセスではなく、pgrepに最新のプロセスのみを出力させたい場合は、-nコマンドラインオプションを使用してこれを行うことができます。

次に例を示します:

 pgrep -u himanshu -n -l <​​/ pre> 

そして、以下はこのコマンドが生成した出力です:

7163サンダーバード

Thunderbirdは、ユーザー「himanshu」によって起動された最新のプロセスであることが確認できます。

Q8。 pgrepに最も古いプロセスのみを表示させる方法は?

これには、-oコマンドラインオプションを使用します。

 pgrep -u himanshu -o -l <​​/ pre> 

そして、このコマンドが生成した出力は次のとおりです。

 1793 systemd 
結論

したがって、pgrepが非常に役立つコマンドであることがわかります。ここで説明したコマンドラインオプションの練習が終わったら、ツールのマニュアルページにアクセスして詳細を確認できます。


Linux
  1. 初心者向けのLinuxcdコマンドチュートリアル(8例)

  2. 初心者向けのLinux日付コマンドチュートリアル(8例)

  3. 初心者向けのLinuxホスト名コマンドチュートリアル(5つの例)

  1. 初心者向けのLinux通信コマンドチュートリアル(5例)

  2. 初心者向けのLinuxdfコマンドチュートリアル(8例)

  3. 初心者向けのLinuxduコマンドチュートリアル(10例)

  1. 初心者向けのLinuxechoコマンドチュートリアル(5つの例)

  2. 初心者向けのLinuxenvコマンドチュートリアル(5つの例)

  3. 初心者向けのLinuxサイズのコマンドチュートリアル(6つの例)