Linux top show one process

  1. Show only one process with top on Linux
  2. Use the -p flag to specify the pid
  3. Combine with pidof if you don’t know the pid
  4. Combine with pgrep to match a name
  5. top: pid limit (20) exceeded
  6. 15 simple TOP command examples on Linux to monitor processes
  7. Linux TOP command
  8. Note your «top» command variant
  9. 1. Display processes
  10. 2. Sort by Memory/Cpu/Process ID/Running Time
  11. 3. Reverse the sorting order — ‘R’
  12. 4. Highlight the sorted column with bold text — ‘x’
  13. 5. Highlight sorted column background color ‘b’
  14. 6. Change the update delay — ‘d’
  15. 7. Filter or Search processes — ‘o’/’O’
  16. 8. Display full command path and arguments of process — ‘c’
  17. 9. View processes of a user — ‘u’/’U’
  18. 10. Toggle the display of idle processes — ‘i’
  19. 11. Hide/Show the information on top — ‘l’, ‘t’, ‘m’
  20. 12. Forest mode — ‘V’
  21. 13. Change the number of processes to display — ‘n’
  22. 14. Display all CPU cores — ‘1’
  23. 15. Show/Hide columns ‘f’
  24. 16. Batch mode
  25. 17. Split output in multiple panels — ‘A’
  26. Conclusion
  27. 10 thoughts on “ 15 simple TOP command examples on Linux to monitor processes ”
  28. Команда top в Linux
  29. Команда top в Linux
  30. 1. Опции и команды top
  31. 2. Запуск программы
  32. 3. Сортировка процессов
  33. 5. Виртуальные окна
  34. 7. Цветной вывод
  35. 8. Сохранение настроек
  36. 9. Фильтрация процессов
  37. 10. Завершение процессов
  38. 11. Инспектирование процессов
  39. Выводы

Show only one process with top on Linux

Top is a useful command line tool for showing processes running on Linux (and other operating systems) such as how much CPU and memory they’ve been using and how long they’ve been running, and also showing the system load, CPU and memory usage as a whole. But what if you only one to show output for one process or command?

Use the -p flag to specify the pid

If you know the pid number of the process, use the -p flag to specify it:

Combine with pidof if you don’t know the pid

pidof will return the PIDs for the process that matches the input, so you can do this:

The only problem with this is that if there’s more than one process matching the name then it won’t work, because you either have to specify each pid with another -p flag or comma separate the values, and you’ll get an error like this, when trying to do top for just nginx:

You can either use pidof’s -s flag to return just one pid:

which isn’t ideal, because you’re only get one of them, or combine it with some sed magic to convert spaces between the ids returned from pidof with commas:

Replace [process name] with the process, e.g. with nginx as shown in the next example:

Combine with pgrep to match a name

Another alternative to combining top with pidof is to use pgrep. This can be useful if you need to match e.g. a PHP script which is running from the command line and which you could only match ‘php’ when running pidof and might return something different from what you want.

(Note that there is a -x flag for pidof which the man page says «Scripts too – this causes the program to also return process id’s of shells running the named scripts» but it didn’t seem to work when I tried it myself.)

If the script is called e.g. «myscript.php» you can do this:

Again this will cause an error if it returns more than one pid. The output from pgrep will be have each pid on a new line, so we need to use tr to replace the newlines with commas and then sed to remove the final comma. If anyone has a tidier way of doing this, then please let me know in the comments.

And because pgrep does regular expression pattern matching, you can do all sorts of things with it, but note that there’s a limit of 20 pids.

top: pid limit (20) exceeded

Oops, you can’t pass any more than 20 pids to top.

You could combine the output of pidof or pgrep with «head -n 20″…


15 simple TOP command examples on Linux to monitor processes

Linux TOP command

One of the most basic command to monitor processes on Linux is the top command. As the name suggests, it shows the top processes based on certain criterias like cpu usage or memory usage.

The processes are listed out in a list with multiple columns for details like process name, pid, user, cpu usage, memory usage.

Apart from the list of processes, the top command also shows brief stats about average system load, cpu usage and ram usage on the top.

This post shows you some very simple examples of how to use the top command to monitor processes on your linux machine or server.

Note your «top» command variant

Be aware that the top command comes in various variants and each has a slightly different set of options and method of usage.

To check your top command version and variant use the -v option

This post focuses on the top command coming from the procps-ng project. This is the version available on most modern distros like Ubunut, Fedora, CentOS etc.

1. Display processes

To get a glimpse of the running processes, just run the top command as is without any options like this.

Читайте также:  Картридж для принтера hp laserjet p1102 совместимые картриджи

And immediately the output would be something like this —

The screen contains a lot of information about the system. The header areas include uptime, load average, cpu usage, memory usage data.

The process list shows all the processes with various process specific details in separate columns.
Some of the column names are pretty self explanatory.

PID — Process ID
USER — The system user account running the process.
%CPU — CPU usage by the process.
%MEM — Memory usage by the process
COMMAND — The command (executable file) of the process

2. Sort by Memory/Cpu/Process ID/Running Time

To find the process consuming the most cpu or memory, simply sort the list.

Press M key ( yes, in capital, not small ) to sort the process list by memory usage. Processes using the most memory are shown first and rest in order.

Here are other options to sort by CPU usage, Process ID and Running Time —

Press ‘P’ — to sort the process list by cpu usage.
Press ‘N’ — to sort the list by process id
Press ‘T’ — to sort by the running time.

3. Reverse the sorting order — ‘R’

By default the sorting is done in descending order. Pressing ‘R’ shall reverse the sorting order of the currently sorted column

Here is the output sorted in ascending order of cpu usage. Processes consuming the least amount of cpu are shown first.

4. Highlight the sorted column with bold text — ‘x’

Press x, to highlight the values in the sort column with bold text. Here is a screenshot, with the memory column in bold text —

top command highlight column

5. Highlight sorted column background color ‘b’

After highlighting the sorted column with bold font, its further possible to highlight with a different background color as well. This is how it looks

Top command highlight column background

6. Change the update delay — ‘d’

The top command updates the information on the screen every 3.0 seconds by default. This refresh interval can be changed.

Press the ‘d’ key, and top will ask you to enter the time interval between each refresh. You can enter numbers smaller than 1 second as well, like 0.5. Enter the desired interval and hit Enter.

7. Filter or Search processes — ‘o’/’O’

You can filter the process list based on various criterias like process name, memory usage, cpu usage etc. Multiple filter criterias can be applied.

Press the ‘o’ or ‘O’ to activate filter prompt. It will show a line indicating the filter format like this —

Then enter a filter like this and hit Enter.


Now top will show only those processes whose COMMAND field contains the value apache.

Here is another filter example that shows processes consuming CPU actively —


See active filters — Press Ctrl+o to see currently active filters

Clear filter — Press ‘=’ key to clear any active filters

8. Display full command path and arguments of process — ‘c’

Press ‘c’ to display the full command path along with the commandline arguments in the COMMAND column.

9. View processes of a user — ‘u’/’U’

To view the processes of a specific user only, press ‘u’ and then top will ask you to enter the username.

Which user (blank for all)
Enter the desired username and hit Enter.

10. Toggle the display of idle processes — ‘i’

Press ‘i’ to toggle the display of idle/sleeping processes. By default all processes are display.

11. Hide/Show the information on top — ‘l’, ‘t’, ‘m’

The ‘l’ key would hide the load average information.
The ‘m’ key will hide the memory information.
The ‘t’ key would hide the task and cpu information.

Hiding the header information area, makes more processes visible in the list.

12. Forest mode — ‘V’

Pressing ‘V’ will display the processes in a parent child hierarchy. It looks something like this —

13. Change the number of processes to display — ‘n’

Lets say you want to monitor only few processes based on a certain filter criteria. Press ‘n’ and enter the number of processes you wish to display.

It will display a line saying —
Maximum tasks = 0, change to (0 is unlimited)

14. Display all CPU cores — ‘1’

Pressing ‘1’ will display the load information about individual cpu cores. Here is how it looks —

15. Show/Hide columns ‘f’

By default top displays only few columns out of many more that it can display. If you want to add or remove a particular column or change the order of columns, then press f

The fields marked * or bold are the fields that are displayed, in the order in which they appear in this list.

Navigate the list using up/down arrow keys and press ‘d’ to toggle the display of that field. Once done, press q to go back to the process list

The following output displays only PID, USER, CPU, MEMORY and COMMAND columns.

16. Batch mode

Top also supports batch mode output, where it would keep printing information sequentially instead of a single screen. This is useful when you need to log the top output for later analysis of some kind.

Читайте также:  Как называется служба для принтера

Here is a simple example that shows the Cpu usage at intervals of 1 second.

17. Split output in multiple panels — ‘A’

Each panel can be sorted on a different column. Press ‘a’ to move through the panels. Each panel can have a different set of fields displayed and different sort columns.

top command multiple panels


Top is a great commandline tool to check system resource usage and process details. Its often used on servers for monitoring and quick diagnosis.

If you are looking for something easier with a better user interface then try htop. Htop has a intuitive user interface, where you need not memorize keyboard shortcuts. Htop has onscreen instructions that guide you on how to use it.

A Tech Enthusiast, Blogger, Linux Fan and a Software Developer. Writes about Computer hardware, Linux and Open Source software and coding in Python, Php and Javascript. He can be reached at [email protected] .

10 thoughts on “ 15 simple TOP command examples on Linux to monitor processes ”

Nice article and great explanation.

if same user id is running multiple times how to delete all others except one.Please any one reply me fast.

A really top article!

Hi, thanks for the great article but I’m still looking for an answer for my case: It looks like that all the time. CPU load is around 45-50% all the time but if I add up the CPU usage of the services it never gets close… Why’s that?

Tasks: 251 total, 1 running, 250 sleeping, 0 stopped, 0 zombie
%Cpu0 : 50,1 us, 10,1 sy, 0,0 ni, 39,8 id, 0,0 wa, 0,0 hi, 0,0 si, 0,0 st
%Cpu1 : 55,7 us, 7,2 sy, 0,0 ni, 36,8 id, 0,0 wa, 0,0 hi, 0,2 si, 0,0 st
%Cpu2 : 35,6 us, 4,4 sy, 0,0 ni, 58,8 id, 0,0 wa, 0,0 hi, 1,2 si, 0,0 st
%Cpu3 : 36,7 us, 5,8 sy, 0,0 ni, 56,9 id, 0,0 wa, 0,0 hi, 0,6 si, 0,0 st
KiB Mem : 16242248 total, 12711832 free, 2071424 used, 1458992 buff/cache
KiB Swap: 3809276 total, 3809276 free, 0 used. 13807884 avail Mem

9066 root 20 0 830468 35332 25632 S 2,2 0,2 2:19.18 metricbeat
5428 www-data 20 0 72168 27716 2520 S 1,2 0,2 3:28.49
590 kopano 20 0 291488 41016 24640 S 0,6 0,3 1:27.52 kopano-search
581 kopano 20 0 355280 38644 18984 S 0,4 0,2 1:27.69 kopano-presence
7 root 20 0 0 0 0 S 0,2 0,0 0:31.24 rcu_sched
580 root 20 0 250116 4332 2508 S 0,2 0,0 0:01.37 rsyslogd
821 postgres 20 0 268376 6448 4688 S 0,2 0,0 0:00.07 postgres
1569 mysql 20 0 739704 114760 17024 S 0,2 0,7 0:38.78 mysqld
1802 root 20 0 392128 12028 6828 S 0,2 0,1 0:08.35 docker-containe
1875 root 20 0 3125288 23428 9428 S 0,2 0,1 0:40.27 slapd
2043 root 20 0 818760 70340 28176 S 0,2 0,4 0:37.41 named
2686 kdm 20 0 392288 59108 33904 S 0,2 0,4 0:29.23 kdm_greet
2871 root 20 0 4822492 437276 23464 S 0,2 2,7 2:01.74 java
9560 root 20 0 588668 69552 22952 S 0,2 0,4 0:40.12 packetbeat
10650 root 20 0 38144 3588 3012 R 0,2 0,0 0:04.37 top

Maybe it looks better like this

%Cpu0 : 50,1 us, 10,1 sy,
%Cpu1 : 55,7 us, 7,2 sy,
%Cpu2 : 35,6 us, 4,4 sy,
%Cpu3 : 36,7 us, 5,8 sy,


Команда 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 — поиск по слову;
  • <> — перемещение поля сортировки вправо и влево;
Читайте также:  Как заправить картридж для принтера canon maxify mb2740

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

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

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

sudo apt install top

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

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

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

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

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

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

Для выбора соседнего поля сортировки справа или слева от текущего используйте клавиши > или 4. Настройка полей

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Она записывает все внесённые настройки в файл

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

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

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

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

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

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

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

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

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

Можно оставить по умолчанию, тогда будет отправлен 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.

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

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


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


Поделиться с друзьями