Верхня команда - Як зменшити відображені стовпці


17

Чи можемо ми отримати конкретний стовпчик у верхній команді, наприклад, наприклад, мене цікавлять лише використання стовпців пам'яті та використання процесора.

Як зменшити відображені стовпці верхньої команди лише до двох вищевказаних стовпців?


3
Яка ОС? Який topваріант? Є десятки найкращих реалізацій.
Стефан Шазелас

Надайте нам вашу ОС та версію версії ( top -h).
slm

Відповіді:


19

ПРИМІТКА. Припустимо, що у вас є ця версія top(operaps) . Ви можете перевірити за допомогою цієї команди:

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

propps часто є версією, що topвходить до Fedora / CentOS / RHEL та інших варіантів.

Зміна стовпців

Якщо ви заглянете на сторінку чоловіка, topви побачите розділ під назвою: "2b. ВИБІР І ВИМОГА стовпців". Існують комбінації клавіш для переключення видимості для різних полів / стовпців.

Наприклад:

  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

Ви можете використовувати клавішу fпід час topвходу, щоб перейти на вторинний екран, де ви можете вказати, які стовпці мають бути вимкненими чи видимими:

Наприклад:

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

Є більше, це лише зразок. Коли ви закінчите перемикати стовпці так, як вам потрібно, скористайтеся Escпунктом "Вийти" із екрана вибору.

Збереження конфігурації

Ви можете використовувати Shift+, Wщоб зберегти зміни, щоб вони були за замовчуванням:

  W         Write configuration file

Файл зберігається тут $HOME/.toprc, і виглядає приблизно так:

$ 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

Докладнішу інформацію див. У розділі 5 основної сторінки "5. ФАЙЛИ".


Чи є спосіб змінити стовпці / поле за допомогою прапора командного рядка? Це було б дуже корисно, наприклад, для перевірки верхівки на різних машинах та отримання стандартизованої продукції.
naught101

@ naught101 - якщо у вас є нове запитання, задайте його на головному сайті. Коментарі насправді для цього не призначені.
slm

2

[Centos-6 | Ubuntu 12.10] Цей cmd друкує 4 основні процеси сортування за використанням CPU

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

Вихідні дані

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

Примітка: head -n 5 замість 4, тому що у нас також є назва стовпця

стовпці $ 9, $ 10, $ 12 означають CPU, MEM, COMMAND. Для отримання номерів стовпців використовуйте команду "верх"

Сортувати за ПАМ'ЯТИМИ ВИКОРИСТАННЯ (ваш "верхній" повинен підтримувати -m, щоб запустити це)

# 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

Яка версія верху це?
slm

Я використав центос-6,4. Верхня команда Ubuntu не підтримує -m для сортування моєї пам'яті.
damphat

Цікаво, що я на Fedora (14), я отримую версію для реквізитів верхньої частини. Я лише двічі перевірив, і на CentOS 5 + 6 вони також використовують топ-пропс. Ваша команда не працювала на F14. Однак він працює на CentOS 5 + 6. Просто FYI для кожного, хто стикається з цією темою!
slm

1

для перегляду у форматі json та видалення заголовка,

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

вихід, як показано нижче,

{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 | tailможете об'єднатись у єдину awk.
roaima

0

Конфігурація командного рядка
Я не хотів впливати на всього свого користувача, перезаписавши користувача .toprc, тому я придумав рішення мати окрему конфігурацію для кожного випадку використання.
Ви можете topвикористовувати користувальницький файл конфігурації замість файлу у домашньому каталозі користувачів.
Просто змініть 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
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.