คุณยังสามารถจัดการกับps
เอาต์พุตได้ดีขึ้นอีกเล็กน้อย
ps --width ${n:-$COLUMNS} ${opts} #set ps terminal width
ps -ww ${opts} #no word wrap
ps -o ${only_interesting_output} ${opts} #trim output
ที่จะบอกps
ให้แยกวิเคราะห์ผลลัพธ์ตามข้อกำหนดของคุณ
แน่นอนถ้าคุณไม่พูดอะไร แต่คุณมีปัญหากับข้อมูลที่หายไป คุณต้องการทุกอย่างสำหรับกระบวนการทั้งหมดหรือไม่? เปิดในเพจเจอร์ถ้าเป็นเช่นนั้น:
ps ww ${opts} | $PAGER
หากไม่ระบุสิ่งที่คุณต้องการดู:
ps -o args= -p $pid
หรือมิฉะนั้นคุณสามารถแจ้งให้ทราบอย่างชัดเจนถึงเครื่องps
ของคุณ--width
:
man ps
...
w
เอาท์พุทกว้าง ใช้ตัวเลือกนี้สองครั้งเพื่อความกว้างไม่ จำกัด
-w
เอาท์พุทกว้าง ใช้ตัวเลือกนี้สองครั้งเพื่อความกว้างไม่ จำกัด
--width n
ตั้งค่าความกว้างของหน้าจอ
--width
สิ่งที่ทำงานตรงกับรายละเอียดที่ต้องการของคุณได้โดยไม่ต้องเกี่ยวข้องกับฟิลเตอร์ใด ๆ เพิ่มเติมหรือกระบวนการเสริม(ซึ่งน่าจะถ่วงของ-aux
การส่งออกมากยิ่งขึ้น) และด้วย$COLUMNS
ดังที่แสดงไว้ด้านบนและเมื่อสเตฟานชี้ให้เห็นมันจะทำงานได้แบบไดนามิก
มันอาจจะเป็นที่น่าสังเกตว่าที่ผมพบว่าคนมักจะพยายามที่จะเพิ่มเหล่านี้ชนิดของฟิลเตอร์ที่ไม่จำเป็นเพื่อให้พวกเขาสามารถรองรับ|pipe
ผ่านอีกตัวกรองเพื่อการส่งออกแยกซึ่งยังสวยน่าจะเป็นที่ไม่จำเป็น แน่นอนโดยคนส่วนใหญ่ฉันหมายถึงฉัน
-o
utput ถูกดำเนินการผมกล่าวถึงข้างต้นช่วยให้คุณสามารถกรองคอลัมน์ที่ps
แสดงและเมื่อคุณเพิ่ม=
assigment คุณยังสามารถตั้งชื่อคอลัมน์เป็นคุณกรุณา ฉันปล่อยให้การบ้านว่างเปล่าและส่งมอบให้เป้าหมาย-p
rocess $pid
ดังนั้นผลลัพธ์เฉพาะจากps
ทั้งหมดคือ$pid
ชื่อคำสั่งและargs
เมื่อร้องขอ และ-o
แทบไม่มีรอยขีดข่วนพื้นผิวของวิธีที่คุณสามารถกำหนดสิ่งที่ps
จะแสดงหรือไม่แสดง นี่คือทิศทางที่ฉันอยากจะแนะนำให้คุณทำ
man ps
...
ในการดูทุกกระบวนการในระบบโดยใช้ไวยากรณ์ BSD:
ps ax
ps axu
หากต้องการพิมพ์แผนผังกระบวนการ:
ps -ejH
ps axjf
วิธีรับข้อมูลเกี่ยวกับกระทู้:
ps -eLf
ps axms
วิธีรับข้อมูลความปลอดภัย:
ps -eo euser,ruser,suser,fuser,f,comm,label
ps axZ
ps -eM
ในการดูทุกกระบวนการทำงานในฐานะรูท (ID จริง & มีผลบังคับใช้) ในรูปแบบผู้ใช้:
ps -U root -u root u
ในการดูทุกกระบวนการด้วยรูปแบบที่ผู้ใช้กำหนด:
ps -eo pid,tid,class,rtprio,ni,pri,psr,pcpu,stat,wchan:14,comm
ps axo stat,euid,ruid,tty,tpgid,sess,pgrp,ppid,pid,pcpu,comm
ps -Ao pid,tt,user,fname,tmout,f,wchan
พิมพ์ ID กระบวนการของ syslogd เท่านั้น:
ps -C syslogd -o pid=
พิมพ์เฉพาะชื่อ PID 42:
ps -p 42 -o comm=