Website-Suche

10 nützliche Verkettungsoperatoren unter Linux mit Beispielen


Unter Verkettung von Linux-Befehlen versteht man, mehrere Befehle zu kombinieren und sie basierend auf dem Verhalten des dazwischen verwendeten Operators auszuführen.

Das Verketten von Befehlen in Linux ist in etwa so, als würden Sie kurze Shell-Skripte in der Shell selbst schreiben und sie direkt vom Terminal aus ausführen. Durch die Verkettung ist es möglich, den Prozess zu automatisieren.

Darüber hinaus kann eine unbeaufsichtigte Maschine mit Hilfe von verketteten Bedienern systematisch funktionieren.

In diesem Artikel sollen häufig verwendete Befehlsverkettungsoperatoren erläutert werden. Es bietet kurze Beschreibungen und entsprechende Beispiele, die Ihre Produktivität steigern und es Ihnen ermöglichen können, prägnanten, aussagekräftigen Code zu schreiben und gleichzeitig die Systemlast zu reduzieren.

1. Und-Operator (&) – Linux-Befehl im Hintergrund ausführen

Die Funktion von '&' besteht darin, den Befehl im Hintergrund laufen zu lassen. Geben Sie einfach den Befehl gefolgt von einem Leerzeichen und "&" ein. Sie können mehr als einen Befehl im Hintergrund in einem einzigen Rutsch ausführen.

Führen Sie einen einzelnen Linux-Befehl namens 'ping' im Hintergrund aus:

ping -­c5 linux-console.net &

Führen Sie zwei oder mehrere apt-Befehle gleichzeitig im Hintergrund aus:

apt update & apt upgrade &

2. Semi-Colon Operator (;) – Führen Sie mehrere Befehle aus

Der Operator Semikolon (;) ermöglicht es, mehrere Befehle in einem Durchgang auszuführen und die Ausführung des Befehls sequenziell zu erfolgen.

apt update ; apt upgrade ; mkdir test

Die obige Befehlskombination führt zuerst die Update-Anweisung aus, dann die Upgrade-Anweisung und erstellt schließlich ein 'test'-Verzeichnis unter dem aktuellen Arbeitsverzeichnis.

3. AND-Operator (&&) – Zweiten Befehl bei Erfolg ausführen

Der AND-Operator (&&) würde den zweiten Befehl nur ausführen, wenn die Ausführung des ersten Befehls erfolgreich ist, d.h. der Beendigungsstatus des ersten Befehls 0 ist. Dieser Befehl ist sehr nützlich, um den Ausführungsstatus des letzten Befehls zu überprüfen.

Zum Beispiel möchte ich die Website linux-console.net mit dem Befehl links im Terminal besuchen, aber vorher muss ich überprüfen, ob der Host live ist oder nicht.

ping -c3 linux-console.net && links linux-console.net

4. OR-Operator (||) – Bedingte Befehlsausführung

Der OR-Operator (||) ähnelt einer 'else'-Anweisung in der Programmierung. Mit dem || Operator können Sie den zweiten Befehl nur ausführen, wenn die Ausführung des ersten Befehls fehlschlägt, d.h. der Beendigungsstatus des ersten Befehls ist '1'.

Zum Beispiel möchte ich 'apt update' von einem Nicht-Root-Konto aus ausführen und wenn der erste Befehl fehlschlägt, wird der zweite Befehl 'links linux-console.net' ausgeführt.

apt update || links linux-console.net

Da der Benutzer im obigen Befehl nicht berechtigt war, das System zu aktualisieren, bedeutet dies, dass der Beendigungsstatus des ersten Befehls '1' ist und daher der letzte Befehl 'links linux-console.net' ausgeführt wird.

Was passiert, wenn der erste Befehl erfolgreich ausgeführt wird und den Exit-Status '0' hat? Offensichtlich! Der zweite Befehl wird nicht ausgeführt.

mkdir test || links linux-console.net

Hier legt der Benutzer in seinem Home-Verzeichnis einen Ordner 'test' an, für den er berechtigt ist. Der Befehl wurde erfolgreich ausgeführt und gab den Exit-Status '0' an, so dass der letzte Teil des Befehls nicht ausgeführt wird.

5. NOT Operator (!) – Selektives Ausführen von Befehlen

Der NOT-Operator (!) ähnelt einer 'except'-Anweisung. Dieser Befehl führt alle außer der angegebenen Bedingung aus. Um dies zu verstehen, erstellen Sie ein Verzeichnis 'tecmint' in Ihrem Home-Verzeichnis und 'cd' dorthin.

mkdir tecmint 
cd tecmint

Erstellen Sie als Nächstes mehrere Dateitypen im Ordner 'tecmint'.

touch a.doc b.doc a.pdf b.pdf a.xml b.xml a.html b.html

Sehen Sie, wir haben alle neuen Dateien im Ordner 'tecmint' erstellt.

ls 

a.doc  a.html  a.pdf  a.xml  b.doc  b.html  b.pdf  b.xml

Löschen Sie nun alle Dateien mit Ausnahme der 'html'-Datei auf einmal, auf intelligente Weise mit dem Befehl rm.

rm -r !(*.html)

Nur zur Überprüfung, letzte Ausführung. Listen Sie alle verfügbaren Dateien mit dem Befehl ls auf.

ls 

a.html  b.html

6. AND – OR Operator (&& – ||) – Bedingte Ausführung von Befehlen

Der obige Operator ist eine Kombination aus 'UND'- und 'ODER'-Operator. Es ist ähnlich wie eine "Wenn-sonst"-Aussage.

Lassen Sie uns zum Beispiel einen Ping an linux-console.net machen, wenn success echo 'Verified' else echo 'Host Down' ist.

ping -c3 linux-console.net && echo "Verified" || echo "Host Down"

Beispiel-Ausgabe:

PING linux-console.net (212.71.234.61) 56(84) bytes of data. 
64 bytes from linux-console.net (212.71.234.61): icmp_req=1 ttl=55 time=216 ms 
64 bytes from linux-console.net (212.71.234.61): icmp_req=2 ttl=55 time=224 ms 
64 bytes from linux-console.net (212.71.234.61): icmp_req=3 ttl=55 time=226 ms 

--- linux-console.net ping statistics --- 
3 packets transmitted, 3 received, 0% packet loss, time 2001ms 
rtt min/avg/max/mdev = 216.960/222.789/226.423/4.199 ms 
Verified

Trennen Sie nun Ihre Internetverbindung und versuchen Sie denselben Befehl erneut.

ping -c3 linux-console.net && echo "verified" || echo "Host Down"

Beispiel-Ausgabe:

ping: unknown host linux-console.net 
Host Down

7. PIPE-Operator (|) – Optimierte Ausgabeverarbeitung

Dieser PIPE-Operator ist sehr nützlich, wenn die Ausgabe des ersten Befehls als Eingabe für den zweiten Befehl fungiert. Leiten Sie z. B. die Ausgabe von 'ls -l' an 'less' weiter, und sehen Sie sich die Ausgabe des Befehls an.

ls -l | less

drwx------  tecmint tecmint  4.0 KB Thu Nov 16 12:03:02 2023 AnyDesk
drwxrwxr-x  tecmint tecmint  4.0 KB Tue Oct 10 10:44:35 2023 bin
drwxr-xr-x  root    root     4.0 KB Wed Nov 24 22:05:09 2021 DEBIAN
drwxrwxr-x  tecmint tecmint  4.0 KB Sat Nov 18 12:32:49 2023 Desktop
drwx--x---+ tecmint tecmint  100 KB Fri Dec  8 12:00:49 2023 Downloads
drwxrwxr-x  tecmint tecmint  4.0 KB Wed Sep 13 10:25:07 2023 llpp
drwxrwxr-x  tecmint tecmint  4.0 KB Thu Nov 16 14:26:46 2023 MyImages
drwxrwxr-x  tecmint tecmint  4.0 KB Wed Sep 13 14:55:42 2023 Obsidian Vault
drwxrwxr-x  tecmint tecmint  4.0 KB Tue Oct 10 10:44:32 2023 opt
drwxrwxr-x  tecmint tecmint  4.0 KB Thu Nov 16 14:46:54 2023 php
drwxrwxr-x  tecmint tecmint  4.0 KB Thu Nov 16 15:54:33 2023 tar_examples
.rw-rw-r--  tecmint tecmint   73 KB Mon Sep 18 11:46:02 2023 Apache-Web-Server-Security.png
.rw-rw-r--  tecmint tecmint  2.2 KB Sun Oct 29 00:17:15 2023 ChatGPT-SEO-Prompts
.rw-rw-r--  tecmint tecmint   41 KB Thu Nov 23 11:34:33 2023 Create-Users-in-Linux.png
...

8. Befehlskombinationsoperator {}

Kombinieren Sie zwei oder mehr Befehle, der zweite Befehl hängt von der Ausführung des ersten Befehls ab.

Prüfen Sie beispielsweise, ob ein Verzeichnis 'bin' verfügbar ist oder nicht, und geben Sie die entsprechende Ausgabe aus.

[ -d bin ] || { echo Directory does not exist, creating directory now.; mkdir bin; } && echo Directory exists.

9. Rangfolgeoperator() – Verwalten der Befehlsausführungsreihenfolge

Der Operator () ermöglicht es, Befehle in der Reihenfolge der Rangfolge auszuführen.

Command_x1 &&Command_x2 || Command_x3 && Command_x4.

Was ist, wenn der Command_x1 im obigen Pseudobefehl fehlschlägt? Keines der Command_x2, Command_x3, Command_x4 ausgeführt würde, verwenden wir den Rangfolgeoperator, wie folgt:

(Command_x1 &&Command_x2) || (Command_x3 && Command_x4)

Wenn im obigen Pseudobefehl Command_x1 fehlschlägt, schlägt Command_x2 ebenfalls fehl, aber Still Command_x3 und Command_x4 ausgeführt, abhängig vom Beendigungsstatus Command_x3.

10. Verkettungsoperator (\) – Verkettung von mehrzeiligen Befehlen

Der Verkettungsoperator (\) wird, wie der Name schon sagt, verwendet, um große Befehle über mehrere Zeilen in der Shell zu verketten. Zum Beispiel: Der folgende Befehl öffnet eine Textdatei test(1).txt.

nano test\(1\).txt

Das war's fürs Erste. Ich werde demnächst einen weiteren interessanten Artikel schreiben. Bis dahin Bleiben Sie dran, gesund und mit Tecmint verbunden. Vergessen Sie nicht, Ihr wertvolles Feedback in unserem Kommentarbereich abzugeben.

Verwandte Artikel: