Letzte 5 geöffnete Prozesse im Terminal anzeigen?

437
Pithikos

Ich versuche, ein Terminal mit den letzten 5 Vorgängen zu öffnen. Dies ist hilfreich für mein Debugging.

An diesem Punkt habe ich

watch ps -ef --sort=start_time 

Dies funktioniert gut, zeigt jedoch alle Prozesse, damit sie nicht in den Bildschirm passen. Wie kann ich es auf eine bestimmte Zahl wie 5 oder 10 beschränken?

- Update -

Habe es versucht

watch "ps -ef --sort=start_time | tail -n 5" 

Aber das Problem ist, dass die Kopfzeile von psweggelassen wird. Nach einer Weile weiß ich nicht, was ich sehe.

1
`watch ps -ef --sort = start_time | head -5` oder `watch ps -ef --sort = start_time | tail -5` abhängig davon, ob die Sortierung aufsteigend ist oder nicht mnmnc vor 10 Jahren 0

1 Antwort auf die Frage

2
Andrew Stubbs

Sie wollen:

watch "ps -ef --sort=start_time | tail -n 5" 

tailgibt nur die letzten zu ihm geleiteten nZeilen aus.

Ich vermute, du hast es versucht:

watch ps -ef --sort=start_time | tail -n 5 

Was würde versuchen, die Ausgabe von watchto tailund nicht die Ausgabe von psund zu watchpfeifen, und da es nie endet, tailkann nicht bestimmt werden, wann die letzten nZeilen ausgegeben werden, und es wird auch nichts gedruckt.


Wenn Sie auch die Kopfzeile behalten möchten, können Sie eine clevere Bash verwenden, um einfach:

watch "ps -ef --sort=start_time | (head -n 1 ; tail -n 5)" 

Was bewirkt head, dass auch die obere Zeile gedruckt wird.

Ich habe es versucht. Das Problem ist, dass die Kopfzeile dann weggelassen wird. Würde es vorziehen, wenn ich den Header behalten könnte .. Pithikos vor 10 Jahren 0
Entschuldigung, ich bin genau in die Fallgrube gefallen, die ich in der Mitte meines Beitrags erwähnte. Versuchen Sie es jetzt! Andrew Stubbs vor 10 Jahren 0
Die Kombination von ** head ** und ** tail ** an einer einzelnen Pipe funktioniert nicht zuverlässig, aber nur, wenn die Ausgabe von ** ps ** länger als der Eingabepuffer von ** head ** ist (versuchen Sie "watch"). ps -f --sort = start_time | (head -n 1; tail -n 5) "` um zu sehen, was ich meine). Um sicherzustellen, dass beide Programme alle Ausgaben sehen, müssen Sie eine temporäre Datei verwenden, z. B. "watch" ps -ef --sort = start_time> TempFile; head -n 1 AFH vor 10 Jahren 1