Command-chaining-operators zijn speciale tekens die worden gebruikt om miniatuur-shellscripts in de opdrachtregel te schrijven. Ze worden over het algemeen gebruikt om commando's in een bepaalde volgorde uit te voeren, gedefinieerd door de plaatsing van operators tussen de commando's. Dit is ongelooflijk handig bij het automatiseren van taken.
Laten we meer te weten komen over enkele gemeenschappelijke ketenoperatoren op Linux die u kunnen helpen taken sneller en met minder gebruikersintervallen uit te voeren.
1. De Ampersand-operator (&)
Wanneer u een programma opent of een opdracht vanuit de shell uitvoert, moet u vaak wachten tot de opdracht is beëindigd of het programma handmatig afsluiten voordat u de shell kunt blijven gebruiken. Hier komt de ampersand-operator (&) om de hoek kijken.
Door de ampersand-operator aan een opdracht toe te voegen, dicteert u de shell aan voer dat Linux-commando op de achtergrond uit zodat je de shell ongebonden kunt blijven gebruiken.
gedit &
Als u gedit vanaf de terminal uitvoert, kunt u de terminal gewoonlijk niet gebruiken, tenzij u de teksteditor sluit. Maar door de ampersand-operator toe te voegen, kunt u deze op de achtergrond laten draaien en de shell onmiddellijk blijven gebruiken.
2. De puntkomma-operator (;)
De puntkomma-operator is een ongelooflijk handige Linux-ketenoperator die u kunt gebruiken om opdrachten in een gedefinieerde, sequentiële volgorde uit te voeren. Bestel uw opdrachten en scheid ze door puntkomma's.
pwd; mkdir test; CDtest; bestand aanraken
De bovenstaande syntaxis dicteert de shell om elk commando een voor een uit te voeren. Merk op dat de shell niet controleert of elke opdracht succesvol wordt beëindigd. Zodra de shell een retourcode ontvangt, gaat hij verder met het uitvoeren van de volgende opdracht.
3. De OR-operator (||)
De OR-operator voert de opdracht die volgt alleen uit als de voorgaande opdracht mislukt, d.w.z. retourneert een afsluitcode van 0. Het werkt als een logische OF-poort, die een waarde van 1 retourneert wanneer de invoer 0 is.
bad_commando || ls
In deze voorbeeldsyntaxis, slecht_commando is een valse opdracht die niet kan worden uitgevoerd en aangezien deze mislukt, volgt de opdracht de OR-operator op, namelijk het ls-commando, zal met succes worden uitgevoerd.
4. De pijpoperator (|)
De pipe-operator leidt de uitvoer van het voorgaande commando als invoer voor het volgende commando. Het wordt meestal gebruikt om gegevens te filteren met het grep-commando.
kattenproef | grep -ik "gebruikmaken van"
Deze opdracht verzendt de uitvoer van het kattencommando als invoer voor het grep-commando, dat vervolgens de uitvoer filtert op basis van een opgegeven tekenreeks.
5. De EN-operator (&&)
Deze operator werkt op dezelfde manier als de puntkomma-operator, behalve dat, in tegenstelling tot de puntkomma-operator, de AND-operator opdrachten alleen uitvoert als de voorgaande opdracht met succes is uitgevoerd.
pwd && mkdir-test && cd-test && slecht_commando && ls
In deze voorbeeldsyntaxis zal de shell alle opdrachten tot en met succesvol uitvoeren slecht_commando. Aangezien bad_command echter niet kan worden uitgevoerd, retourneert de shell een fout en slaat het ls-commando over.
6. De NOT-operator (!)
De NOT-operator werkt op dezelfde manier als een behalve-instructie bij het programmeren. Als u bijvoorbeeld een bewerking wilt uitvoeren op een groot aantal bestanden in een map, maar een paar op basis van een parameter, dan kunt u de NOT-operator gebruiken door de parameter achter het NOT-teken door te geven (!).
rm-R !(*.tekst)
Deze voorbeeldopdracht verwijdert recursief alle bestanden in een map, behalve bestanden met een ".tekst" verlenging.
7. De prioriteitsoperator ((..))
De opdrachten na de AND- en OR-operatoren zijn afhankelijk van de afsluitcode van de voorgaande opdracht. Deze operatoren zijn binair en evalueren alleen de twee commando's die ervoor en erna komen.
Dus wanneer u met meerdere operators werkt, is het belangrijk om groepen en prioriteit in te stellen om ervoor te zorgen dat de uitvoeringsvolgorde aan uw verwachtingen voldoet.
(ls *.txt > txt-bestanden.lijst && cp *.tx ~) && (ls *.deb > deb-pakketten.lijst && cp *.deb ~) || echo "Voorrangstest!"
In deze voorbeeldsyntaxis moeten beide groepen opdrachten een exitcode 0 retourneren om de succesvolle uitvoering van de laatste opdracht te garanderen. Dit voorbeeld vereist dat beide opdrachten in de eerste set () eindigen met 0 om de tweede set () te kunnen uitvoeren.
8. De combinatie-operator ({..})
Zoals de naam aangeeft, wordt de combinatie-operator gebruikt om opdrachten te groeperen. Welke commando's u ook wilt groeperen, u kunt ze tussen accolades plaatsen en ze zullen worden uitgevoerd afhankelijk van de exitcode van het eerste commando.
test -f /etc/passwd && {pwd; datum} && echo $0; echo "Hallo"
De voorbeeldsyntaxis test of het bestand /etc/passwd aanwezig is, drukt u de huidige werkdirectory, datum, shell-naam en echo "Hallo" af.
9. Aaneenschakeling of de ontsnappingsoperator (\)
De concatenatie- of escape-operator heeft twee functies. Je kunt het gebruiken om twee commando's samen te voegen of als een escape-teken wanneer je met strings in de shell werkt.
mkdir test0 test1 \ test2
echo "Hallo! van de
andere kant"
De eerste opdracht maakt vier mappen met de namen test0 tot en met test2, en de tweede opdracht drukt de tekenreeks af, gescheiden door een nieuwe regel.
10. De omleidingsoperatoren (>, >>,
De omleidingsoperatoren leiden uitvoer of invoer om naar een bestand door het bestand te herschrijven of eraan toe te voegen. Als u een bestand opnieuw wilt schrijven, moet u de syntaxis met enkele punthaken (>) gebruiken. Als u aan een bestand wilt toevoegen, moet u de syntaxis met dubbele punthaken gebruiken (>>).
echo "dsd"> test; echo "bsss">> test
In de voorbeeldsyntaxis overschrijft de eerste opdracht het "test"-bestand met de opgegeven tekenreeks, maar in de tweede opdracht wordt de opgegeven tekenreeks aan het testbestand toegevoegd.
Versnel uw Linux Terminal-workflow
Hoewel het gebruik van speciale operators de taakuitvoering voor u aanzienlijk zal stroomlijnen, zijn er meerdere andere manieren om uw workflow te versnellen.
Een gemakkelijke en waardevolle manier om meer gedaan te krijgen in minder tijd, is om vertrouwd te raken met een paar handige shell-snelkoppelingen. Door aan deze snelkoppelingen te wennen, kom je een heel eind, en je zult merken dat je erop vertrouwt zolang je Linux gebruikt.