Verhoog de efficiëntie door meerdere opdrachten tegelijkertijd uit te voeren in Linux

Verhoog de efficiëntie door meerdere opdrachten tegelijkertijd uit te voeren in Linux
Functie Afbeelding Versnel het proces van meerdere opdrachten

Wilt u uw productiviteit verbeteren? Overweeg dan om meerdere opdrachten tegelijk uit te voeren in uw Linux-terminal. Met deze aanpak kunt u eenvoudige sequentieopdrachten uitvoeren, taken op de achtergrond uitvoeren en voorwaardelijke opdrachten collectief beheren.

In dit artikel gaan we dieper in op verschillende technieken voor het zowel sequentieel als gelijktijdig uitvoeren van opdrachten op een Linux-terminal.

De voordelen van het gelijktijdig uitvoeren van meerdere opdrachten

Of u nu routinematige onderhoudstaken uitvoert, grote datasets verwerkt of segmenten van uw workflow automatiseert, door opdrachten te combineren kunt u uw werkzaamheden stroomlijnen en de algehele efficiëntie verhogen.

Wanneer u bijvoorbeeld meerdere mappen wilt back-uppen, kunt u de opdrachten aan elkaar koppelen in plaats van dat u elke opdracht afzonderlijk hoeft uit te voeren. Dit bespaart u tijd en moeite.

Ik koppel vaak opdrachten aan elkaar bij het installeren van Linux-pakketten die meerdere modules vereisen. Hierdoor zorg ik ervoor dat het pakket en de bijbehorende afhankelijkheden in één handeling worden geïnstalleerd, waardoor herhaaldelijk typen wordt voorkomen.

Sequentiële opdrachtuitvoering

Deze methode is mijn go-to bij het gebruik van de terminal. We kunnen commando’s koppelen zodat ze na elkaar worden uitgevoerd, ongeacht of het vorige commando succesvol is uitgevoerd.

Om deze opdrachten in volgorde uit te voeren, gebruikt u gewoon een puntkomma ;als scheidingsteken. Wanneer u op enter drukt, verwerkt de terminal de eerste opdracht, wacht tot deze is voltooid en gaat dan door naar de volgende.

Als u bijvoorbeeld uw systeem wilt bijwerken en tegelijkertijd ongebruikte pakketten wilt verwijderen, kunt u het volgende doen:

Het Ubuntu-systeem updaten, upgraden en opschonen met behulp van apt package manager.

Door deze opdrachten aan elkaar te koppelen, zorgt u voor opeenvolgende uitvoering. Zo weet u zeker dat elke taak pas wordt voltooid nadat de vorige is voltooid, waardoor de efficiëntie behouden blijft.

Uitvoering van opdrachten op basis van voorwaarden

Als u de tweede opdracht alleen wilt uitvoeren als de eerste opdracht succesvol is (of mislukt), kunt u gebruikmaken van voorwaardelijke uitvoering door gebruik te maken van de operators &&(AND) en (OR).||

Uitvoeren als het eerste commando slaagt

Om er zeker van te zijn dat een opdracht alleen wordt uitgevoerd als de vorige succesvol was, gebruikt u de &&operator tussen de opdrachten.

Als u bijvoorbeeld een nieuwe map wilt maken en er pas naartoe wilt gaan als het maken van de map succesvol is, gebruikt u:

Tegelijkertijd een directory maken en wijzigen.

Als de eerste opdracht mislukt, wordt de volgende opdracht niet uitgevoerd.

Uitvoeren als de eerste opdracht mislukt

|| operator. Dit is vooral handig voor fallback-opdrachten of het loggen van fouten zonder uw workflow te verstoren.

Ik vind deze praktijk vaak nuttig tijdens bestandsbewerkingen, zoals het kopiëren van een bestand naar een back-uplocatie. Als het kopiëren mislukt, wil ik op de hoogte worden gebracht zonder mijn lopende taken te onderbreken. U kunt het als volgt structureren:

cp file_name /backup || echo "Failed!" >> error_log.txt

In dit geval cpprobeert de opdracht het aangewezen bestand naar de back-updirectory te kopiëren. Als dit mislukt, ||voert de operator de volgende opdracht uit, die de foutmelding aan een foutenlogboek toevoegt. Op deze manier gaat uw workflow ononderbroken door en wordt het probleem ook gedocumenteerd voor latere beoordeling.

Opdrachten op de achtergrond uitvoeren

Soms wilt u misschien niet pauzeren totdat een taak is afgerond. Als een proces veel tijd kost, kunt u uw werk laten stromen door een ampersand &aan het einde van uw opdracht toe te voegen.

Als u bijvoorbeeld een groot bestand van een specifieke URL wilt downloaden en tegelijkertijd aan andere taken wilt blijven werken, kunt u het volgende gebruiken:

sudo wget https://example.com/large-file.zip &

Hierdoor kunt u gewoon op de terminal blijven werken terwijl het downloaden op de achtergrond plaatsvindt.

Opdrachten koppelen met uitvoering op de achtergrond

Wat als u twee opdrachten wilt verbinden en er tegelijkertijd voor wilt zorgen dat de laatste op de achtergrond wordt uitgevoerd nadat de eerste is voltooid? In dit geval kunt u zowel de pipe- |operator als de ampersand gebruiken &.

De pijp |zorgt ervoor dat de uitvoer van de eerste opdracht als invoer voor de tweede opdracht fungeert, terwijl het ampersand &ervoor zorgt dat de tweede opdracht op de achtergrond wordt uitgevoerd.

Om bijvoorbeeld een groot bestand te lezen, trefwoorden te extraheren en de resultaten in een nieuw bestand op te slaan, kunt u de omleidingsoperator gebruiken >:

cat samplefile.txt | grep "Project" > output.txt &
Grote bestanden doorzoeken en de opgegeven resultaten afzonderlijk opslaan.

Met deze instelling worden zowel de zoek- als de opslagbewerkingen op de achtergrond uitgevoerd. Op deze manier kunt u andere opdrachten uitvoeren zonder onderbreking terwijl het bestand wordt verwerkt.

Meerdere opdrachten gelijktijdig uitvoeren met Xargs

Als u uw multitasking-mogelijkheden wilt verbeteren, overweeg dan om opdrachten parallel uit te voeren met behulp van de xargsopdracht. Dit maakt gelijktijdige uitvoering van meerdere opdrachten mogelijk in plaats van ze sequentieel te verwerken.

Met deze xargsopdracht wordt een lijst met argumenten efficiënt opgesplitst in kleinere batches, waarbij op elke batch tegelijkertijd een specifieke opdracht wordt uitgevoerd.

Als u bijvoorbeeld een lijst met URL’s in een bestand hebt opgeslagen en u wilt ze allemaal in één keer downloaden, kunt u het volgende doen in plaats van dit één voor één te doen:

cat urls_file.txt | xargs -n 1 -P 4 wget

In dit geval, -n 1geeft het instructies xargsom één argument per opdracht te verwerken en -P 4instrueert het om gelijktijdig vier opdrachten uit te voeren. Dit versnelt het downloadproces aanzienlijk vergeleken met een sequentiële aanpak.

Conclusie

Kortom, u kunt opdrachten combineren met puntkomma’s ;, voorwaardelijke uitvoering implementeren met &&en ||, achtergrondprocessen uitvoeren met &en uw multitaskingmogelijkheden verbeteren door parallelle uitvoering met xargs.

Afbeelding tegoed: Unsplash . Alle aanpassingen en screenshots door Haroon Javed.

Bron

Geef een reactie

Je e-mailadres wordt niet gepubliceerd. Vereiste velden zijn gemarkeerd met *