Progress, formerly known as Coreutils Viewer, is a light C command that searches for coreutils basic commands such as cp, mv, tar, dd, gzip/gunzip, cat, grep etc currently being executed on the system and shows the percentage of data copied, it only runs on Linux and Mac OS X operating systems.
Additionally, it also displays important aspects such as estimated time and throughput, and offers users a “top-like” mode.
It utterly scans the /proc filesystem for fascinating commands, and then searches the fd and fdinfo directories to find opened files, seeks positions, and reports status for the extensive files. Importantly, it is a very light tool, and compatible with practically any command.
How to Install Progress Viewer in Linux
Progress requires the ncurses library in order to work, therefore install libncurses before proceeding to install it, by running the appropriate command below:
-------------- On RHEL, CentOS and Fedora -------------- # yum install ncurses-devel -------------- On Fedora 22+ Releases -------------- # dnf install ncurses-devel -------------- On Debian, Ubuntu and Linux Mint -------------- $ sudo apt-get install libncurses5-dev
You can start by cloning or downloading the package files from its Github repo as follows:
# git clone https://github.com/Xfennec/progress.git
Next, move into the progress directory and build it as shown:
$ cd progress $ make $ sudo make install
After successfully installing it, simply run this tool from your terminal, below we shall walk through a few examples of using Progress on a Linux system.
You can view all the coreutils commands that Progress works with by running it without any options, provided non of the coreutils commands is being executed on the system:
To display estimated I/O throughput and estimated remaining time for on going coreutils commands, enable the -w option:
$ progress -w
Start a heavy command and monitor it using -m option and $! as follows:
$ tar czf images.tar.gz linuxmint-18-cinnamon-64bit.iso CentOS-7.0-1406-x86_64-DVD.iso CubLinux-1.0RC-amd64.iso | progress -m $!
In the next example, you can open two or more terminal windows, then run the coreutils commands in one each, and watch their progress using the other terminal window as shown in the image below.
The command below will enable you to monitor all the current and imminent instances of coreutils commands:
$ watch progress -q
For more interesting options, look through the progress man pages:
$ man progress