Üst Komut - Görüntülenen Sütunlar nasıl azaltılır


17

Bir üst komutta belirli bir sütun alabilir miyiz, örneğin sadece bellek kullanımı ve CPU kullanım sütunu ile ilgileniyorum.

Top komutunun görüntülenen sütunlarını yalnızca yukarıdaki iki sütuna nasıl azaltabilirim?


3
Hangi işletim sistemi? Ne topvaryantı? Düzinelerce üst uygulama var.
Stéphane Chazelas

Lütfen işletim sisteminizi ve üst sürümünüzü ( top -h) sağlayın .
slm

Yanıtlar:


19

NOT: top(procps) uygulamasının bu sürümüne sahip olduğunuzu varsayarsak . Bu komutla kontrol edebilirsiniz:

$ top --version
    top: procps version 3.2.8
usage:  top -hv | -bcisSH -d delay -n iterations [-u user | -U user] -p pid [,pid ...]

procps genellikle topFedora / CentOS / RHEL ve diğer varyantlarla birlikte gelen sürümdür .

Sütunları değiştirme

Man sayfasına bakarsanız, top"2b. Sütunları SEÇME ve SİPARİŞ VERME" başlıklı bir bölüm görürsünüz. Farklı alanlar / sütunlar için görünürlüğü değiştirmek için klavye kısayolları vardır.

Örneğin:

  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

Sen tuşunu kullanabilirsiniz fise topsütunları görünür ya da değil toggled gerektiğini belirtebilirsiniz ikincil ekrana almak için:

Örneğin:

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)
...

Dahası var, bunlar sadece bir örnek. Sütunları istediğiniz gibi değiştirmeyi tamamladığınızda Esc, seçim ekranından çıkmak için düğmesini kullanın .

Yapılandırma kaydediliyor

Değişikliklerinizi varsayılan olarak kaydedilmesi için Shift+ işaretini kullanabilirsiniz W:

  W         Write configuration file

Dosya burada saklanır $HOME/.toprcve şöyle görünür:

$ 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

Daha fazla ayrıntı için "5. DOSYALAR" için kılavuz sayfanın 5. bölümüne bakın.


Bir komut satırı bayrağı aracılığıyla sütunları / alanı değiştirmenin bir yolu var mı? Bu, örneğin farklı makinelerde en üstte kontrol etmek ve standart bir çıktı elde etmek için gerçekten yararlı olacaktır.
naught101

@ naught101 - yeni bir sorunuz varsa ana sitede sorun. Yorumlar gerçekten bunun için değil.
slm

2

[Centos-6 | Ubuntu 12.10] Bu cmd baskı 4 üst işlem CPU İşlemine göre sırala

top -bn 1 | grep "^ " | awk '{ printf("%-8s  %-8s  %-8s\n", $9, $10, $12); }' | head -n 5

Çıktı

%CPU      %MEM      COMMAND
7.7       0.2       top
0.0       0.3       init
0.0       0.0       kthreadd
0.0       0.0       migration/0

Not: Sütun adımız da olduğu için 4 yerine -n ​​5

$ 9, $ 10, $ 12 sütunları CPU, MEM, COMMAND anlamına gelir. Sütun numaralarını almak için 'top' komutunu kullanın

HAFIZA KULLANIMI'na göre sıralayın ('üstünüz' bunu çalıştırmak için -m'yi desteklemelidir)

# 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

Bu hangi üst sürüm?
slm

Centos-6.4 kullandım. Ubuntu'daki üst komut, bellek kullanımımı sıralamak için -m'yi desteklemiyor.
damphat

İlginç, Fedora (14) kullanıyorum, procps'un üst versiyonunu alıyorum. Sadece iki kez kontrol ettim ve CentOS 5 + 6'da da en iyi propsleri kullanıyorlar. Komutunuz F14'te çalışmadı. CentOS 5 + 6 üzerinde çalışıyor. Bu konuya rastlayan herkes için sadece bir FYI!
slm

1

json formatında görüntülemek ve başlığı kaldırmak da,

top -bn 1 | grep "^ " | awk '{ printf("%s%s%s\n","{CPU:"$9",","MEM:"$10",","CMD:"$12"}"); }' | head -n 6 | tail -n +2

aşağıdaki gibi çıktı,

{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}

Sizin grep | awk | head | tailtek halinde birleşmiştir edilebilir awk.
roaima

0

Komut satırı yapılandırması
Kullanıcının üzerine yazarak tüm kullanıcımı etkilemek istemedim .toprc, bu nedenle kullanım durumu başına ayrı bir yapılandırmaya sahip bir çözüm buldum.
Sen yapabilir topyerine kullanıcıların giriş dizininde birinin özel bir yapılandırma dosyasını kullanın. Değişkeni , ihtiyaçlarınız için dosyayı içeren özel bir dizine
değiştirin .HOME.toprc

# 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
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.