Menonaktifkan nama kolom dalam output ps

23

Bagaimana memformat output dari ps -pperintah?

Untuk tidak menunjukkan kepada saya sesuatu seperti ini:

PID TTY                TIME CMD

tapi hanya PID.

Saya menggunakan Linux.

TicTacToe
sumber

Jawaban:

36

Gunakan -oopsi untuk memilih kolom mana yang ditampilkan. Jika Anda memasukkan =setelah nama kolom, baris header ditekan

ps -o pid= -p 1 23 456
ps -o pid= -o ppid= -o pgid= -o sid= -p 1 23 456
Gilles 'SANGAT berhenti menjadi jahat'
sumber
Jawaban ini memiliki manfaat portabel (didukung oleh BSD dan ditentukan oleh POSIX .
Anthony G - justice for Monica
21

Gunakan --no-headersuntuk menghilangkan baris tajuk.

Output asli:

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

Dengan --no-headers:

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

Menggabungkan dengan -p:

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

The manhalaman untuk psjelas dokumen ini:

man ps

[snip]

 --no-headers
          Print no header line at all.  --no-heading is an alias for this option.
steve
sumber
2
Tidak berfungsi pada makro. Naturall -____-
Avindra Goolcharan
Memang. Tidak diharapkan bekerja di MacOS. Pertanyaan semata-mata menyangkut Linux, seperti yang disorot oleh poster aslinya.
steve
2
np steve. Hanya mendokumentasikannya di sini untuk pembaca masa depan. Perbedaan kecil antara utilitas BSD dan Linux sangat menjengkelkan. sed adalah yang terburuk
Avindra Goolcharan
oke terima kasih. jika Anda memiliki pemikiran tentang cara memasukkan solusi MacOS sebagai jawaban, saya akan dengan senang hati merevisinya!
steve
2
saya menemukan bahwa untuk tajuk kolom tertentu, menempatkan =setelah nama kolom ke obendera adalah cara lintas platform untuk melakukan ini. Misalnya, ps -p ${pid} -o state=akan menampilkan status proses untuk ${pid}, tanpa header. (Itulah yang dinyatakan oleh jawaban yang diterima :))
Avindra Goolcharan
2

Menggunakan

ps -p <PIDs> --no-headers

untuk mendapatkan daftar PID tanpa tajuk.

dr01
sumber
-1

Untuk mendapatkan daftar hanya PID yang digunakan:

ps -eo pid

Lihat juga man psbagian 'SPESIFIKASI FORMAT STANDAR' untuk kemungkinan kolum.

Secara pribadi saya suka cara Solaris menunjukkan kolom yang mungkin digunakan untuk -oargumen:

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
Lambert
sumber
1
Ini tidak membahas masalah menghapus tajuk yang ditampilkan.
Kusalananda
Begitulah cara Anda menafsirkan 'hanya tampilkan PID'. Beberapa dapat menafsirkan ini hanya dengan memilih satu kolom, atau seperti yang Anda tafsirkan: hanya nilai.
Lambert