如何在Linux上使用Procs显示进程信息

时间:2020-03-21 11:44:18  来源:igfitidea点击:

Procs是一个命令行实用程序,用于显示有关活动进程和正在运行的进程的信息。
就像传统的Ps命令一样,但具有一些另外的功能。
它被称为Ps命令的现代替代品。
Procs用Rust编程语言编写,并且是跨平台的。
在撰写本教程时,Procs完全支持Linux。
Mac OS和Windows受实验支持。
在这个简短的教程中,让我们看看如何在Linux上使用Procs安装Procs以及如何显示进程信息。

特点

与Ps相比,Procs具有以下一些优点。

  • 它以彩色格式显示输出。
  • 以人类可读的格式显示输出。
  • 显示ps不支持的其他信息。
  • TCP/UDP端口
  • 读/写吞吐量
  • Docker容器名称
  • 更多内存信息
  • 以树状视图显示进程。
  • 支持分页。

安装程序

有几种方法可以在Linux上安装Procs。
选择一个适合。

下载Procs二进制文件:

从发行页面下载最新的Procs二进制文件。

$wget https://github.com/dalance/procs/releases/download/v0.8.16/procs-v0.8.16-x86_64-lnx.zip

解压缩下载的zip文件:

$unzip procs-v0.8.16-x86_64-lnx.zip

将其移至$PATH,例如/usr/local/bin /:

$sudo mv procs /usr/local/bin/

最后,使其可执行:

$sudo chmod +x /usr/local/bin/procs

使用Rust:

由于Procs是用Rust编写的,因此我们可以使用Cargo软件包管理器进行安装。

安装Rust后,运行以下命令以安装Procs:

$cargo install procs

使用捕捉:

$sudo snap install procs

使用Nix包管理器:

$nix-env --install procs

使用Linuxbrew:

$brew install procs

安装Procs之后,我们需要执行以下操作以使其正常运行。

在某些环境中,UTF-8字符看起来像下面这样的奇怪的转义字符。

要解决此问题,请在~/.bashrc或者~/.bash_profile或者~/.profile文件中添加以下环境变量:

export LESSCHARSET=utf-8

普通用户无法使用Linux上的Procs访问其他用户的某些信息(例如,读/写吞吐量)。
要使普通用户能够访问这些信息,请运行:

$procs --suid
sudo sh -c "chown root /usr/local/bin/procs; chmod u+s /usr/local/bin/procs"

全部做完!现在该看看如何使用Procs来查看有关进程的信息。

在Linux上使用Procs显示进程信息

Procs的用法与Ps命令几乎相同。
请允许我向我们展示一些示例。

查看有关所有进程的信息

要显示有关Linux机器上所有正在运行的进程的信息,只需运行:

$procs

Procs显示有关所有进程的详细信息。
这等效于“ ps aux”命令,但是输出比Ps输出更好,并且具有一些其他信息,例如TCP/UDP端口号,读/写吞吐量和颜色支持等。
要退出Procs,请按q或者CTRL + c。

Procs一次将输出显示在一页中。
如果输出线超过端子高度,则会自动使用寻呼机。
我们可以通过按ENTER键查看其余的输出。
向上/向下箭头可用于转到上一页或者下一页。

显示匹配字符串的进程

Procs能够显示与特定关键字匹配的进程。

以下命令显示与关键字“ sshd”匹配的进程。

$procs sshd

同样,我们可以显示与字符串sk匹配的进程的信息。

$procs sk

请注意,它将显示包含给定字符串的所有进程。
它不是特定于USER或者COMMAND的。

显示与数字匹配的进程

也可以显示与数字关键字(例如PID,TCP,UDP)匹配的进程信息。
例如,以下命令显示与数字22匹配的进程详细信息:

$procs 22
 PID:▲ User │ State Nice TTY CPU MEM  VmPeak  VmSize   VmRSS TCP  UDP  Read Write │ CPU Time Start            │ Command          
            │                [%] [%] [bytes] [bytes] [bytes]          [B/s] [B/s] │                           │                  
 22    root │ S       19     0.0 0.0               0       0 []   []      0     0 │ 00:00:00 2016/01/08 12:02 │ khugepaged       
 1030  root │ S        0     0.0 0.3 70.629M 70.602M  5.625M [22] []      0     0 │ 00:00:00 2016/01/08 12:03 │ /usr/sbin/sshd -D

从上面的输出中可以看到,PID和TCP列中的数字为22.

以树状视图显示进程

要以树状格式显示有关所有进程的信息,请运行:

$procs -t

或者,

$procs --tree

所有进程均按依赖性顺序排序,并且依赖性树显示在左侧。

ps命令还使用以下命令以树格式显示进程信息:

$ps axjf

或者,

$ps -ejH

但是,Procs树格式比Ps命令的输出更好地对齐。

更改列的排序顺序

Procs允许我们根据需要更改用户,状态,Nice值,cpu时间,vmsize,vmrss,读/写吞吐量列的顺序。
我们可以缩短列以升序或者降序结果。

例如,要按升序对cpu时间列的顺序进行排序,请使用sorta(升序)选项,如下所示:

$procs --sorta cpu

同样,要以降序排序,请使用sorted(降序排序)选项:

$procs --sortd cpu

监控模式 watch模式

Procs支持监视模式,就像top命令一样。

我们应该已经注意到,默认情况下,Top命令的输出以3.0秒的间隔自动更新。
Procs还可以按照用户指定的时间间隔自动更新其输出。
例如,要每2秒更新一次Procs的输出,请运行:

$procs --watch 2

要退出监视模式,请按q或者Ctrl + c。

可以在帮助部分中找到更多详细信息。

$procs --help
procs 0.8.16
USAGE:
    procs [FLAGS] [OPTIONS] [--] [KEYWORD]...
FLAGS:
    -a, --and        AND  logic for multi-keyword
    -o, --or         OR   logic for multi-keyword
    -d, --nand       NAND logic for multi-keyword
    -r, --nor        NOR  logic for multi-keyword
    -l, --list       Show list of kind
    -t, --tree       Tree view
        --config     Generate configuration sample file
        --suid       Set suid bit and change binary owner to root
    -h, --help       Prints help information
    -V, --version    Prints version information
OPTIONS:
    -w, --watch <second>         Watch mode
    -i, --insert <kind>...       Insert column to slot
        --sorta <kind>           Sort column by ascending
        --sortd <kind>           Sort column by descending
    -c, --color <color>          Color mode [possible values: auto, always, disable]
    -p, --pager <pager>          Pager mode [possible values: auto, always, disable]
        --interval <millisec>    Interval to calculate throughput [default: 100]
ARGS:
    <KEYWORD>...    Keywords for search