How To Use ps Command on Linux

Process management is a crucial aspect of Linux administration, ensuring efficient resource utilization and system stability. Among the numerous tools available for process monitoring and control, the ‘ps’ command stands out as a powerful and versatile option. In this comprehensive guide, we will delve into the intricacies of the ‘ps’ command, exploring its various options, filtering techniques, and real-time monitoring capabilities. By mastering the ‘ps’ command, you will gain valuable insights into your system’s processes and be equipped with the tools necessary to optimize performance and troubleshoot issues effectively.

Understanding the Basics of the ‘ps’ Command

  • A. Definition and Purpose:

In its simplest form, the ‘ps’ command displays information about active processes running on a Linux system. By default, it provides a snapshot of the current processes, offering valuable insights into their statuses and resource utilization.

  • B. Syntax and Common Options:

The ‘ps’ command follows a flexible syntax structure, enabling you to customize the output based on your requirements. Let’s explore some commonly used options:

  1. -e‘ (or ‘–everyone’): This option displays information about all processes running on the system, including those not associated with a terminal.
  2. -f‘ (or ‘–forest’): By using this option, you can view processes in a hierarchical tree structure, which shows parent-child relationships.
  3. -l‘ (or ‘–long’): This option provides detailed output, presenting an extensive list of information about each process, such as the process ID (PID), parent PID (PPID), CPU and memory usage, and more.

Exploring Process States and Display Formats

  • A. Process States:

Understanding the various process states helps you analyze system behavior and resource allocation. The ‘ps’ command represents each process state using specific indicators. Let’s explore the most common ones:

  1. R‘ (Running): This state indicates that a process is actively executing and utilizing CPU resources.
  2. S‘ (Sleeping): A process in the sleeping state is waiting for an event or a specific condition to occur.
  3. T‘ (Stopped): When a process receives a stop signal, it enters the stopped state. It remains inactive until it receives a resume signal.

  • B. Display Formats:

The ‘ps’ command offers different display formats to suit various requirements. Here are a few widely used options:

  1. ps aux‘: This format provides a detailed listing of all processes, including those from all users. It includes information such as the user owning the process, CPU, and memory usage, and the command that initiated the process.
  2. ps -ef‘: With this option, you can view the process tree hierarchy, displaying relationships between parent and child processes.
  3. ps -eo‘: This format allows you to customize the output by specifying the columns you want to include. You can select from a wide range of available fields, tailoring the information to your needs.

Advanced Usage and Filtering Techniques

  • A. Sorting and Formatting Output:

To gain further insights into the processes, you can sort and format the ‘ps’ command’s output based on specific criteria. Consider the following techniques:

  • Sorting by CPU Usage:
ps aux --sort=-%cpu

This command displays processes sorted by CPU usage in descending order. The ‘%’ symbol denotes the percentage of CPU utilization.

  • Formatting Output Selectively:
ps -eo pid,cmd,%cpu,%mem

By specifying the desired columns, such as PID, command, CPU usage, and memory consumption, you can customize the output to focus on the relevant information.

  • B. Filtering Processes:

The ‘ps‘ command allows you to filter processes based on different criteria, narrowing down the output to specific subsets of processes. Here are some examples:

  • Filtering by User:
ps -u username

Replace ‘username’ with the desired username to view processes associated with that user only.

  • Filtering by Command Name:
ps -C process_name

Replace ‘process_name’ with the name of the command or process you wish to filter. This option displays processes with a matching command name.

  • Filtering using Regular Expressions:
ps -eo pid,cmd | grep "pattern"

By combining ‘ps‘ with the ‘grep‘ command, you can apply regular expressions to filter processes based on specific patterns or keywords.

Real-time Process Monitoring

  • A. Process Monitoring Tools:

While the ‘ps‘ command provides valuable insights into processes, other tools complement its capabilities for real-time monitoring. Consider the following tools:

  1. top‘: This interactive command displays dynamic real-time information about processes, system resource usage, and more. It allows you to sort processes by different criteria and send signals for process control.

  2. htop‘: Similar to ‘top’, ‘htop‘ provides an enhanced, user-friendly interface for monitoring system processes. It offers intuitive navigation, color-coded output, and additional features like scrolling and mouse support.

  • B. Interactive Process Control

The ‘ps‘ command can also be used for interactive process control, enabling you to manage processes efficiently. Here are a few examples:

  • Sending Termination Signals:
kill PID

Replace ‘PID’ with the process ID of the process you wish to terminate. The ‘kill‘ command sends a termination signal (SIGTERM) to the specified process.

  • Suspending and Resuming Processes:
kill -STOP PID
kill -CONT PID

The ‘kill -STOP‘ command suspends a process by sending a stop signal (SIGSTOP), while ‘kill -CONT‘ resumes it by sending a continuous signal (SIGCONT).

Practical Examples and Use Cases

  • A. Identifying Resource-Intensive Processes:

Using the ‘ps’ command, you can easily identify processes that consume excessive resources. For instance, to find processes utilizing high memory, execute the following command:

ps aux --sort=-%mem | head

This command sorts processes by memory usage and displays the top entries.

  • B. Debugging and Troubleshooting:

The ‘ps’ command plays a vital role in debugging and troubleshooting processes. By examining process details, dependencies, and statuses, you can pinpoint potential issues. For example, to identify processes related to a specific command, use the following command:

ps -ef | grep "command_name"

Replace ‘command_name’ with the desired command to filter relevant processes.


By mastering the ‘ps‘ command and its advanced usage techniques, you can effectively monitor, control, and troubleshoot processes in Linux. The flexibility and versatility of the ‘ps‘ command, combined with its various options for sorting, formatting, and filtering, makes it an indispensable tool for system administrators and developers. Continuously exploring the vast capabilities of the ‘ps‘ command will empower you to optimize system performance, ensure stability, and resolve issues efficiently.

Remember to consult the ‘ps’ command’s manual page for additional options and examples. By expanding your knowledge through experimentation and leveraging the power of the ps‘ command, you will become adept at managing processes in Linux.

Back to top button