Команда top в Linux

В одной из предыдущих статей я рассказывал как пользоваться утилитой ps для просмотра информации о запущенных процессах в Linux. Однако для решения подобных задач существуют и более продвинутые инструменты. Один из таких инструментов — это команда top. Она немного проще чем та же утилита htop, но в отличие от ps позволяет выводить информацию о системе, а также список процессов динамически обновляя информацию о потребляемых ими ресурсах.

В этой статье мы разберемся как пользоваться утилитой top, рассмотрим опции её запуска, а также интерактивные команды, которые вы можете использовать во время работы программы. Кроме того, разберем несколько примеров.

Команда top в Linux

1. Опции и команды top

Опций запуска у команды не много и использовать их активно не принято, потому что большинство действий выполняются с помощью интерактивных команд. Вот основные опции:

  • -v — вывести версию программы;
  • -b — режим только для вывода данных, программа не воспринимает интерактивных команд и выполняется пока не будет завершена вручную;
  • -c — отображать полный путь к исполняемым файлам команд;
  • -d — интервал обновления информации;
  • -H — включает вывод потоков процессов;
  • -i — не отображать процессы, которые не используют ресурсы процессора;
  • -n — количество циклов обновления данных, после которых надо закрыть программу;
  • -o — поле, по которому надо выполнять сортировку;
  • -O — вывести все доступные поля для сортировки;
  • -p — отслеживать только указанные по PID процессы, можно указать несколько PID;
  • -u — выводить только процессы, запущенные от имени указанного пользователя.

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

  • h — вывод справки по утилите;
  • q или Esc — выход из top;
  • A — выбор цветовой схемы;
  • d или s — изменить интервал обновления информации;
  • H — выводить потоки процессов;
  • k — послать сигнал завершения процессу;
  • W — записать текущие настройки программы в конфигурационный файл;
  • Y — посмотреть дополнительные сведения о процессе, открытые файлы, порты, логи и т д;
  • Z — изменить цветовую схему;
  • l — скрыть или вывести информацию о средней нагрузке на систему;
  • m — выключить или переключить режим отображения информации о памяти;
  • x — выделять жирным колонку, по которой выполняется сортировка;
  • y — выделять жирным процессы, которые выполняются в данный момент;
  • z — переключение между цветным и одноцветным режимами;
  • c — переключение режима вывода команды, доступен полный путь и только команда;
  • F — настройка полей с информацией о процессах;
  • o — фильтрация процессов по произвольному условию;
  • u — фильтрация процессов по имени пользователя;
  • V — отображение процессов в виде дерева;
  • i — переключение режима отображения процессов, которые сейчас не используют ресурсы процессора;
  • n — максимальное количество процессов, для отображения в программе;
  • L — поиск по слову;
  • <> — перемещение поля сортировки вправо и влево;

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

2. Запуск программы

Утилита не всегда установлена по умолчанию, для её установки в Ubuntu используйте команду:

sudo apt install top

Затем для запуска просто выполните в терминале:

top

Окно можно условно разделить на две части. В верхней части находится информация о системе, общем использовании ресурсов процессора и памяти, раздела подкачки, и так далее. В нижней части окна расположен список запущенных процессов с информацией, отсортированных по определённому полю.

Команда top в Linux

 

Если все процессы не помещаются на одном экране, их можно листать с помощью стрелок вверх и вниз. Если не помещаются все колонки — с помощью стрелок вправо и влево:

Команда top в Linux

Если вы хотите отображать только те процессы, которые используют ресурсы процессора используйте команду i:

Команда top в Linux

3. Сортировка процессов

Чтобы выделить поле, по которому сейчас выполняется сортировка нажмите клавишу y. После этого вся колонка будет выделена жирным:

Команда top в Linux

 

Для выбора соседнего поля сортировки справа или слева от текущего используйте клавиши > или < соответственно. Например, для сортировки по памяти top достаточно переместить поле сортировки на столбец %MEM.

Сейчас читают:  Создание и добавление бота в Discord

4. Настройка полей

По умолчанию выводятся далеко не все поля, а только те, что чаще всего используются. Но вы можете включить вывод других полей, отключить не нужные, а также изменить порядок их расположения. Для этого введите команду F:

Команда top в Linux

Откроется новое окно в псевдоинтерфейсе программы, в котором будут выведены все поля. Я не буду описывать поля в этой статье, поскольку я это сделал в статье про команду ps:

Команда top в Linux

Поля, которые сейчас отображаются выделены жирным и отмечены звездочкой. Вы можете перемещаться по ним с помощью стрелок вверх или вниз. Для того чтобы добавить или убрать поле нажмите на нём d или пробел.

Для того чтобы переместить поле, нажмите на нём Enter, а затем стрелку вправо. После этого поле будет захвачено и вы сможете двигать его вверх или вниз. Затем надо отпустить поле на нужном месте с помощью клавиши Enter.

После завершения настройки можно вернуться обратно в интерфейс программы с помощью клавиши q.

5. Виртуальные окна

Программа имеет четыре окна для вывода данных. Так они называются в документации, но мне больше нравится название формат отображения. Это def, job, mem и usr. Каждое окно выделяется другим цветом в цветном режиме, а также содержит разный набор колонок. Для просмотра всех окон используйте команду A, а для переключения между ними — a:

Команда top в Linux

Текущее окно отображается в левом верхнем углу.

Команда top в Linux

Когда выберите нужное окно снова нажмите A, чтобы вернуться в обычный режим.

Команда top в Linux

7. Цветной вывод

По умолчанию команда top выводит всё в чёрно-белом цвете, однако вы можете включить цветной вывод. Для этого нажмите клавишу z:

Команда top в Linux

Как я уже говорил, у каждого окна данных есть своя цветовая схема, вы можете настроить их под себя. Для этого надо использовать команду Z:

Команда top в Linux

Здесь каждому элементу цветовой схемы отведена своя буква в верхнем регистре, а цвету — в нижнем. Сначала надо выбрать элемент, затем цвет для него. Когда завершите нажмите w для сохранения и редактирования цветовой схемы следующего окна или Enter для сохранения и выхода.

8. Сохранение настроек

Все эти настройки не имели бы смысла, если бы их нельзя было сохранить для восстановления при следующем запуске. Для сохранения текущих настроек программы используйте команду W.

Команда top в Linux

Она записывает все внесённые настройки в файл ~/.toprc и при следующем запуске они будут восстановлены.

9. Фильтрация процессов

Чтобы отфильтровать процессы, запущенные от имени определённого пользователя используйте команду u:

Команда top в Linux

После ввода команды она попросит ввести имя пользователя или его UID. Также можно фильтровать процессы по любому другому полю. Для этого нажмите клавишу o, затем введите условие фильтра в виде:

ИМЯ_ПОЛЯ=значение

Например:

USER=syslog

Команда top в Linux

Если вы выполните команду o ещё раз, то программа предложит создать ещё один фильтр. Чтобы сбросить фильтры используйте команду =.

10. Завершение процессов

Чтобы завершить процесс используйте команду k. После ввода команды утилита попросит набрать PID идентификатор процесса, который надо завершить:

Команда top в Linux

Затем программа спросит какой сигнал процессу надо отправить:

Команда top в Linux

Можно оставить по умолчанию, тогда будет отправлен SIGTERM или же ввести любой другой код, например 9 для SIGKILL.

11. Инспектирование процессов

Ещё одна интересная возможность команды top — это инспектирование процессов. Для того чтобы эта функция заработала надо сначала открыть файл ~/.toprc и добавить в конец такие строки:

pipe Open Files lsof -P -p %d 2>&1
file NUMA Info /proc/%d/numa_maps
pipe Log tail -n200 /var/log/syslog | sort -Mr

После этого перезапустите top и нажмите сочетание клавиш Shift+y.

Команда top в Linux

Утилита попросит ввести PID процесса, который надо инспектировать. После этого откроется новое псевдоокно в котором можно выбрать три вкладки:

Команда top в Linux

 

Для выбора вкладки нажмите Enter. Затем можете просматривать нужные данные, чтобы вернуться обратно ещё раз нажмите Enter.

Команда top в Linux

Выводы

Из этой статьи вы узнали что из себя представляет команда top Linux. Как видите, утилита довольно мощная, хотя при первом запуске сложно подумать что она столько всего может и будет выглядеть настолько красиво если её настроить. Но я всё же привык к старой доброй ps. А какой утилитой пользуетесь вы для просмотра запущенных процессов? Напишите в комментариях!

Источник: winzen.ru