it-swarm.com.de

Anzeige der vollständigen Ausgabe des PS-Befehls

wenn ich renne ps -aux Kommando auf meinem Linux Server, mit dem ich über PuTTY verbunden bin, sind einige Prozesse zu lang, um in meine aktuelle Fensterbreite zu passen. Gibt es eine alternative

- Update -

Es tut mir leid, dass ich ein Downgrade durchgeführt habe. Ich dachte, andere finden die Antwort auch nicht hilfreich, also habe ich ein Downgrade durchgeführt.

Hier sind die Informationen, nach denen Sie gefragt haben.

[email protected]:~$ echo $TERM
xterm

[email protected]:~$ stty -a
speed 38400 baud; rows 47; columns 158; line = 0;
intr = ^C; quit = ^\; erase = ^?; kill = ^U; eof = ^D; eol = <undef>; eol2 = <undef>; swtch = <undef>; start = ^Q; stop = ^S; susp = ^Z; rprnt = ^R;
werase = ^W; lnext = ^V; flush = ^O; min = 1; time = 0;
-parenb -parodd cs8 -hupcl -cstopb cread -clocal -crtscts
-ignbrk -brkint -ignpar -parmrk -inpck -istrip -inlcr -igncr icrnl ixon -ixoff -iuclc -ixany -imaxbel -iutf8
opost -olcuc -ocrnl onlcr -onocr -onlret -ofill -ofdel nl0 cr0 tab0 bs0 vt0 ff0
isig icanon iexten echo echoe echok -echonl -noflsh -xcase -tostop -echoprt echoctl echoke

[email protected]:~$ echo $COLUMNS
158
146
Boolean

Wahrscheinlich verwenden Sie einen Pager wie less oder most seit der Ausgabe von ps aux ist länger als ein Screenful. In diesem Fall werden durch die folgenden Optionen lange Zeilen umbrochen (oder erzwungen), anstatt abgeschnitten zu werden.

ps aux | less -+S

ps aux | most -w

Wenn Sie einen der folgenden Befehle verwenden, werden die Zeilen nicht umbrochen, Sie können jedoch mit den Pfeiltasten oder anderen Bewegungstasten nach links und rechts scrollen.

ps aux | less -S    # use arrow keys, or Esc-( and Esc-), or Alt-( and Alt-) 

ps aux | most       # use arrow keys, or < and > (Tab can also be used to scroll right)

Zeilen werden immer für more und pg umbrochen.

Wann ps aux wird in einer Pipe verwendet, die Option w ist nicht erforderlich, da ps nur die Bildschirmbreite verwendet, wenn die Ausgabe an das Terminal erfolgt.

125

Wenn Sie die Flags auxww verwenden, wird der vollständige Pfad für die Ausgabe sowohl in Ihrem Terminalfenster als auch in Shell-Skripten angezeigt.

[email protected] ~ $uname -a
SunOS darraghserver 5.10 Generic_142901-13 i86pc i386 i86pc

[email protected] ~ $which ps
/usr/bin/ps<br>

[email protected] ~ $/usr/ucb/ps auxww | grep ps
darragh 13680  0.0  0.0 3872 3152 pts/1    O 14:39:32  0:00 /usr/ucb/ps -auxww
darragh 13681  0.0  0.0 1420  852 pts/1    S 14:39:32  0:00 grep ps

ps aux listet alle von allen Benutzern ausgeführten Prozesse auf. Sehen man ps für Details. Das Flag ww legt eine unbegrenzte Breite fest.

-w         Wide output. Use this option twice for unlimited width.
w          Wide output. Use this option twice for unlimited width.

Ich habe die Antwort auf dem folgenden Blog gefunden:
http://www.snowfrog.net/2010/06/10/solaris-ps-output-truncated-at-80-columns/

133
darraghmurphy

einfach und perfekt:

ps -efww

schneidet die Linie nicht ab

98
theDolphin

Werfen Sie es einfach auf Katze, die automatisch Zeilenumbrüche macht

ps aux | cat
51
yoki

Wenn Sie einige ws eingeben, wird die Anzeigebreite ignoriert.

Wenn Sie das Ausgabeformat manuell angeben, müssen Sie auch sicherstellen, dass die Option args in der Liste der Ausgabefelder last ist. Andernfalls wird sie abgeschnitten.

ps -A -o args,pid,lstart gibt

/usr/lib/postgresql/9.5/bin 29900 Thu May 11 10:41:59 2017
postgres: checkpointer proc 29902 Thu May 11 10:41:59 2017
postgres: writer process    29903 Thu May 11 10:41:59 2017
postgres: wal writer proces 29904 Thu May 11 10:41:59 2017
postgres: autovacuum launch 29905 Thu May 11 10:41:59 2017
postgres: stats collector p 29906 Thu May 11 10:41:59 2017
[kworker/2:0]               30188 Fri May 12 09:20:17 2017
/usr/lib/upower/upowerd     30651 Mon May  8 09:57:58 2017
/usr/sbin/Apache2 -k start  31288 Fri May 12 07:35:01 2017
/usr/sbin/Apache2 -k start  31289 Fri May 12 07:35:01 2017
/sbin/rpc.statd --no-notify 31635 Mon May  8 09:49:12 2017
/sbin/rpcbind -f -w         31637 Mon May  8 09:49:12 2017
[nfsiod]                    31645 Mon May  8 09:49:12 2017
[kworker/1:0]               31801 Fri May 12 09:49:15 2017
[kworker/u16:0]             32658 Fri May 12 11:00:51 2017

aber ps -A -o pid,lstart,args ruft die vollständige Befehlszeile auf:

29900 Thu May 11 10:41:59 2017 /usr/lib/postgresql/9.5/bin/postgres -D /tmp/4493-d849-dc76-9215 -p 38103
29902 Thu May 11 10:41:59 2017 postgres: checkpointer process   
29903 Thu May 11 10:41:59 2017 postgres: writer process   
29904 Thu May 11 10:41:59 2017 postgres: wal writer process   
29905 Thu May 11 10:41:59 2017 postgres: autovacuum launcher process   
29906 Thu May 11 10:41:59 2017 postgres: stats collector process   
30188 Fri May 12 09:20:17 2017 [kworker/2:0]
30651 Mon May  8 09:57:58 2017 /usr/lib/upower/upowerd
31288 Fri May 12 07:35:01 2017 /usr/sbin/Apache2 -k start
31289 Fri May 12 07:35:01 2017 /usr/sbin/Apache2 -k start
31635 Mon May  8 09:49:12 2017 /sbin/rpc.statd --no-notify
31637 Mon May  8 09:49:12 2017 /sbin/rpcbind -f -w
31645 Mon May  8 09:49:12 2017 [nfsiod]
31801 Fri May 12 09:49:15 2017 [kworker/1:0]
32658 Fri May 12 11:00:51 2017 [kworker/u16:0]
8
dshepherd

sie können das Ausgabeformat festlegen, um z. B. nur den Befehl und die Prozess-ID anzuzeigen.

ps -eo pid,args

weitere Informationen zum Ausgabeformat finden Sie auf der Manpage von ps. alternativ kannst du das -w oder --width n Optionen.

Wenn alles andere fehlschlägt, finden Sie hier eine weitere Problemumgehung (nur um Ihre langen Befehle anzuzeigen).

awk '{ split(FILENAME,f,"/") ; printf "%s: %s\n", f[3],$0 }' /proc/[0-9]*/cmdline
7
ghostdog74

Es tut mir leid, dass ich zu spät zur Party komme, aber ich habe gerade die Lösung für das Problem gefunden.

Die Zeilen werden abgeschnitten, weil ps darauf besteht, den Wert von $ COLUMNS zu verwenden, auch wenn die Ausgabe in diesem Moment nicht der Bildschirm ist. Welches ist ein Fehler, IMHO. Aber einfach zu umgehen, lassen Sie ps einfach glauben, Sie hätten einen Super-Wide-Bildschirm, d. H. Setzen Sie COLUMNS für die Dauer des Befehls ps auf high. Ein Beispiel:

$ ps -edalf                 # truncates lines to screen width
$ COLUMNS=1000 ps -edalf    # wraps lines regardless of screen width

Ich hoffe das ist noch nützlich für jemanden. Alle anderen Ideen schienen viel zu kompliziert :)

3
user1932577

Wenn keine der oben genannten Lösungen funktioniert, ist die Ausgabe von ps nicht Ihr Problem. Möglicherweise müssen Sie PuTTY so einstellen, dass lange Zeilen umbrochen werden ?

Ansonsten benötigen wir weitere Informationen.

1
Alok Singhal

Wenn Sie den gewünschten Befehl mit einer Pipe von ps aux grep eingeben, wird der Text automatisch umgebrochen. Ich habe hier viele andere Antworten verwendet, aber manchmal, wenn Sie nach etwas Bestimmtem suchen, ist es schön, nur grep zu verwenden, und Sie wissen, dass es Zeilen umbrechen wird.

Zum Beispiel ps aux | grep ffmpeg.

1
carterh062

Ich habe diese Antwort gefunden, was mich beeindruckt hat, da keine der oben genannten Antworten funktioniert hat

https://unix.stackexchange.com/questions/91561/ps-full-command-is-too-long

Grundsätzlich begrenzt der Kernel meine cmd-Zeile.

1
Dean Hiller