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

Posted by Mike on 2022-11-21

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

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

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

  • Progress 支持的命令
1
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
1
$ apt-get install libncurses5-dev
1
2
# 高版本可直接安装 Progress
$ apt install progress
  • Centos
1
$ yum install ncurses-devel

1.2 下载源码

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

1.3 编译安装

1
2
$ cd progress
$ make && make install

2. progress 使用举例

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

  • 单次显示
1
$ progress
  • 持续显示
1
$ progress -M

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

  • 单次显示
1
$ progress -c ffmpeg
  • 持续显示
1
$ progress -M -c ffmpeg

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

2.3 显示指定 PID 的执行进度

  • 单次显示
1
$ progress -p 进程号
  • 持续显示
1
$ progress -M -p 进程号
  • Progress 一些其它操作方式
1
2
3
4
$ watch progress -wq
$ watch progress -wc firefox
$ progress -c httpd
$ cp bigfile newfile & progress -mp $!

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

本文转载自:「 Sunsea’s Blog 」,原文:https://url.hi-linux.com/gT1Y4 ,版权归原作者所有。欢迎投稿,投稿邮箱: editor@hi-linux.com