LoginSignup
0
0

More than 1 year has passed since last update.

【Linux】ps aux | [i]nit コマンドでinitプロセスだけを表示する小技

Last updated at Posted at 2023-03-11

initプロセス以外も表示される

「initプロセスが見たい!実行中のプロセスからinitを検索してみよう!」

$ ps aux | grep init
ubuntu    136856  0.0  0.5   9212  5216 pts/0    Ss   04:18   0:00 /usr/bin/bash --init-file /home/ubuntu/.vscode-server/bin/xxxxxxx/out/vs/workbench/contrib/terminal/browser/media/shellIntegration-bash.sh
ubuntu    136945  0.0  0.2   7004  2056 pts/0    S+   04:18   0:00 grep --color=auto init

「あれ?なんか一つ余計なのも表示されてる。」
この方法だと、grepコマンド自体にもinitという文字列が含まれているため、検索に引っかかってしまいます。

ubuntu    136945  0.0  0.2   7004  2056 pts/0    S+   04:18   0:00 grep ←ここ --color=auto init

initプロセスだけを表示する

検索の仕方を変えてみましょう。
init[i]nitに変えてみてください。

$ ps aux | grep [i]nit
ubuntu    136856  0.0  0.5   9212  5216 pts/0    Ss   04:18   0:00 /usr/bin/bash --init-file /home/ubuntu/.vscode-server/bin/xxxxxxx/out/vs/workbench/contrib/terminal/browser/media/shellIntegration-bash.sh

無事にinitプロセスだけ表示されました!

なぜ?

  • initという文字列はinit[i]nitという正規表現で検索される。
  • しかし、[i]nitという文字列は[i]nitという正規表現には検索されない。
  • なぜなら、文字列[i]nitにはinitの間に文字列]が含まれているから。

そもそも、[i]nitという正規表現は文字列iと文字列nitが結合した(日本語が合っているかわからない)文字列という意味です。しかしそんな文字列はinitという文字列しか存在しません。つまり、[i]nitという正規表現はinitという文字列のみを検索します。

grepコマンドのプロセス含まれていたinitという文字列が、[i]nitという文字列に変わり、grepコマンドのプロセスが検索されないようになりました!

参考

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0