Als u een Linux-systeembeheerder bent, bestaat er geen twijfel over dat u de meeste van uw werktijd op de opdrachtregel moet doorbrengen - pakketten installeren en verwijderen; bewakingssysteemstatistieken; kopiëren, verplaatsen, dingen verwijderen; debugging problemen; en meer. Er zijn tijden dat u een opdracht opstelt en het duurt even voordat de bewerking is voltooid. Er zijn echter ook momenten waarop het commando dat je hebt uitgevoerd gewoon blijft hangen, waardoor je vermoedt wat er achter de schermen gebeurt.

Meestal geven Linux-commando's geen informatie over de voortgang van de lopende operatie, iets dat erg belangrijk is, vooral wanneer je beperkte tijd hebt. Dat betekent echter niet dat u hulpeloos bent - er bestaat een commando, genaamd pv, dat nuttige voortgangsinformatie weergeeft met betrekking tot de lopende bewerking van de opdrachtregel. In dit artikel bespreken we deze opdracht en de functies ervan aan de hand van enkele gemakkelijk te begrijpen voorbeelden.

PV-commando

Ontwikkeld door Andrew Wood, toont PV - wat staat voor Pipe Viewer - informatie over de voortgang van gegevens via een pijplijn. De informatie omvat de verstreken tijd, het percentage voltooid (met voortgangsbalk), de huidige doorvoersnelheid, de totale overgedragen gegevens en ETA.

"Om het te gebruiken, plaatst u het in een pijplijn tussen twee processen, met de juiste opties. De standaardinvoer wordt doorgegeven aan de standaarduitvoer en de voortgang wordt weergegeven bij standaardfout, "

Het bovenstaande verklaart de manpagina van het commando.

Downloaden en installeren

Gebruikers van op Debian gebaseerde systemen zoals Ubuntu kunnen het hulpprogramma eenvoudig installeren door de volgende opdracht in terminal uit te voeren:

 sudo apt-get install pv 

Als u een andere Linux-distro gebruikt, kunt u de opdracht installeren met behulp van de pakketbeheerder die op uw systeem is geïnstalleerd. Na een succesvolle installatie kunt u het opdrachtregelhulpprogramma gebruiken in verschillende scenario's (zie het volgende gedeelte). Het is de moeite waard te vermelden dat pv versie 1.2.0 is gebruikt in alle voorbeelden die in dit artikel worden genoemd.

Functies en gebruik

Een veel voorkomend scenario dat waarschijnlijk de meesten van ons (die op de opdrachtregel werken in Linux) zou relateren aan het kopiëren van een filmbestand van een USB-station naar uw computer. Als u de bovengenoemde bewerking probeert uit te voeren met behulp van de opdracht cp, moet u blindelings wachten tot het kopiëren is voltooid of er een fout is opgetreden.

De pv opdracht kan in dit geval echter nuttig zijn. Hier is een voorbeeld:

 pv /media/himanshu/1AC2-A8E3/fNf.mkv> ./Desktop/fnf.mkv 

En hier is de uitvoer:

Dus, zoals je hierboven kunt zien, toont de opdracht heel wat nuttige informatie met betrekking tot de lopende operatie, inclusief de hoeveelheid data die is overgedragen, verstreken tijd, snelheid van overdracht, voortgangsbalk, voortgang in percentage en de hoeveelheid tijd over.

Het pv commando biedt verschillende display-schakelaars. U kunt bijvoorbeeld -p voor het weergeven van percentage, -t voor timer, -r voor overdrachtssnelheid, -e voor eta, en -b voor byteteller. Het goede ding is dat u geen van hen hoeft te onthouden, omdat ze allemaal standaard zijn ingeschakeld. Mocht u echter uitsluitend informatie nodig hebben die gerelateerd is aan slechts een bepaalde schermschakelaar in de uitgang, dan kunt u die schakelaar doorgeven in de pv opdracht.

Er is ook een -n display-schakelaar waarmee de opdracht een integer percentage kan weergeven, één per regel op standaardfout, in plaats van de normale visuele voortgangsindicator. Het volgende is een voorbeeld van deze schakelaar in actie:

 pv -n /media/himanshu/1AC2-A8E3/fNf.mkv> ./Desktop/fnf.mkv 

Deze specifieke display-schakelaar is geschikt in scenario's waar u de uitvoer naar de dialoogopdracht wilt leiden.

Verderop is er ook een opdrachtregeloptie, -L, waarmee u de gegevensoverdrachtsnelheid van de pv-opdracht kunt wijzigen. Ik heb bijvoorbeeld -L gebruikt om de gegevensoverdrachtsnelheid te beperken tot 2 MB / sec.

 pv -L 2m /media/himanshu/1AC2-A8E3/fNf.mkv> ./Desktop/fnf.mkv 

Zoals te zien is in de bovenstaande schermafbeelding, is de gegevensoverdrachtsnelheid gemaximeerd volgens mijn richting.

Een ander scenario waarin pv kan helpen is bij het comprimeren van bestanden. Hier is een voorbeeld van hoe je deze opdracht kunt gebruiken terwijl je bestanden comprimeert met Gzip:

 pv /media/himanshu/1AC2-A8E3/fnf.mkv | gzip> ./Desktop/fnf.log.gz 

Conclusie

Zoals je hebt gezien, is pv een handig klein hulpprogramma dat je kan helpen je kostbare tijd te besparen in het geval dat een opdrachtregel niet werkt zoals verwacht. Bovendien kan de weergegeven informatie ook in shellscripts worden gebruikt. Ik zou dit bevel met klem aanbevelen; het is de moeite van het proberen waard.