Szybką i brudną metodą jest po prostu przesłanie danych wyjściowych ps aux
do sort
polecenia:
$ ps aux | sort -rn -k 5,6
Przykład
$ ps aux | sort -rn -k 5,6
...
root 1584 0.0 0.0 22540 1236 ? S 07:04 0:01 hald-addon-storage: polling /dev/sr0 (every 2 sec)
root 1575 0.0 0.0 22536 872 ? S 07:04 0:00 /usr/libexec/hald-addon-generic-backlight
root 1574 0.0 0.0 22536 880 ? S 07:04 0:00 /usr/libexec/hald-addon-leds
root 1565 0.0 0.0 22536 876 ? S 07:04 0:00 /usr/libexec/hald-addon-rfkill-killswitch
saml 2507 0.0 0.0 22232 500 ? S 07:05 0:00 dbus-launch --sh-syntax --exit-with-session
root 1671 0.0 0.0 22156 936 ? Ss 07:04 0:00 xinetd -stayalive -pidfile /var/run/xinetd.pid
...
Nie obsługuje to nagłówków kolumn, które zostaną zmieszane z danymi wyjściowymi, ale łatwo je zapamiętać w wierszu polecenia i jest akceptowalnym sposobem robienia tego, co chcesz, podczas ręcznego przeglądania tego typu danych wyjściowych.
Przykład
root 1791 0.0 0.0 4140 536 tty2 Ss+ 07:04 0:00 /sbin/mingetty /dev/tty2
USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND
root 996 0.0 0.0 0 0 ? S 07:04 0:01 [kdmflush]
root 982 0.0 0.0 0 0 ? S 07:04 0:00 [kvm-irqfd-clean]
Więcej porad
Dodatkową wskazówką byłoby przeniesienie całego wyniku do innego polecenia, takiego jak less
. Pozwala to przeglądać informacje na stronie na raz, a także używać klawiszy strzałek i klawiszy przewijania w górę / w dół do przewijania wyników w przód i w tył.
$ ps aux | sort -rn -k 5,6 | less
Jeśli twoje wyjście jest bardzo zawijane, możesz również użyć -S
przełącznika na mniej, co zmusi całe wyjście do pozostania w jednej linii. Następnie możesz użyć klawiszy strzałek, aby przejść w lewo / w prawo / w górę / w dół, aby zobaczyć wszystko.
$ ps aux | sort -rn -k 5,6 | less -S
Sortowanie w ps
Niektóre wersje ps
zapewniają możliwość korzystania --sort
. Ten przełącznik może następnie przyjmować klucze, które są albo poprzedzone znakiem a, +
albo a, -
aby oznaczyć kolejność sortowania ... od najmniejszej do największej lub od największej do najmniejszej.
Przykłady
vsz, -rss
$ ps aux --sort=vsz,-rss | head -5
USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND
root 2 0.0 0.0 0 0 ? S 07:03 0:00 [kthreadd]
root 3 0.0 0.0 0 0 ? S 07:03 0:00 [ksoftirqd/0]
root 4 0.0 0.0 0 0 ? S 07:03 0:01 [migration/0]
root 5 0.0 0.0 0 0 ? S 07:03 0:00 [watchdog/0]
+ vsz, + rss
$ ps aux --sort=+vsz,+rss | head -5
USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND
root 2 0.0 0.0 0 0 ? S 07:03 0:00 [kthreadd]
root 3 0.0 0.0 0 0 ? S 07:03 0:00 [ksoftirqd/0]
root 4 0.0 0.0 0 0 ? S 07:03 0:01 [migration/0]
root 5 0.0 0.0 0 0 ? S 07:03 0:00 [watchdog/0]
-vsz, -rss
$ ps aux --sort=-vsz,-rss | head -5
USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND
root 1832 0.0 0.0 2088924 3312 ? Sl 07:04 0:00 /usr/sbin/console-kit-daemon --no-daemon
saml 3517 0.2 1.2 2073196 100492 ? Sl 07:06 0:34 /home/saml/.dropbox-dist/dropbox
saml 3516 0.0 0.8 2071032 67388 ? Sl 07:06 0:07 /home/saml/.dropbox-dist/dropbox
saml 2657 0.1 0.7 1580936 57788 ? Sl 07:05 0:27 nautilus
ps