ps (Unix)

In most Unix and Unix-like operating systems, the ps program (short for "process status") displays the currently-running processes. A related Unix utility named top provides a real-time view of the running processes.

The ps command
Original author(s)AT&T Bell Laboratories
Developer(s)Various open-source and commercial developers
Initial releaseFebruary 1973 (1973-02)
Operating systemUnix and Unix-like, KolibriOS

In Windows PowerShell, ps is a predefined command alias for the Get-Process cmdlet, which essentially serves the same purpose.

KolibriOS includes an implementation of the ps command.[1]


For example:

# ps
  PID TTY          TIME CMD
 7431 pts/0    00:00:00 su
 7434 pts/0    00:00:00 bash
18585 pts/0    00:00:00 ps

Users can also utilize the ps command in conjunction with the grep command (see the pgrep and pkill commands) to find information about a single process, such as its id:

$ # Trying to find the PID of `firefox-bin` which is 2701
$ ps -A | grep firefox-bin
2701 ?        22:16:04 firefox-bin

The use of pgrep simplifies the syntax and avoids potential race conditions:

$ pgrep -l firefox-bin
2701 firefox-bin

To see every process running as root in user format:

# ps -U root -u
root     1   0.0  0.0   9436   128  -  ILs  Sun00AM     0:00.12 /sbin/init --


Column HeaderContents
%CPUHow much of the CPU the process is using
%MEMHow much memory the process is using
ADDRMemory address of the process
C or CPCPU usage and scheduling information
COMMAND*Name of the process, including arguments, if any
NInice value
PIDProcess ID number
PPIDID number of the process′s parent process
PRIPriority of the process
RSSResident set size
S or STATProcess status code
START or STIMETime when the process started
VSZVirtual memory usage
TIMEThe amount of CPU time used by the process
TT or TTYTerminal associated with the process
UID or USERUsername of the process′s owner
WCHANMemory address of the event the process is waiting for

* = Often abbreviated


ps has many options. On operating systems that support the SUS and POSIX standards, ps commonly runs with the options -ef, where "-e" selects every process and "-f" chooses the "full" output format. Another common option on these systems is -l, which specifies the "long" output format.

Most systems derived from BSD fail to accept the SUS and POSIX standard options because of historical conflicts. (For example, the "e" or "-e" option will display environment variables.) On such systems, ps commonly runs with the non-standard options aux, where "a" lists all processes on a terminal, including those of other users, "x" lists all processes without controlling terminals and "u" adds a column for the controlling user for each process. For maximum compatibility, there is no "-" in front of the "aux". "ps auxww" provides complete information about the process, including all parameters.

See also


  • Shotts (Jr), William E. (2012). The Linux Command Line: A Complete Introduction. No Starch Press. pp. 96–98. ISBN 9781593273897. Retrieved 16 October 2017.

Further reading

  • McElhearn, Kirk (2006). The Mac OS X Command Line: Unix Under the Hood. John Wiley & Sons. ISBN 978-0470113851.
This article is issued from Wikipedia. The text is licensed under Creative Commons - Attribution - Sharealike. Additional terms may apply for the media files.