使用linuxpv和progress命令来跟踪命令的进度,而不是盲目飞行。这些实用程序将为您提供通常没有任何进度条的命令的进度条。你会看到一个估计的时间,直到完成,太。
如果你乘坐的是一架没有视频屏幕的飞机长途飞行,要知道你的旅程有多远并不容易。你知道你什么时候起飞的。你知道这次飞行预计要花多长时间。但是你怎么知道你是在按计划,按时,还是远远落后于计划呢?如果你不想看飞行中的电影,你通常可以切换你的视频屏幕来显示一张地图,上面有你的飞机的位置。您还可以获得一些统计信息,例如预期到达时间(ETA),这非常好。
从终端窗口启动命令有时会让人感觉像没有视频屏幕的长途飞行。你没有任何迹象表明一切是否顺利,进程是否悬而未决,也没有任何迹象表明它有多接近完成。闪烁的光标信息量不大。
pv和progress命令提供一些统计信息和一些视觉反馈。你可以看到这个过程是多么接近完成。这意味着您将获得运行进程的预计到达时间。与盯着一个光标相比,这是轻而易举的事。
必须安装pv。
要在Ubuntu上安装pv,请使用以下命令:
sudo apt-get install pv要在Fedora上安装pv,请使用以下命令:
sudo dnf install pv要在Manjaro上安装pv,请使用以下命令:
sudo pacman -Syu pvpv代表管道观察器。管道必须在某个地方参与指挥。下面是一个例子,我们将一个ISO映像通过zip管道传输,以生成ISO的压缩zip文件。
为了将命令的速度降低到可以截屏的程度,本文使用的示例中的一些文件存储在一个名为SILVERXHD的旧的、缓慢的外部USB上。
pv /media/dave/SILVERXHD/gparted-live-1.0.0-1-amd64.iso | zip > gparted.zippv提供给我们的信息可以在显示屏的底部看到。
从左到右,显示的信息是:
要复制具有pv输出的文件,请使用以下命令:
pv /media/dave/SILVERXHD/gparted-live-1.0.0-1-amd64.iso > gparted.iso当文件被复制时,我们会得到一个进度报告。
要用pv复制多个文件和文件夹,我们需要使用一些技巧。我们用tar来移动文件。
tar -c help-files/ | pv | tar -x -C Documents/命令的tar-c help files/部分指示tar在help files文件夹中创建(-c)一个文件存档。这是通过pv管道传输的,这样我们就可以得到进度的显示。然后通过管道将其传回tar,用于命令的最后一部分。在提取之前,将提取存档文件(-x),并将目录更改为文档(-C)。
因此,帮助文件中的文件和文件夹将复制到Documents文件夹,并显示进度。
这次的输出略有不同。
我们没有预计到达时间。进度条现在显示一个移动指示器。它表明这个过程是活动的,但它不像传统的进度条那样从左到右增长。pv仅限于显示它可以从正在被管道传输的进程中提取的信息。
用pv和tar复制文件不会给我们留下存档文件。tar创建了一种“虚拟”归档,直接反馈到tar中提取文件。如果我们的目标是复制文件,那就完成了。但是如果我们想创建一个存档文件呢?
我们仍然可以使用tar来创建一个归档文件,并从pv获得一个进度报告。tar使用的选项有-c(创建存档)、-z(用gzip压缩)和-f(存档文件名)。
注意,我们使用-作为文件名,这会导致tar使用stdout,并将其输出写入终端窗口。我们看不到这个输出,因为它是通过pv管道传输的。
归档文件的实际名称将是我们将pv的输出导入的文件名。在这种情况下,它是“帮助”-文件.tgz”.
tar -czf - ./help-files/ | pv > help-files.tgz我们得到了与以前相同的进度指标,并且为我们创建了存档文件。
相关:如何在Linux上使用tar命令压缩和提取文件
有许多选项可用于pv来更改其报告的详细信息。
如果使用这些选项中的任何一个,则所有其他选项都将关闭。因此,如果要使用其中三个显示选项,则需要指定这三个选项。
使用不带任何选项的pv与使用-pterb选项相同。
让我们重复上一个命令并将-p(完成百分比)选项传递给pv。
tar -czf - ./help-files/ | pv - p > help-files.tgz这将关闭所有其他显示选项。pv只提供完成元素的百分比。
因为pv不能从tar得到完成百分比,所以进度条被一个移动的指示器所代替。没有百分比数字。
我们可以使用pv将一个文本文件(或多个文件)导入wc。wc将计算回车、字符和单词,pv将给我们一个进度报告。
在这里,我们将帮助文件目录中的所有“.page”文件导入wc。
wc完成后,我们可以看到help files文件夹中所有“.page”文件的回车(行)、字符和单词计数。
progress命令提供了与pv相同的有用信息,但是它可以使用一组特定的Linux命令。
要在Ubuntu中安装progress,请使用以下命令:
sudo apt-get install progress要在Fedora中安装progress,请使用以下命令:
sudo dnf install progress要在Manjaro中安装progress,请使用以下命令:
sudo pacman -Syu progress在终端窗口中键入progress,然后按Enter键,您将看到progress使用的命令列表。
progress我们可以使用两种技术来监视命令的进度。首先是使用管道。
tar命令在progress可以监视的受支持命令列表中,所以让我们使用tar。
我们将使用的选项是标准的-c(创建存档)、-z(用gzip压缩)和-f(文件名)选项。我们将为“帮助文件”文件夹中的所有内容创建一个压缩档案,档案将命名为“帮助.tgz”.
我们正在将其导入进程,并使用-m(monitor)选项,以便在进程完成之前不断报告进程。
tar -czf help.tgz ./help-files/ | progress -m终端窗口将显示tar命令创建存档时的进度。
在处理每个文件时,都会列出该文件,其中包含以下信息:
您可能会惊讶地看到第二个数据集出现。第一个数据集用于tar。第二个是gzip。tar调用gzip来执行压缩。因为gzip在支持的命令列表中,所以会报告它的进度。
通过使用-M(monitor)选项,可以在实时连续监视模式下使用进度。
在终端窗口中键入以下命令:
progress -Mprogress将报告没有运行任何命令供其监视。但不会返回到命令行。进程将等待它可以监视的命令启动。然后它会自动开始报告。
在另一个终端窗口中,键入进度可以监视的命令列表中的命令。
我们要用猫。过快结束的命令不会随着进度注册,因此我们将列出一个很长的文本文件的内容。
cat words.page在包含进度的终端窗口中,您将看到cat命令执行和接近完成时的统计信息。
当cat完成列出文件时,文件进度返回到等待状态。
每次它可以报告的命令之一执行一个相当大的任务时,progress都会自动监视它并报告它。
真是太好了。
不要去猜测一个长时间运行的命令是如何运行的,也不要用pv和progress来思考光标。
... rsync -avz --progress ~/Documents/ backup_server:~/Documents ...
...机。它是独立的,设置简单,使用方便。我们将向您展示如何开始。 管理多个linux服务器 如果您要监视多台Linux计算机或服务器,您将面临一个挑战。这是特别真实的,如果其中一些是运行无头系统没有显示器连接。例如,您...
...窗口推到后台(称为“分离”)。当你想看到你的进程是如何进行的,你可以把窗口拉到前台(“重新连接”)并再次使用它。这对于您不希望通过关闭终端窗口意外终止的长进程来说非常有用。 一旦运行了屏幕会话,就可以...
...盒中。 如果它们不是以通常的方式安装的,那么它们是如何处理的呢?嗯,单个包文件被下载、解压缩,并作为一个SquashFSvirtual文件系统装载。然后将它作为一个虚拟环境呈现给您。所有这些都发生在幕后。你所知道的只是你...
...个文件。每一个都有它在远程服务器上的名字。 相关:如何在Linux上使用xargs命令 从ftp服务器下载文件 将curl与文件传输协议(FTP)服务器结合使用很容易,即使您必须使用用户名和密码进行身份验证。要使用curl传递用户名和...
...法是安装足够的操作系统,以完成所需的任务。通过查看如何使用chroot环境来回答“what is required”问题。 一些常见用途是: 软件开发和产品验证。开发人员编写软件,产品验证团队(PV)对其进行测试。有时PV发现的问题无法...
...只有一个按钮。 “进度”对话框窗口 您可以使用zenity progress对话框窗口来显示一个进度条,该进度条指示脚本的完成时间。 进度条将根据从脚本传入的值进行高级处理。要演示该原理,请使用以下命令: (for i in $(seq 0 10 100); d...
...少量数据与文件总大小之间的比率。 使用进度选项 P(progress)选项使rsync在复制每个文件后生成一个小的进度报告。 rsync -raP /home/dave/Documents/ /media/dave/SILVERXHD/backups/ 提供的信息可以在每个复制的文件之间看到。 提供的信息...
...任何事情。 更新:在最近的版本中,dd现在有一个status=progress选项,它每秒提供一次进程更新。例如,您可以运行此命令来查看状态: sudo dd bs=4M if=Downloads/ubuntu-19.04-desktop-amd64.iso of=/dev/sdb conv=fdatasync status=progress 创建可引导USB驱...