PS出力の列名を無効にする


23

ps -pコマンドの出力をフォーマットするには?

このようなものを見せないようにするには:

PID TTY                TIME CMD

ただし、PIDのみです。

Linuxを使用しています。

回答:



21

を使用--no-headersして、ヘッダー行を省略します。

元の出力:

ps
  PID TTY          TIME CMD
27027 pts/0    00:00:00 bash
27071 pts/0    00:00:00 ps

--no-headers

ps --no-headers
27027 pts/0    00:00:00 bash
27072 pts/0    00:00:00 ps

との組み合わせ -p

ps -p 1 --no-headers
    1 ?        00:00:33 systemd

これmanps明確に文書化したページ:

man ps

[snip]

 --no-headers
          Print no header line at all.  --no-heading is an alias for this option.

2
macosでは動作しません。Naturall -____-
アビンドラグールチャラン

確かに。MacOSでの動作は想定されていませんでした。元のポスターで強調されているように、質問はLinuxのみに関するものでした。
スティーブ

2
npスティーブ。将来の読者のためにここに文書化するだけです。BSDとLinux utilsの小さな違いは非常にいらいらします。sedは最悪です
アビンドラグールチャラン

わかりました。MacOSソリューションを回答に含める方法についてご意見がある場合は、喜んで修正します。
スティーブ

2
特定の列ヘッダーで=は、列名の後にoフラグを付けることは、これを行うクロスプラットフォームの方法であることがわかりました。たとえば、ヘッダーのないのps -p ${pid} -o state=プロセス状態を表示します${pid}。(受け入れられた答えは次の
とおりです

2

つかいます

ps -p <PIDs> --no-headers

ヘッダーなしでPIDのリストを取得します。


-1

PIDのみのリストを取得するには、次を使用します。

ps -eo pid

こちらもご覧ください man ps可能な列については、「標準形式の仕様」セクション。

個人的には、-o引数に使用できる列をSolarisが表示する方法が気に入っています。

ps: option requires an argument -- o
usage: ps [ -aAdefHlcjLPyZ ] [ -o format ] [ -t termlist ]
        [ -u userlist ] [ -U userlist ] [ -G grouplist ]
        [ -p proclist ] [ -g pgrplist ] [ -s sidlist ] [ -z zonelist ] [-h lgrplist]
  'format' is one or more of:
        user ruser group rgroup uid ruid gid rgid pid ppid pgid sid taskid ctid
        pri opri pcpu pmem vsz rss osz nice class time etime stime zone zoneid
        f s c lwp nlwp psr tty addr wchan fname comm args projid project pset lgrp

1
これは、表示されるヘッダーを削除する問題を解決しません。
クサラナナンダ

これが、「PIDを表示する」と解釈する方法です。一部の人は、1つの列を選択するだけで、または明らかにあなたが解釈するように、値だけを解釈することができます。
ランバート
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.