Hoe je twee of meer terminalcommando's tegelijk kunt uitvoeren in Linux
Als u Linux gebruikt, weet u hoe nuttig de opdrachtregel kan zijn voor het werken met bestanden, het installeren van software en het starten van programma's. Maar het kan nog efficiënter zijn als u meerdere opdrachten tegelijkertijd uitvoert.
Het combineren van twee of meer opdrachten op de opdrachtregel wordt ook wel 'opdrachtketen' genoemd. We laten u verschillende manieren zien waarop u opdrachten op de opdrachtregel kunt combineren.
Optie één: de puntkomma (;) operator
Met de operator met de puntkomma (;) kunt u meerdere opdrachten achter elkaar uitvoeren, ongeacht of elke vorige opdracht slaagt. Open bijvoorbeeld een Terminal-venster (Ctrl + Alt + T in Ubuntu en Linux Mint). Typ vervolgens de volgende drie opdrachten op één regel, gescheiden door puntkomma's, en druk op Enter. Dit geeft je een lijst van de huidige map ( ls
), zoek uit in welke map u zich momenteel bevindt ( pwd
) en geef uw aanmeldnaam weer ( wie ben ik
) alles in een keer.
ls; pwd; wie ben ik
U hoeft ook geen spaties tussen de puntkomma's en de opdrachten te plaatsen. U kunt de drie opdrachten invoeren als ls, pwd; whoami
. Spaties maken de gecombineerde opdracht leesbaarder, wat vooral handig is als u een gecombineerde opdracht in een shellscript invoert.
Optie twee: de logische AND-operator (&&)
Als u wilt dat de tweede opdracht alleen wordt uitgevoerd als de eerste opdracht is gelukt, scheidt u de opdrachten met de logische AND-operator, wat twee ampersands is ( &&
). We willen bijvoorbeeld een map met de naam MyFolder maken en vervolgens naar die map gaan, op voorwaarde dat deze met succes is gemaakt. Dus typen we het volgende op de opdrachtregel en druk op Enter.
mkdir MyFolder && cd MyFolder
De map is met succes gemaakt, dus de CD
opdracht is uitgevoerd en we zitten nu in de nieuwe map.
We adviseren het gebruik van de logische operator AND in plaats van de operator met puntkomma's meestal (;
). Dit zorgt ervoor dat je niets rampzaligs doet. Als u bijvoorbeeld een opdracht uitvoert om naar een map te veranderen en vervolgens geforceerd alles in die map geforceerd verwijdert ( cd / some_directory; rm -Rf *
), zou u uw systeem kunnen verpesten als de wijziging van de map niet heeft plaatsgevonden. Niet dat we u aanraden een opdracht uit te voeren om alle bestanden in een map in één keer onvoorwaardelijk te verwijderen.
Optie drie: de logische OR-operator (||)
Soms wilt u misschien alleen een tweede opdracht uitvoeren als de eerste opdracht dat doet niet slagen. Om dit te doen gebruiken we de logische OR-operator of twee verticale balken ( ||
). We willen bijvoorbeeld controleren of de map MyFolder bestaat ( [-d ~ / MyFolder]
) en maak het als dat niet het geval is ( mkdir ~ / MyFolder
). Dus, we typen de volgende opdracht bij de prompt en druk op Enter.
[-d ~ / MyFolder] || mkdir ~ / MyFolder
Zorg ervoor dat er een spatie achter de eerste en vóór de tweede haak is of dat de eerste opdracht die controleert of de map bestaat niet werkt.
In ons voorbeeld bestaat de map MyFolder niet, dus de tweede opdracht maakt de map.
Combinatie van meerdere operators
U kunt ook meerdere operatoren op de opdrachtregel combineren. We willen bijvoorbeeld eerst controleren of een bestand bestaat ( [-f ~ / sample.txt]
). Als dat het geval is, drukken we een bericht op het scherm met de mededeling ( echo "Bestand bestaat."
). Zo niet, dan maken we het bestand ( raak ~ / sample.txt aan
). Dus, we typen het volgende bij de opdrachtprompt en druk op Enter.
[-f ~ / sample.txt] && echo "Bestand bestaat." || raak ~ / sample.txt aan
In ons voorbeeld bestond het bestand niet, dus het is gemaakt.
Hier is een handig overzicht van elk van de operators die worden gebruikt om commando's te combineren:
-
EEN ; B
- Voer A en vervolgens B uit, ongeacht het succes of falen van A -
A && B
- Voer B alleen uit als A is geslaagd -
A || B
- Voer B alleen uit als A is mislukt
Al deze methoden voor het combineren van opdrachten kunnen ook in shellscripts op zowel Linux als Windows 10 worden gebruikt.
Je kunt ook automatisch spelling en typfouten corrigeren wanneer je "cd" gebruikt op de opdrachtregel in Linux om drastische consequenties te vermijden bij het combineren van commando's.