Zobacz pełne polecenia w danych wyjściowych ps


18

Podczas pracy psz -fopcją w PuTTY (aby zobaczyć polecenie odpowiadające każdemu procesowi), linie dłuższe niż szerokość terminala nie są w pełni widoczne (nie są zawijane w wiele linii).

Jak wymusić zawijanie linii, aby podczas uruchamiania wyświetlać pełne polecenia (w wielu wierszach, jeśli to konieczne) ps -f?


Nie jest to odpowiedź, ale jeśli uruchomię ps -f w emulatorze z ograniczonym terminalem, dane wyjściowe są pakowane w wiele wierszy. Z jakiego terminala korzystasz?
MatthewRock


@MatthewRock Korzystam z PuTTy tutaj, czy uważasz, że jest to specyficzne?
sdabet

1
@Tonsenson nie może zostać zamknięty jako duplikat między witrynami.
muru

1
@fiddler ah, nie możemy migrować starych pytań bez interwencji moderatora, a nawet wtedy nie jest to zalecane: meta.stackexchange.com/questions/8004/…
muru

Odpowiedzi:


16

Jeśli masz psimplementację zgodną z POSIX , możesz spróbować

ps -f | more

Zauważ, że ostatnio zmieniliśmy zachowanie i jeśli masz implementację zgodną z POSIX wydanie 7 tc2, możesz spróbować:

ps -wwf | more

¹ Jesteśmy ludźmi, którzy mają cotygodniowe telekonferencje w celu omówienia ewolucji standardu POSIX.


1
ps -wwfdziała dobrze.
sdabet

8

Prawdopodobnie znalazłem odpowiedź na twoje pytanie dotyczące przepełnienia stosu . Słowami Dennisa Williamsona :

Prawdopodobnie używasz pagera, takiego jak mniejszy lub większy, ponieważ wyjście ps aux jest dłuższe niż ekran. Jeśli tak, poniższe opcje spowodują (lub wymuszą) zawijanie długich linii zamiast ich obcinania.

ps aux | less -+S

ps aux | most -w Jeśli użyjesz jednego z poniższych poleceń, linie nie zostaną zawinięte, ale możesz używać klawiszy strzałek lub innych klawiszy ruchu do przewijania w lewo i w prawo.

ps aux | less -S # użyj klawiszy strzałek lub Esc+ (i Esc+ )lub Alt+ (i Alt+)

ps aux | most # użyj klawiszy strzałek, lub <i >(Tab może być również używany do przewijania w prawo) Linie są zawsze zawijane dla więcej i str.

Gdy ps auxjest używany w potoku, opcja w jest niepotrzebna, ponieważ ps używa szerokości ekranu tylko wtedy, gdy wyjście jest przesyłane do terminala.

(Uwaga: dotyczy to niewbudowanego systemu Linux, psnarzędzie w innych wariantach Uniksa może działać inaczej).


@muru mam nadzieję, że teraz wygląda to lepiej. Dzięki za wyjaśnienie!
tommygun

I przepraszam za spowodowanie bałaganu.
MatthewRock

1
Twoja odpowiedź dotyczy tylko /usr/ucb/psi nawet z tym programem będzie trzeba wwjak /usr/ucb/psgranicach szerokości wyjściowej do 80, jeśli wyjście jest rura. Dla standardu ps POSIX, patrz moja odpowiedź.
schily

1
@schily Ta odpowiedź jest całkowicie poprawna dla zwykłego pspolecenia w niewbudowanym systemie Linux, co ma większość obecnych tutaj czytelników.
Gilles „SO- przestań być zły”

1
Ale OP nie ustawił / linux jako tag.
schily

3

Istnieje również inne proste rozwiązanie:

echo "$(ps afx)"

lub po prostups afx
nyxee

1
tylko „ps fax” zostanie odcięty po określonej liczbie znaków (chyba 72 standardowa długość terminala) echo składni „$ (twoje polecenie)” nie pozwala na odcięcie
filmowy

Dziękuję za to. Teraz polecenie zachowuje się zupełnie inaczej na MacOS (słyszę, że jest oparty na BSD) i Ubuntu ( Linux). Linux nie pokazuje żadnej różnicy, kiedy jesteś echo. Ale MAC OS X drukuje tyle, ile może pokazać terminal. Używam iTerm2i zsh. MAC nie zezwala na tę --fopcję.
nyxee


0

Polecenie dla MacOS jest nieco inne echo "$(ps aux)"


Nie chcesz tego echoniepotrzebnie przepuszczać . Zauważ też, że kilka innych odpowiedzi już ps auxw jakiś sposób wspomina . Sugeruję komentarze lub zmiany do tych istniejących odpowiedzi, aby wskazać, że są one dobre dla MacOS (co, jak zakładam, miałeś na myśli).
Jeff Schaller

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.