Odpowiedzi:
UWAGA: Zakładając, że masz tę wersję top(procps) . Możesz sprawdzić za pomocą tego polecenia:
$ top --version
top: procps version 3.2.8
usage: top -hv | -bcisSH -d delay -n iterations [-u user | -U user] -p pid [,pid ...]
procps jest często wersją topdołączoną do Fedory / CentOS / RHEL i innych wariantów.
Jeśli spojrzysz na stronę podręcznika top, zobaczysz sekcję zatytułowaną: „2b. WYBÓR I ZAMÓWIENIE Kolumny”. Istnieją skróty klawiaturowe do przełączania widoczności dla różnych pól / kolumn.
Na przykład:
f,o . Fields/Columns: 'f' add or remove; 'o' change display order
F or O . Select sort field
<,> . Move sort field: '<' next col left; '>' next col right
Możesz użyć tego klucza fpodczas topprzejścia do drugiego ekranu, na którym możesz określić, które kolumny mają być widoczne, czy nie:
Na przykład:
Current Fields: ANOPQRSTUVbcdefgjlmyzWHIKX for window 3:Mem
Toggle fields via field letter, type any other key to return
* A: PID = Process Id * W: S = Process Status
* N: %MEM = Memory usage (RES) * H: PR = Priority
* O: VIRT = Virtual Image (kb) * I: NI = Nice value
* P: SWAP = Swapped size (kb) * K: %CPU = CPU usage
* Q: RES = Resident size (kb) * X: COMMAND = Command name/line
* R: CODE = Code size (kb)
...
Jest więcej, to tylko próbka. Po zakończeniu przełączania kolumn w żądany sposób użyj przycisku, Escaby wyjść z ekranu wyboru.
Możesz użyć Shift+, Waby zapisać zmiany, aby były domyślne:
W Write configuration file
Plik jest tutaj przechowywany $HOME/.toprci wygląda następująco:
$ more .toprc
RCfile for "top with windows" # shameless braggin'
Id:a, Mode_altscr=0, Mode_irixps=1, Delay_time=1.000, Curwin=2
Def fieldscur=AEHIoqTWKNMBcdfgjpLrsuvyzX
winflags=129016, sortindx=19, maxtasks=0
summclr=2, msgsclr=5, headclr=7, taskclr=7
Job fieldscur=ABcefgjlrstuvyzMKNHIWOPQDX
winflags=63416, sortindx=13, maxtasks=0
summclr=6, msgsclr=6, headclr=7, taskclr=6
Mem fieldscur=ANOPQRSTUVbcdefgjlmyzWHIKX
winflags=65464, sortindx=13, maxtasks=0
summclr=5, msgsclr=5, headclr=4, taskclr=5
Usr fieldscur=ABDECGfhijlopqrstuvyzMKNWX
winflags=65464, sortindx=12, maxtasks=0
summclr=3, msgsclr=3, headclr=2, taskclr=7
Aby uzyskać więcej informacji, zobacz sekcję 5 strony podręcznika, „5. PLIKI”.
[Centos-6 | Ubuntu 12.10] Ten cmd drukuje 4 najlepsze procesy sortowane według UŻYCIA CPU
top -bn 1 | grep "^ " | awk '{ printf("%-8s %-8s %-8s\n", $9, $10, $12); }' | head -n 5
Wynik
%CPU %MEM COMMAND
7.7 0.2 top
0.0 0.3 init
0.0 0.0 kthreadd
0.0 0.0 migration/0
Uwaga: head -n 5 zamiast 4, ponieważ mamy również nazwę kolumny
kolumny 9 $, 10 $, 12 $ oznaczają CPU, MEM, COMMAND. Użyj polecenia „góra”, aby uzyskać numery kolumn
Sortuj według UŻYTKOWANIA PAMIĘCI (Twoja „góra” musi obsługiwać -m, aby to uruchomić)
# this work on my centos-6 machine, NOT work on my Ubuntu 12.10
top -m -bn 1 | grep "^ " | awk '{ printf("%-8s %-8s %-8s\n", $9, $10, $12); }' | head -n 5
aby wyświetlić również w formacie json i usunąć nagłówek,
top -bn 1 | grep "^ " | awk '{ printf("%s%s%s\n","{CPU:"$9",","MEM:"$10",","CMD:"$12"}"); }' | head -n 6 | tail -n +2
wyjście jak poniżej,
{CPU:6.4,MEM:0.3,CMD:gnome-terminal}
{CPU:6.4,MEM:1.9,CMD:chrome}
{CPU:0.0,MEM:0.0,CMD:init}
{CPU:0.0,MEM:0.0,CMD:kthreadd}
{CPU:0.0,MEM:0.0,CMD:ksoftirqd/0}
grep | awk | head | tailmoże być połączony w jeden awk.
Konfiguracja wiersza poleceń
Nie chciałem wpływać na całego mojego użytkownika, nadpisując go .toprc, więc wymyśliłem rozwiązanie mające osobną konfigurację dla każdego przypadku użycia.
Możesz topużyć niestandardowego pliku konfiguracyjnego zamiast pliku w katalogu domowym użytkowników.
Po prostu zmień HOMEzmienną na niestandardowy katalog zawierający .toprcplik dla swoich potrzeb.
# TOPRC_PROFILE_DIRECTORY contains .toprc (or can be created by saving using shift+w after configuring using keybindings)
TOPRC_PROFILE_DIRECTORY="<your-directory>"
HOME="$TOPRC_PROFILE_DIRECTORY" top
topwariant Istnieją dziesiątki najlepszych wdrożeń.