process Is a modern alternative
ps Written in Rust.compared to
ps, It comes with colored and human-readable output, additional information such as TCP/UDP port, read/write throughput, more memory information, and Docker container name.
The tool runs on Linux and also provides experimental support for macOS and Windows, although some information about these is not available. In addition, Windows does not support pagers.
procs functions include:
- Colored, human-readable output format with automatic subject detection based on terminal background
- Multi-column keyword search
- Pager support
- Watch mode such as top (
--watch-interval <seconds>, It has some additional keyboard shortcuts (
nChange the sort column to the next one,
pChange the sorting to the previous column,
aChange the sort order to ascending,
dChange the sort to descending order, and
- Tree view (
- Can display unsupported information
- TCP/UDP port
- Read/write throughput
- Docker container name
- More memory information
You can find a list of the types of information that procs can display, as well as
ps, And the types of procs information available or unavailable on macOS and Windows, Here.
You might also like: Use kmon (TUI) to easily load, unload and blacklist kernel modules
Many Linux distributions have procs packages, including Alpine Linux, Arch Linux and Fedora, as well as general Snap packages. You can also use the cargo to install the tool. On macOS, procs can be installed from homebrew.
You can also Project release page, Applicable to Linux (universal binaries and RPM), macOS and Windows (x86_64 is only available for all platforms).
You can install the universal Linux binary file (-lnx.zip package) by unzipping it, then open a terminal and navigate to the folder where you unzipped the ZIP archive, and install it with the following command:
sudo install procs /usr/local/bin
You might also like: Zellij is a new terminal multiplexer written in Rust
To use procs, run the executable file, which will display information about all running processes:
Pass a non-numeric keyword as a parameter, procs will search for this keyword and match it to
Command By default (for non-numeric keywords, they are treated as partial matches by default). E.g:
This is a screenshot of the output:
By passing a numeric keyword as a parameter, procs matches it to
PID By default, it is treated as an exact match. E.g:
This is a screenshot of the output of this command:
When searching, you can use logical operators, such as
-d, --nand, with
You can configure procs using command line flags (see procs
--help), or use its configuration file. You can use the following command to generate a sample configuration file:
Copy the beginning of the output of this command
[[columns]] All the way down and then create the process Configuration file Use on Linux:
mkdir -p ~/.config/procs/config.tomltouch ~/.config/procs/config.toml
~/.config/procs/config.toml Use a text editor of your choice and paste
procs --config Output (from
[[columns]] To the bottom of the command output). Save the file when you are done.
After the basic configuration is in place, it should be easy to configure proc according to your preferences. For example, let us add 2 new columns to display information about TCP and UDP ports. Copy the following configuration:
[[columns]]kind = "TcpPort"style = "BrightYellow|Yellow"numeric_search = falsenonnumeric_search = truealign = "Left"[[columns]]kind = "UdpPort"style = "BrightYellow|Yellow"numeric_search = falsenonnumeric_search = truealign = "Left"
And paste it in
~/.config/procs/config.toml File, somewhere in between
[[columns]], Where you want to display the TCP and UDP columns. You can also add separators before and after these 2 TCP and UDP columns:
[[columns]]kind = "Separator"style = "White|BrightBlack"numeric_search = falsenonnumeric_search = falsealign = "Left"
When finished, save the file and run procs. You should see 2 new columns showing TCP and UDP ports. For example, here is the port used by qBittorrent on my computer, using this configuration:
In the same way, you can add many other column types. For example, to add the Docker container name, add “Docker” as the column type. You can find many other types of columns (called “kinds” in the procs documentation) that you can add.see The full list is here.
In the procs configuration file, you can also specify the colors and styles to be used, set numeric and non-numeric searches as exact or partial searches, set the default column for sorting, and whether it should be sorted in ascending or descending order, etc.
You may also like: s-tui: CPU monitoring and stress test console UI tool