The Linux terminal has a number of useful commands that can display running processes, kill them, and change their priority level. This post lists the classic, traditional commands, as well as some more useful, modern ones.

Many of the commands here perform a single function and can be combined -- that's the Unix philosophy of designing programs. Other programs, like htop, provide a friendly interface on top of the commands.

top

The top command is the traditional way to view your system's resource usage and see the processes that are taking up the most system resources. Top displays a list of processes, with the ones using the most CPU at the top.

To exit top or htop, use the Ctrl-C keyboard shortcut. This keyboard shortcut usually kills the currently running process in the terminal.

htop

The htop command is an improved top. It's not installed by default on most Linux distributions -- here's the command you'll need to install it on Ubuntu:

sudo apt-get install htop

htop displays the same information with an easier-to-understand layout. It also lets you select processes with the arrow keys and perform actions, such as killing them or changing their priority, with the F keys.

We've covered htop in more detail in the past.

ps

The ps command lists running processes. The following command lists all processes running on your system:

ps -A

This may be too many processes to read at one time, so you can pipe the output through the less command to scroll through them at your own pace:

ps -A | less

Press q to exit when you're done.

You could also pipe the output through grep to search for a specific process without using any other commands. The following command would search for the Firefox process:

ps -A | grep firefox

pstree

The pstree command is another way of visualizing processes. It displays them in tree format. So, for example, your X server and graphical environment would appear under the display manager that spawned them.

kill

The kill command can kill a process, given its process ID. You can get this information from the ps -A, top or pgrep commands.

kill PID

Technically speaking, the kill command can send any signal to a process. You can use kill -KILL or kill -9 instead to kill a stubborn process.

pgrep

Given a search term, pgrep returns the process IDs that match it. For example, you could use the following command to find Firefox's PID:

pgrep firefox

You can also combine this command with kill to kill a specific process. Using pkill or killall is simpler, though.

pkill & killall

The pkill and killall commands can kill a process, given its name. Use either command to kill Firefox:

pkill firefox

killall firefox

We've covered pkill in more depth in the past.

renice

The renice command changes the nice value of an already running process. The nice value determines what priority the process runs with. A value of -19 is very high priority, while a value of 19 is very low priority. A value of 0 is the default priority.

The renice command requires a process's PID. The following command makes a process run with very low priority:

renice 19 PID

You can use the pgrep trick above with renice, too.

If you're making a process run at a higher priority, you'll require root permissions. On Ubuntu, use sudo for that:

sudo renice -19 #

xkill

The xkill command is a way of easily killing graphical programs. Run it and your cursor will turn into an x sign. Click a program's window to kill that program. If you don't want to kill a program, you can back out of xkill by right-clicking instead.

You don't have to run this command from a terminal -- you can also press Alt-F2, type xkill and press Enter to use it from a graphical desktop.

We've covered binding xkill to a hotkey to easily kill processes.


Do you have a favorite command we didn't mention here, or another trick to share? Leave a comment and let us know.