|
コマンドのSudo ps -ef | grep processname
記号の意味は何ですか?
また、誰もこのコマンドを説明できますか?このコマンドはPIDを取得してそのプロセスを強制終了するためだけに使用しましたが、Sudo ps -ef | grep processname | grep -v grep
も見ました。-v grep
はgrep
の以前に生成されたPIDを強制終了するような印象を受けます。もしそうなら、それはどのように機能しますか?
ps -ef | grep processname
最初にSudo ps -ef
を実行し、2番目のコマンドに出力を渡します。
2番目のコマンドは、Wordの「プロセス名」を含むすべての行をフィルタリングします。
ps -ef | grep processname | grep -v grep
は、processname
を含み、grep
を含まないすべての行をリストします。
man grep
によると
-v, --invert-match
Invert the sense of matching, to select non-matching lines. (-v
is specified by POSIX.)
man ps
によると
ps displays information about a selection of the active processes.
-e Select all processes. Identical to -A.
-f Do full-format listing. This option can be combined with many
other UNIX-style options to add additional columns. It also
causes the command arguments to be printed. When used with -L,
the NLWP (number of threads) and LWP (thread ID) columns will be
added. See the c option, the format keyword args, and the
format keyword comm.
パラメーターを組み合わせることができます-ef
は-e -f
と同じ意味です。
実際、ps -ef | grep processname
は、processname
と呼ばれるプロセスのすべての発生をリストします。
pipe
と呼ばれます。最初のコマンドの出力を2番目のコマンドの入力として提供します。
あなたの場合、それは次を意味します:Sudo ps -ef
の結果は、grep processname
の入力として供給されます
Sudo ps -ef
:
これは、実行中のすべてのプロセスをリストします。詳細については、端末にman ps
と入力してください。
grep processname
したがって、このプロセスのリストはgrepに送られ、programname
で定義されたプログラムを検索します。
私の端末でSudo ps -ef | grep firefox
と入力すると、以下が返されます。
parto 6501 3081 30 09:12 ? 01:52:11 /usr/lib/firefox/firefox
parto 8295 3081 4 15:14 ? 00:00:00 /usr/bin/python3 /usr/share/unity-scopes/scope-runner-dbus.py -s web/firefoxbookmarks.scope
parto 8360 8139 0 15:14 pts/24 00:00:00 grep --color=auto firefox
私はこれを簡単な実践的な答えで試してみようと思います:
パイプ|
を使用すると、シェルで素晴らしいことができます!それは私が最も有用で力強いと考える単一の演算子です。
ディレクトリ内のファイルを数えるのはどうですか?シンプル:
ls | wc -l
..ls
の出力をwc
witパラメーター-l
にリダイレクトします
またはファイル内の行のカウント?
cat someFile | wc -l
何かを検索したい場合はどうすればよいですか? 'grep'は、文字列の出現を検索できます。
cat someFile | grep aRandomStringYouWantToSearchFor
パイプの左側のコマンドの出力をパイプの右側のコマンドにリダイレクトするだけです。
もう1つのレベル:ファイルで何かが発生する頻度は?
cat someFile | grep aRandomStringYouWantToSearchFor | wc -l
|を使用できますほとんどすべてのために:)
fortune | cowsay
このコマンドは、PIDを取得してそのプロセスを強制終了するためにのみ使用しました
他の答えはあなたの主な質問にすでに答えていますが、私もこれに対処したいと思います。
一般的にkillingプロセスはしばしば行き過ぎであり、プロセスによって割り当てられたリソースを乱雑な状態のままにします。多くの場合、terminate it;
これに加えて、pkill
を使用してプロセスを強制終了/終了します。 pkill
は、正確なプロセス名または正規表現の指定をサポートしています。
pkill -x foo # Terminates process foo
pkill ^foo$ # Terminates process foo
pkill -9 -x foo # Kills process foo
pkill -9 ^foo$ # Kills process foo