Anda juga dapat menangani ps
output sedikit lebih baik.
ps --width ${n:-$COLUMNS} ${opts} #set ps terminal width
ps -ww ${opts} #no word wrap
ps -o ${only_interesting_output} ${opts} #trim output
Itu akan memberitahu ps
untuk mem-parsing outputnya ke spesifikasi Anda sebagaimana diperlukan.
Tentu saja, jika Anda tidak membungkus kata, maka Anda memiliki masalah info yang hilang. Apakah Anda benar-benar membutuhkan semua itu untuk semua proses? Buka di pager jika demikian:
ps ww ${opts} | $PAGER
Jika tidak, tentukan apa yang ingin Anda lihat:
ps -o args= -p $pid
Atau Anda dapat secara eksplisit menginformasikan ps
terminal Anda --width
:
man ps
...
w
Output luas. Gunakan opsi ini dua kali untuk lebar tanpa batas.
-w
Output luas. Gunakan opsi ini dua kali untuk lebar tanpa batas.
--width n
Atur lebar layar.
The --width
hal bekerja sama persis dengan spesifikasi Anda diminta tanpa harus melibatkan filter tambahan atau proses tambahan (yang kemungkinan hanya akan mengacaukan Anda -aux
output yang bahkan lebih). Dan $COLUMNS
seperti yang ditunjukkan di atas dan sebagaimana ditunjukkan Stephane, ia bahkan akan bekerja secara dinamis.
Mungkin perlu dicatat, bahwa saya menemukan orang sering mencoba untuk menambahkan jenis filter yang tidak perlu sehingga mereka dapat mengakomodasi |pipe
melalui filter lain untuk mengurai output yang juga sangat mungkin tidak perlu. Tentu saja, oleh orang-orang, kebanyakan saya bersungguh-sungguh .
The -o
utput operand saya sebutkan di atas memungkinkan Anda untuk filter yang kolom ps
display, dan ketika Anda menambahkan =
assigment Anda bahkan dapat nama kolom sesukamu. Saya meninggalkan tugas kosong dan menyerahkannya target -p
rocess $pid
jadi satu-satunya keluaran dari ps
sekali adalah $pid
nama perintah dan yang args
di doa. Dan -o
nyaris tidak menggores permukaan bagaimana Anda dapat menentukan apa yang ps
akan atau tidak akan ditampilkan. Ini adalah arah yang saya sarankan Anda ambil, terutama melalui:
man ps
...
Untuk melihat setiap proses pada sistem menggunakan sintaks BSD:
ps ax
ps axu
Untuk mencetak pohon proses:
ps -ejH
ps axjf
Untuk mendapatkan info tentang utas:
ps -eLf
ps axms
Untuk mendapatkan info keamanan:
ps -eo euser,ruser,suser,fuser,f,comm,label
ps axZ
ps -eM
Untuk melihat setiap proses berjalan sebagai root (ID nyata & efektif) dalam format pengguna:
ps -U root -u root u
Untuk melihat setiap proses dengan format yang ditentukan pengguna:
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
Cetak hanya ID proses dari syslogd:
ps -C syslogd -o pid=
Cetak hanya nama PID 42:
ps -p 42 -o comm=