Get to know Linux: ps command

Jack Wallen
Jul 1, 2009
Updated • Dec 2, 2012

Over the years there have been certain commands that have really helped me out of a bind. One of those commands is the ps command. The ps stands for process status and it tells you, as you would expect, the status of a process. This is a fast way to know if an application or command is running on a Linux system. Oh sure you could fire up a swell GUI for the same purpose, but that GUI does you no good if you are working on a headless server installation or working on a remote machine. In those instances the ps command is your best bet for helping to manage processes.

You will be glad to know that the ps command will most certainly be already installed on your Linux machine, so there is no need to worry about installation.

Command structure

The basic command structure for ps is:


Of course every good Linux command offers a lot of options, and ps is no exception. For this command we will just outline the best groupings of options together instead of just listing all of (or the best) options. This way you can skip right down to the command you need to use.

Show list of processes owned by a specific user

Say I want to list all processes owned by user jlwallen. To do this I could enter one of two commands:

ps ux

This will list out all processes that are owned by the user issuing the command. The results for this command will look like:

jlwallen   560  0.0  0.3  18312  7376 ?        SNs  19:40   0:00 /etc/alternativ
jlwallen   561  0.0  0.1   7316  3932 pts/0    SNs  19:40   0:00 bash
jlwallen  1137  0.0  0.0   1644   416 ?        S    19:47   0:00 sleep 8
jlwallen  1141  0.0  0.0   1644   420 ?        S    19:47   0:00 sleep 8
jlwallen  1142  0.0  0.0   4384  1012 pts/0    RN+  19:48   0:00 ps ux

You can also get a similar listing with the command:

ps U jlwallen

The results of this command will be:

560 ?        SNs    0:00 /etc/alternatives/x-terminal-emulator
561 pts/0    SNs    0:00 bash
1223 ?        S      0:00 sleep 8
1227 ?        S      0:00 sleep 8
1228 pts/0    RN+    0:00 ps U jlwallen

Show all processes

To see every process on your system you would enter the command:

ps aux

The results of this command would look similar to that of ps ux only it would show the process of every user as well as the system.

List the details of a single process

What about when you want to see the details of only a single process? Imagine issuing the command ps ux and having to search through all of the listings to find the information about the one process you are trying to gain information about. Say, for example, you need to find the PID (Process ID) of the currently running daemon for Dansguardian. You can use the ps command and pipe the results to the grep command to search the listing for a specific string and print out only the matching strings. To do this issue the command:

ps aux | grep dansguardian

which will print out something like:

113       2596  0.0  0.5  17852 11460 ?        Ss   06:49   0:00 /usr/sbin/dansguardian

Now you can see the PID of Dansguardian is 2596. You can kill this with the kill 2956 command.

Final thoughts

There are many more uses for the ps command as well as many more ways to use the ps command. The above three examples are the most often used, but don't think you are limited to only those uses. Issue the command man ps and you will see a full listing of all the ps options available to you.


Previous Post: «
Next Post: «


Leave a Reply

Check the box to consent to your data being stored in line with the guidelines set out in our privacy policy

We love comments and welcome thoughtful and civilized discussion. Rudeness and personal attacks will not be tolerated. Please stay on-topic.
Please note that your comment may not appear immediately after you post it.