Top Command - Как уменьшить отображаемые столбцы

17

Можем ли мы получить конкретный столбец в верхней команде, например, меня интересует только столбец использования памяти и использования процессора.

Как уменьшить отображаемые столбцы команды top до двух вышеупомянутых столбцов?

Surya
источник
3
Какая ОС? Какой topвариант? Есть десятки лучших реализаций.
Стефан Шазелас
Пожалуйста, предоставьте нам свою ОС и топ-версию ( top -h).
SLM

Ответы:

19

ПРИМЕЧАНИЕ. Предполагается, что у вас есть эта версия top(procps) . Вы можете проверить с этой командой:

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

procps часто является версией, 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. ФАЙЛЫ".

SLM
источник
Есть ли способ изменить столбцы / поля с помощью флага командной строки? Это было бы очень полезно, например, для проверки top на разных машинах и получения стандартизированного вывода.
naught101
@ naught101 - если у вас есть новый вопрос, задайте его на главном сайте. Комментарии на самом деле не предназначены для этого.
SLM
2

[Centos-6 | Ubuntu 12.10] Этот cmd выводит 4 топовых процесса сортировки по CPU USAGE

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

Примечание: заголовок -n 5 вместо 4, потому что у нас также есть имя столбца

столбцы $ 9, $ 10, $ 12 означают CPU, MEM, COMMAND. Используйте команду top для получения номеров столбцов

Сортировать по ИСПОЛЬЗОВАНИЮ ПАМЯТИ (ваш 'top' должен поддерживать -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
damphat
источник
Какая версия топ это?
СЛМ
Я использовал Centos-6.4. Команда top в Ubuntu не поддерживает -m для сортировки использования моей памяти.
Dumphat
Интересно, я на Fedora (14), я получаю версию top от procps. Я просто дважды проверил, и на CentOS 5 + 6 они также используют top procps. Ваша команда не работала на F14. Это работает на CentOS 5 + 6, хотя. Просто к сведению всех, кто сталкивался с этой темой!
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}
Som
источник
Ваш grep | awk | head | tailможет быть объединен в один awk.
Ройма
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
Томас
источник