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

実行中のすべてのプロセス ID のみを取得するには?

ps 出力フォーマットを使用:

ps -A -o pid

コマンドの出力フォーマットは最良のオプションです。 o オプションは、出力のフォーマットを制御します。以下にいくつかの引数をリストしました。残りについては「man ps」を参照してください (複数を使用するには -o pid,cmd,flags になります) )。

KEY   LONG         DESCRIPTION
   c     cmd          simple name of executable
   C     pcpu         cpu utilization
   f     flags        flags as in long format F field
   g     pgrp         process group ID
   G     tpgid        controlling tty process group ID
   j     cutime       cumulative user time
   J     cstime       cumulative system time
   k     utime        user time
   o     session      session ID
   p     pid          process ID

列を取得するには、awk または Cut のほうがよいでしょう:
通常、最初の列を選択するための正規表現は必要ありません。最初の列を切り取るためにパイプするか awk する必要があります:

ps ax | awk '{print $1}'

最適ではないにしても、正規表現はオプションです:
正規表現を使用する場合は、次のようになります:

ps ax | perl -nle 'print $1 if /^ *([0-9]+)/'

$1 は、括弧内に一致したものだけを出力します。 ^ を行頭に固定します。スペース アスタリスクは、数字の前にオプションのスペース文字を許可することを意味します。 [0-9]+ は 1 つ以上の数字を意味します。しかし、この特定のタスクには正規表現をお勧めしません。なぜですか? :-)


ps ax | awk '{ print $1; }'

-o を使用します カスタム形式の出力に切り替える

ps -o pid

あなたが明示的に尋ねたように、sedを使用する悪い方法は

ps -ax | sed 's#^\( *[0-9]\+\) .*$#\1#'

Linux
  1. 実行中のプロセスの出力リダイレクトを変更するにはどうすればよいですか?

  2. 別のBashセッションで実行中のプロセスの出力を表示する方法は?

  3. Linux –実行中のプロセスの壁掛け時計の時間を取得する方法は?

  1. Linuxで実行中のプロセスを再起動(またはリセット)する方法は?

  2. すべての子プロセスを見つける方法は?

  3. すでに実行中のプロセスの出力をリダイレクトする方法

  1. バックグラウンドプロセスのプロセスIDを取得するには?

  2. PythonGDB (GDB 7.1) で gdb.execute から出力を取得するには?

  3. Linux の特定のポートで実行されているプロセスを強制終了するには?