如何在Linux下使用 Progress 显示命令执行进度

2024-03-13 维护脚本 0

Linux 下的命令高效简洁,但同时很多命令进度显示不是很友好,比如:mvcpdd等命令。

在没有进度显示的情况下,我们就无法判断是正在执行、还是执行缓慢,Progress命令很好的解决了这个问题。

Progress 进度查看器是一个简单的程序,它可用于显示命令的进度。它使用来自文件描述符的信息来确定命令的进度。Progress的优点在于它可以与其他 Linux命令一起使用,比如 watch

Progress 支持的命令

cp、mv、dd、tar、cat、rsync、grep、fgrep、egrep、cut、sort、md5sum、sha1sum、sha224sum、sha256sum、sha384sum、sha512sum、adb、gzip、gunzip、bzip2、bunzip2、xz、unxz、lzma、unlzma、7z、7za、zcat、bzcat、lzcat、split、gpg、rclone、ffmpeg

1. 安装 Progress

项目地址:https://github.com/Xfennec/progress

1.1 安装编译所需依赖

  • Debian/Ubuntu

$ apt-get install libncurses5-dev
# 高版本可直接安装 Progress
$ apt install progress

  • Centos

$ yum install ncurses-devel

1.2 下载源码

$ git clone https://github.com/Xfennec/progress.git

1.3 编译安装

$ cd progress
$ make && make install

2. progress 使用举例

2.1 显示默认支持命令的执行进度

  • 单次显示

$ progress

  • 持续显示

$ progress -M

2.2 显示指定命令的执行进度

  • 单次显示

$ progress -c ffmpeg

  • 持续显示

$ progress -M -c ffmpeg

如果你想监控其它命令,只需将 ffmpeg换成你想监控的命令即可。你也可以连续使用多个 -c同时监控多个命令的执行进度。

2.3 显示指定 PID 的执行进度

  • 单次显示

$ progress -p 进程号

  • 持续显示

$ progress -M -p 进程号

  • Progress 一些其它操作方式

$ watch progress -wq
$ watch progress -wc firefox
$ progress -c httpd
$ cp bigfile newfile & progress -mp $!

更多监控显示方案可自行组合发掘。