Puoi anche gestire l' ps
output un po 'meglio.
ps --width ${n:-$COLUMNS} ${opts} #set ps terminal width
ps -ww ${opts} #no word wrap
ps -o ${only_interesting_output} ${opts} #trim output
Questo dirà ps
di analizzare il suo output secondo le tue specifiche, se necessario.
Naturalmente, se non si esegue la parola a capo automatico, tuttavia, si ha il problema di perdere informazioni. Ne hai davvero bisogno per tutti i processi? Aprilo in un cercapersone in tal caso:
ps ww ${opts} | $PAGER
In caso contrario, specifica cosa vuoi vedere:
ps -o args= -p $pid
In alternativa puoi informare esplicitamente ps
del tuo terminale --width
:
man ps
...
w
Uscita ampia. Utilizzare questa opzione due volte per larghezza illimitata.
-w
Uscita ampia. Utilizzare questa opzione due volte per larghezza illimitata.
--width n
Imposta la larghezza dello schermo.
La --width
cosa funziona esattamente secondo le specifiche richieste senza la necessità di coinvolgere filtri aggiuntivi o processi ausiliari (che probabilmente ingombreranno l' -aux
output ancora di più). E $COLUMNS
come mostrato sopra e come sottolinea Stephane funzionerà anche in modo dinamico.
E 'probabilmente la pena di notare, però, che trovo le persone spesso cercano di aggiungere questi tipi di filtri non necessari in modo da poter ospitare una |pipe
attraverso un altro filtro per l'uscita di analisi che è anche abbastanza probabile che sia inutile. Certo, per gente intendo principalmente me.
L' -o
operando utput che menziono sopra ti consente di filtrare quali colonne ps
vengono visualizzate e quando aggiungi l' =
assegnazione puoi persino nominare la colonna come preferisci. Lascio l'attribuzione vuota e la mano un bersaglio -p
rocess $pid
quindi l'unica uscita da ps
affatto è il $pid
nome del comando e sua args
alla chiamata. E -o
graffia appena la superficie di come è possibile definire ciò ps
che verrà visualizzato o meno. Questa è la direzione che consiglierei di prendere, in particolare tramite:
man ps
...
Per vedere ogni processo sul sistema usando la sintassi BSD:
ps ax
ps axu
Per stampare un albero di processo:
ps -ejH
ps axjf
Per ottenere informazioni sui thread:
ps -eLf
ps axms
Per ottenere informazioni sulla sicurezza:
ps -eo euser,ruser,suser,fuser,f,comm,label
ps axZ
ps -eM
Per vedere ogni processo in esecuzione come root (ID reale ed effettivo) nel formato utente:
ps -U root -u root u
Per vedere ogni processo con un formato definito dall'utente:
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
Stampa solo gli ID processo di syslogd:
ps -C syslogd -o pid=
Stampa solo il nome di PID 42:
ps -p 42 -o comm=