0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

如何在Linux中使用progress命令

CHANBAEK 来源:myfreax 作者:myfreax 2023-04-08 15:51 次阅读

progress 命令是一个简单但功能强大的 Linux/Unix 命令行工具,可让用户查看文件操作的进度。

progress 命令几乎可以监控所有命令的进度,例如在下载文件、复制文件、等操作,支持常用命令的监控。

progress 命令默认监控命令包括 cp,mv,dd,tar,rsync,grep,cut,sort md5sum,gzip,bzip2 ,7z等命令,更多默认监控的命令请查看progress 命令的帮助。

在本教程中,我们将说明如何在 Linux 使用 progress 命令查看指定命令操作进度和剩余时间的信息

安装

progress 命令并没有预安装在大多数 Linux 发行版。要检查你的 Linux 发行版是否已安装 progress,请按快捷键 CTRL+ALT+T 打开终端,键入 curl,然后按 Enter。

如果你还没有安装 progress 命令,终端将会打印消息 Command 'progress' not found,你可以运行以下命令安装 progress 命令。

如果你的计算机运行的是基于 Debian 的 Linux 发行版,例如 Ubuntu,Linux Mint等。请运行 sudo apt install progress 命令安装 progress。

如果你的计算机运行的是基于 Redhat的 Linux 发行版,例如 CentOS,Fedora 等。请运行 sudo yum install progress 命令安装 progress。

sudo apt-get install -y progress #Debian ubuntu

##RedHat CentOS
sudo yum install epel-release
sudo yum install progress

progress 命令

progress 命令的基本语法如下:

progress [-qdwmM] [-W secs] [-c command] [-p pid]

使用 progress 命令的最简单的方式不指定任何选项,progress 命令将会打印正在运行的默认监控命令进度和剩余时间信息。

如果你要监控的命令不存在默认的命令中,你可以使用 progress 命令的 -c 选项指定要监控的命令。也可以使用 -p 选项指定进程的 pid。

要查看默认监控的命令列表,请运行命令 progress --help | head -n 6 | tail -n 1。

progress --help | head -n 6 | tail -n 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

progress 选项

progress 命令常用的选项:

  • -q / --quiet 隐藏所有打印的消息。
  • -w / --wait 显示IO的吞吐量和剩余时间。
  • -m / --monitor 持续监控进程直到要监控进程的退出或者手动按 Ctrl+C 退出。
  • -a / --additional-command 添加命令到默认监控命令列表。
  • -c / --command 监控指定命令的名称 (ex: firefox)。
  • -p / --pid id 监控指定进程的 PID (ex: pidof firefox)。
  • -i / --ignore-file file 忽略指定文件。
  • -o / --open-mode {r|w} 报告文件的打开模式。
  • -v / --version 打印命令的版本。
  • -h / --help 打印帮助信息。

查看 cp 命令复制进度

在复制大量文件或目录时,使用 progress 命令可以让我们了解当前复制的进度和评估的剩余时间。

例如,以下命令会将 bigfile 文件的复制到 newfile 文件,并显示当前进度和剩余时间的信息。

cp bigfile newfile & progress -mp $!
[211364] cp /home/myfreax/swapfile
	25.8% (528.6 MiB / 2 GiB)

在这个命令中,我们使用 progress 命令的 -m 选项持续监控 cp 命令的进度和剩余时间,直到 cp 命令的退出。progress 也将会自动退出。

& 符号表示先运行左侧的命令然后再运行右侧命令,这样可以让轻松获取之前运行进程的 pid,progress 命令的 -p 选项指定要监控进程的 pid。$! 是最近运行的进程 pid。

查看 tar 命令压缩和解压文件进度

在压缩或解压缩大量文件时,你可能也需要使用 progress 命令查看操作的进度和估计剩余时间。

监控 tar 命令进度的信息和剩余时间查看 cp 命令类似,都是使用 progress 命令监控指定进程的进程。

例如,以下命令会将一个名为 source 的目录压缩成一个名为 archive.tar.gz 的压缩文件,并显示压缩进度信息:

tar czfv archive.tar.gz source & progress -mp $!

查看 mv 命令移动文件进度

以下命令会将一个名为 source 的目录重命名为 destination,并显示重命名进度信息:

mv source destination & progress -mp $!

监控多个命令的进度

如果你需要同时监控多个命令进度信息,可以使用 progress 命令的 -m 选项持续监控所有命令的进度。

如果你只需要查看一次默认命令的进度和剩余时间信息,也可以在不指定任何选项运行 progress 命令。progress 命令将会收集正在运行的或者即将运行的默认命令进度和剩余时间信息。

注意:progress 命令的 -m 选项仅支持默认的命令,如果你要监控多个命令且不在默认命令,可以使用 -a 选项添加默认监控命令列表。

progress -m

结论

总的来说,progress 命令可以在许多不同的上下文中使用,可以帮助我们更好地了解长时间运行的命令的进度和估计完成时间。

无论是在复制、压缩、安装软件包还是移动和重命名文件或目录时,使用 progress 命令都可以使我们更有效当前任务的进度。

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • Linux
    +关注

    关注

    87

    文章

    11303

    浏览量

    209441
  • UNIX
    +关注

    关注

    0

    文章

    296

    浏览量

    41490
  • 文件
    +关注

    关注

    1

    文章

    566

    浏览量

    24737
  • 命令
    +关注

    关注

    5

    文章

    684

    浏览量

    22021
  • Progress
    +关注

    关注

    0

    文章

    6

    浏览量

    6416
收藏 人收藏

    评论

    相关推荐

    何在Linux上可视化Ping响应

    本文讨论ping网络管理实用程序的简要历史,以及如何在Linux中使用gping实用程序以图形格式显示ping命令输出。
    发表于 12-05 09:29 1002次阅读

    何在Linux使用iostat命令

    IO等待或者`iowait`,`wait`,`wa`,`%iowait`,或者`wait%`通常可以通过Linux系统监控工具查看。例如命令行工具top、sar、atop等。
    的头像 发表于 01-04 17:17 1567次阅读

    何在Linux中使用htop命令

    本文介绍如何在 Linux 中使用 htop 命令
    的头像 发表于 12-04 14:45 2013次阅读
    如<b class='flag-5'>何在</b><b class='flag-5'>Linux</b><b class='flag-5'>中使</b>用htop<b class='flag-5'>命令</b>

    何在linux应用程序中使用pwm捕获?

    /402e4000.pwm/pwm/pwmchip6/pwm0# cat capture cat: capture: 函数未实现 那么,如何在 linux 应用程序中使用 pwm 捕获?
    发表于 05-10 07:05

    何在Linux中使用SIM7100模块的详细资料概述

    本文档的主要内容详细介绍的是如何在Linux中使用SIM7100模块的详细资料概述
    发表于 06-14 08:00 10次下载
    如<b class='flag-5'>何在</b><b class='flag-5'>Linux</b><b class='flag-5'>中使</b>用SIM7100模块的详细资料概述

    何在 Linux 中使用一个命令升级所有软件

    你无需运行每个包管理器来更新包。 topgrade 工具通过检测已安装的软件包、工具、插件并运行相应的软件包管理器来更新 Linux 中的所有软件,用一条命令解决问题。
    的头像 发表于 07-28 08:20 4765次阅读

    何在嵌入式Linux中使用GPIO

    了解如何在嵌入式Linux中使用GPIO,特别强调Zynq-7000系列。 我们介绍了基本的用户和内核空间GPIO使用情况,以及GPIO,GPIO密钥和GPIO LED上的bit-banged I / O.
    的头像 发表于 11-26 07:02 4075次阅读

    何在Linux中使用nmcli命令添加和管理网络连接

    nmcli 实用程序是在 Linux 系统上添加和管理网络连接的有用工具。它提供了简单的命令行选项来帮助您配置网络,尤其在命令行服务器上。
    的头像 发表于 08-07 16:28 4018次阅读
    如<b class='flag-5'>何在</b><b class='flag-5'>Linux</b><b class='flag-5'>中使</b>用nmcli<b class='flag-5'>命令</b>添加和管理网络连接

    何在Linux使用pidof命令

    `pidof`是一个命令行程序,可让您找到正在运行程序的进程ID。在教程中,我们将说明如何在Linux 使用pidof命令
    的头像 发表于 12-05 17:01 2328次阅读

    何在Linux使用touch命令

    Linux touch命令用于更改文件时间戳。但touch命令的最常见用法是创建文件。
    的头像 发表于 12-05 17:21 2078次阅读

    何在Linux使用rpm命令

    RPM是基于RedHat Linux发行版的软件包管理器,例如CentOS和Fedora。RPM还指`rpm`命令和`.rpm`文件扩展名称。
    的头像 发表于 01-04 17:14 1672次阅读

    何在Linux上使用粘贴命令

    Linux中的粘贴命令是一个有用的工具,用于将多个文件或文本行合并到单个文件或输出中。它通常与剪切命令结合使用,允许用户剪切特定行或文本部分并将其粘贴到其他地方。在本文中,小编将探讨 Linu
    的头像 发表于 02-08 16:58 1836次阅读

    何在Linux命令行中运行Python脚本

    Python 脚本。 在本文中,我们将详细介绍如何在 Linux 命令行中运行 Python 脚本。我们将讨论以下主题:
    的头像 发表于 05-12 14:49 1686次阅读

    恒讯科技分析:如何在Linux上使用rm命令删除文件和目录?

    本指南展示了如何在Linux中使用rm命令行删除文件、目录和其他内容?
    的头像 发表于 06-09 17:02 1180次阅读

    何在Linux中使用watch命令呢?

    有时,您需要反复运行命令或程序来监视系统的各个方面,如正在运行的进程、磁盘空间使用情况或用户登录情况。
    的头像 发表于 11-17 09:34 825次阅读
    如<b class='flag-5'>何在</b><b class='flag-5'>Linux</b><b class='flag-5'>中使</b>用watch<b class='flag-5'>命令</b>呢?