You may be used to using the
Activity Monitor in MacOS or the
Task Manager for Windows to see the current processes running on your system.
But for those running Linux, if that includes a dual boot, virtual box, or even WSL2, you could use a useful Linux command to inspect and look at all the current processes going on in your operating system.
What is the Linux Equivalent?
top (table of processes) command in Linux will display all the system processes. If you were to try this command in your terminal, you would see this:
Thats pretty neat – the
top program shows a dynamic list of all the running processes going on in your Linux system.
Usually, this command shows a summary of the information on your system that's currently being run/managed by the Linux kernel.
q on your keyboard to exit the interactive shell.
What do the columns mean?
- PID: Shows the task's unique process ids.
- USER: Shows which user is running what task
For example, you see "root" and "brandgrim". Root is, well, the root of the system running that process, whereas "brandgrim" (me!) is the user running that process.
- PR: This number shows the process priority – the lower the number is, the higher priority. (Makes sense intuitively, right?)
- VIRT: The total virtual memory used by the task
- RES: How much RAM the process is actually using, measured in KB
- SHR: This number represents the Shared Memory size used by a specific task
- %CPU: Represents the CPU usage
- %MEM: Represents the Memory usage
- +TIME: Depicts the total CPU time that the task has used since the task started
- COMMAND: The name of the command that actually started the process
When you are in the interactive shell of
top you can press
h to bring up the
Summary of Less Commands which is a list of all the commands
top has to offer.
Useful Flags and Commands
top has so many unique flags and commands it may seem overwhelming to know which one to use, although there are some flags that are useful right off the bat.
How to Filter by User
-u flag specifies which processes should be listed depending on what user you specify.
For example, we saw that under the USER column there was "root" and "brandgrim", so if we were to try this:
top -u root
we would see the following:
Which lists out the processes that are being run under the "root" user. If we were to try this command, on the other hand:
top -u brandgrim
We'd get the following (which shows processes being run under the "brandgrim" user):
How to Change the Refresh Interval
By default, the screen refresh interval for top is set to 3.0 seconds. If you would like to increase the interval or decrease it, you can press
d while you are in the
top interactive shell in order to set a desired time.
How to Sort Processes by CPU Utilization
In order to sort all your Linux processes by how much CPU they use, you would need to press the
SHIFT + P keys in order to sort them in
top. Now you know what was hogging up your CPU – that pesky little while loop that kept running infinitely!
For example, when I filter my processes when I open VSCode, here's what I see:
You can see that the CPU utilization is initially very high, although it starts to decrease as VSCode loads in all my extensions and the Intellisense.
How to Save Top Processes Inside a File
To save all the running top command results into a file, you can use these commands:
top -n 1 -b > top-processes.txt
There are plenty of
top alternatives, such as
Gotop, and many more – although I won't cover all these in this article.
Htop is currently the most popular
top alternative thanks to its interactive menu and the ability to scroll vertically and horizontally. Not to mention that
Htop also allows you to view your processes in a tree-like structure, which is easier to visualize.
top is an interactive shell that allows you to view all your Linux processes in a real-time view. It displays system information along with lists of processes or threads being currently used by the Linux kernel.
top comes with its own useful commands such as the
-u flag and
d command. There are some more mordern
top alternatives like
Htop which allows for a more colorful and interactive shell.
Hope this helped you! Thank you for reading :)