
Gebruik Linux in plaats van blind te vliegen pv en progress commando’s om de voortgang van een commando te volgen. Deze hulpprogramma’s geven u voortgangsbalken voor opdrachten die er normaal niet zijn. U ziet ook een geschatte tijd tot voltooiing.
Als u een langeafstandsvlucht maakt in een vliegtuig zonder videoschermen in de rugleuningen, is het niet eenvoudig om te weten hoe ver u tijdens uw reis bent. Je weet wanneer je vertrok. U weet hoe lang de vlucht naar verwachting zal duren. Maar hoe weet u of u op schema, op tijd of ver achterloopt op schema? Als je de film tijdens de vlucht niet wilt bekijken, kun je meestal van videoscherm wisselen om een ​​kaart weer te geven met de positie van je vliegtuig erop. Je krijgt ook wat statistieken, zoals een verwachte aankomsttijd (ETA), wat geweldig is.
Het starten van een commando vanuit het terminalvenster kan soms aanvoelen als een langeafstandsvlucht zonder videoscherm. U hoeft niets aan te geven of alles in orde is of dat het proces is blijven hangen, noch hoe dicht het bij voltooiing is. Een knipperende cursor is niet erg informatief.
De pv en progress commando’s geven je wat statistieken en een beetje visuele feedback. U kunt zien hoe dichtbij het proces is om te voltooien. Dat betekent dat u een ETA krijgt voor uw lopende processen. In vergelijking met het staren naar een cursor, wint dat zonder meer.
PV installeren
U moet installeren pv.
Installeren pv gebruik op Ubuntu deze opdracht:
sudo apt-get install pv

Installeren pv gebruik in Fedora dit commando:
sudo dnf install pv

Installeren pv gebruik op Manjaro deze opdracht:
sudo pacman -Syu pv

Met behulp van pv
pv staat voor pipe viewer. Piping moet ergens bij de opdracht worden betrokken. Hier is een voorbeeld waarbij we een ISO-image doorvoeren zip om een ​​gecomprimeerd zip-bestand van de ISO te maken.
Om de commando’s zo lang te vertragen dat er een screenshot gemaakt kon worden, werden enkele van de bestanden in de voorbeelden die voor dit artikel gebruikt werden, opgeslagen op een oude, langzame, externe USB genaamd SILVERXHD.
pv /media/dave/SILVERXHD/gparted-live-1.0.0-1-amd64.iso | zip > gparted.zip

Van links naar rechts is de informatie die wordt weergegeven:
- De gegevens die tot nu toe zijn overgedragen.
- De tijd verstreek ver.
- De gegevensoverdrachtssnelheid (doorvoer).
- Een voortgangsbalk en een percentage voltooid cijfer.
- De geschatte resterende tijd tot voltooiing (ETA).
Een bestand kopiëren met pv
Om een ​​bestand met output van te kopiëren pv, gebruik dit commando:
pv /media/dave/SILVERXHD/gparted-live-1.0.0-1-amd64.iso > gparted.iso

We krijgen een voortgangsrapport terwijl het bestand wordt gekopieerd.

Meerdere bestanden kopiëren met pv
Om meerdere bestanden en mappen te kopiëren met pv we moeten een kleine truc gebruiken. We gebruiken tar om de bestanden voor ons te verplaatsen.
tar -c help-files/ | pv | tar -x -C Documents/

De tar -c help-files/ gedeelte van het commando instrueert tar maken (-c) een archief van de bestanden in de map helpbestanden. Dit wordt doorgesluisd pv zodat we een beeld krijgen van de voortgang. Het wordt dan weer doorgesluisd tar voor het laatste deel van de opdracht. Het archief wordt uitgepakt (-x) en de directory is gewijzigd (-C) naar documenten vóór de extractie.
De bestanden en mappen die in de helpbestanden staan, worden dus naar de map Documenten gekopieerd, met een voortgangsweergave.

De output is deze keer iets anders.
We krijgen geen ETA. De voortgangsbalk geeft nu een bewegende indicator weer. Het laat zien dat het proces actief is, maar het groeit niet van links naar rechts zoals een traditionele voortgangsbalk. pv is beperkt tot het weergeven van de informatie die het kan extraheren uit het proces dat wordt doorgesluisd.
Gebruik pv en tar om een ​​archief te maken
Bestanden kopiëren met pv en tar laat ons niet achter met een archiefbestand. Een soort “virtueel” archief wordt gemaakt door tar, die direct wordt teruggevoerd tar om de bestanden uit te pakken. Als het ons doel is om bestanden te kopiëren, is dat bereikt. Maar wat als we een archiefbestand willen maken?
We kunnen nog steeds gebruiken tar om een ​​archiefbestand aan te maken en een voortgangsrapport te krijgen van pv. De opties die worden gebruikt met tar zijn -c (archief maken), -z (comprimeren met gzip) en -f (bestandsnaam van het archief).
Merk op dat we - als de bestandsnaam, waardoor tar om stdout te gebruiken, en om zijn uitvoer naar het terminalvenster te schrijven. We zien die uitvoer niet omdat deze wordt doorgesluisd pv.
De daadwerkelijke naam van het archief wordt de bestandsnaam waarvan we de uitvoer pijpen pv in. In dit geval is het “help-files.tgz”.
tar -czf - ./help-files/ | pv > help-files.tgz

VERWANT: Bestanden comprimeren en extraheren met de tar-opdracht op Linux
De pv-weergaveopties
Er zijn een aantal opties waarmee u kunt gebruiken pv om de details van zijn rapport te wijzigen.
Als u een van deze opties gebruikt, zijn alle andere opties uitgeschakeld. Dus als u drie van de weergave-opties in gebruik wilt hebben, dan moet u die drie opties specificeren.
Gebruik makend van pv zonder enige optie is hetzelfde als het gebruik van de -pterb opties.
- -p: geef het percentage compleet. Dit is de voortgangsbalk en het percentage voltooid cijfer.
- -t: toon de verstreken tijd.
- -e: geef het ETA.
- -r: geef het tarief van gegevensoverdracht.
- -b: toon het byte count (tot dusver overgedragen gegevens).
- -n: geef het percentage weer als een geheel getal. Dit drukt het voltooide percentage af als een geheel getal, met elke nieuwe update op een nieuwe regel.
Laten we het laatste commando herhalen en het -p (percentage voltooid) optie naar pv.
tar -czf - ./help-files/ | pv - p > help-files.tgz

Met behulp van pv met wc
We kunnen gebruiken pv om een ​​tekstbestand (of bestanden) naar wc. wc telt dan de regelterugloop, tekens en woorden en pv zal ons een voortgangsrapport geven.
Hier zijn we alle “.page” -bestanden in de map met helpbestanden aan het pipen naar wc.
Wanneer wc voltooit kunnen we onze telling van regelterugvoeringen (regels), tekens en woorden van alle “.page” -bestanden in de map met helpbestanden zien.

De voortgangsopdracht installeren
De progress commando geeft dezelfde soort nuttige informatie als pv, maar het werkt met een specifieke set Linux-commando’s.
Installeren progress gebruik in Ubuntu deze opdracht:
sudo apt-get install progress

Installeren progress gebruik in Fedora dit commando:
sudo dnf install progress

Installeren progress gebruik in Manjaro deze opdracht:
sudo pacman -Syu progress

De voortgang van de opdrachten werkt mee
Typen progress in een terminalvenster en als u op Enter drukt, krijgt u een lijst met de opdrachten die progress werkt met.
progress

Vooruitgang gebruiken met pijpen
Er zijn twee technieken waarmee we commando’s kunnen monitoren progress. De eerste is om pijpen te gebruiken.
De tar commando staat in de lijst met ondersteunde commando’s die progress kunnen monitoren, dus laten we gebruiken tar.
De opties die we zullen gebruiken, zijn de standaard -c (archief maken), -z (comprimeren met gzip) en -f (bestandsnaam) opties. We gaan een gecomprimeerd archief maken van alles in de map met helpbestanden, en het archief zal “help.tgz” heten.
We pompen dat in progress en het gebruik van de -m (monitor) optie dus progress blijft rapporteren over het proces totdat het is voltooid.
tar -czf help.tgz ./help-files/ | progress -m

Het terminalvenster toont de voortgang van het tar commando terwijl het het archief maakt.

Terwijl elk bestand wordt verwerkt, wordt het weergegeven met de volgende informatie:
- De proces-ID.
- De procesnaam.
- Percentage voltooid.
- Verwerkte gegevens en totale grootte van het bestand.
- Gegevenssnelheid (doorvoer).
- Geschatte resterende tijd (ETA).
Het zal je misschien verbazen dat er een tweede dataset verschijnt. Deze eerste dataset is voor tar. De tweede is voor gzip. tar oproepen gzip om de compressie uit te voeren. Omdat gzip staat in de lijst met ondersteunde opdrachten, progress rapporteert erover.
Voortgang gebruiken in continue monitormodus
Je kunt gebruiken progress in een real-time continue monitormodus met behulp van de -M (monitor) optie.
Typ de volgende opdracht in een terminalvenster:
progress -M

progress zal melden dat er geen opdrachten worden uitgevoerd om te controleren. Maar u keert niet terug naar de opdrachtregel. progress wacht totdat een commando wordt gestart dat het kan controleren. Het zal dan automatisch beginnen met rapporteren.

Typ in een ander terminalvenster een opdracht uit de lijst met opdrachten die de voortgang kan volgen.
We gaan gebruiken cat. Commando’s die te snel voorbij zijn, worden niet geregistreerd bij progress, dus we zullen de inhoud van een erg lang tekstbestand weergeven.
cat words.page

In het terminalvenster met progress daarin zie je statistieken voor de cat commando terwijl het wordt uitgevoerd en naar voltooiing toe werkt.

Wanneer cat maakt de lijst van het bestand af progress keert terug naar de wachttoestand.
Elke keer dat een van de opdrachten waarover hij kan rapporteren een omvangrijke taak uitvoert, progress zal het automatisch monitoren en erover rapporteren.
Dat is best netjes.
100% voltooid
Neem het giswerk weg bij het afvragen hoe een langlopende opdracht het doet, en neem een ​​pauze van het nadenken over uw cursor met pv en progress .
