ปิดใช้งานชื่อคอลัมน์ในเอาต์พุต ps


23

จัดรูปแบบผลลัพธ์ของps -pคำสั่งได้อย่างไร

หากไม่แสดงบางอย่างเช่นนี้:

PID TTY                TIME CMD

แต่เพียงพีไอดี

ฉันใช้ลีนุกซ์

คำตอบ:


36

ใช้-oตัวเลือกเพื่อเลือกคอลัมน์ที่จะแสดง หากคุณใส่=ชื่อคอลัมน์บรรทัดส่วนหัวจะถูกระงับ

ps -o pid= -p 1 23 456
ps -o pid= -o ppid= -o pgid= -o sid= -p 1 23 456

คำตอบนี้มีประโยชน์ในการเป็นแบบพกพา (สนับสนุนโดย BSDs และระบุโดย POSIX .
แอนโธนี G - ความยุติธรรมสำหรับโมนิกา

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

manหน้าpsอย่างชัดเจนเอกสารนี้:

man ps

[snip]

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

2
ไม่ทำงานกับ macos Naturall -____-
Avindra Goolcharan

จริง ไม่คาดว่าจะทำงานบน MacOS คำถาม Linux ที่เกี่ยวข้อง แต่เพียงผู้เดียวโดยเน้นโดยโปสเตอร์ต้นฉบับ
สตีฟ

2
สตีฟ np เพียงบันทึกไว้ที่นี่สำหรับผู้อ่านในอนาคต ความแตกต่างเล็กน้อยระหว่างการใช้ BSD และ Linux นั้นน่ารำคาญอย่างมาก sed เป็นสิ่งที่เลวร้ายที่สุด
Avindra Goolcharan

ตกลงขอบคุณ หากคุณมีความคิดเกี่ยวกับวิธีรวมโซลูชัน MacOS ในการตอบฉันจะแก้ไขอย่างมีความสุข!
สตีฟ

2
ฉันพบว่าสำหรับส่วนหัวของคอลัมน์โดยเฉพาะการวาง=หลังจากชื่อคอลัมน์ลงในoแฟล็กเป็นวิธีข้ามแพลตฟอร์มในการทำสิ่งนี้ เช่นps -p ${pid} -o state=จะแสดงสถานะกระบวนการสำหรับ${pid}โดยไม่มีส่วนหัว (ซึ่งเป็นคำตอบที่ได้รับการยอมรับ :))
Avindra Goolcharan


-1

ในการรับรายการ PID เท่านั้นให้ใช้:

ps -eo pid

ดูเพิ่มเติมที่man psหัวข้อ 'มาตรฐานรูปแบบตัวระบุ' สำหรับ colums ที่เป็นไปได้

โดยส่วนตัวแล้วฉันชอบวิธีที่ Solaris แสดงคอลัมน์ที่เป็นไปได้ที่จะใช้สำหรับการ-oโต้แย้ง:

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
นี่ไม่ได้แก้ไขปัญหาของการลบส่วนหัวที่แสดง
Kusalananda

นั่นเป็นวิธีที่คุณตีความ 'เพียงแค่แสดง PID' บางคนสามารถตีความสิ่งนี้ได้เพียงแค่เลือกหนึ่งคอลัมน์หรือตามที่คุณเห็นได้ชัดว่าเป็นเพียงค่า
Lambert
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.