Website-Suche

10 nützliche Verkettungsoperatoren unter Linux mit Beispielen


Bei der Verkettung von Linux-Befehlen werden mehrere Befehle kombiniert und basierend auf dem Verhalten des dazwischen verwendeten Operators ausgeführt.

Die Verkettung von Befehlen unter Linux ist in etwa so, als würden Sie kurze Shell-Skripte in der Shell selbst schreiben und diese direkt vom Terminal aus ausführen. Durch die Verkettung ist eine Automatisierung des Prozesses möglich.

Darüber hinaus kann eine unbeaufsichtigte Maschine mithilfe der Verkettung von Bedienern systematisch funktionieren.

Ziel dieses Artikels ist es, Licht auf häufig verwendete Befehlsverkettungsoperatoren zu werfen. Es enthält kurze Beschreibungen und entsprechende Beispiele, die Ihre Produktivität steigern und es Ihnen ermöglichen, prägnanten, aussagekräftigen Code zu schreiben und gleichzeitig die Systemlast zeitweise zu reduzieren.

1. Et-Operator (&) – Führen Sie den Linux-Befehl im Hintergrund aus

Die Funktion von „&“ besteht darin, den Befehl im Hintergrund auszuführen. Geben Sie einfach den Befehl ein, gefolgt von einem Leerzeichen und „&“. Sie können mehr als einen Befehl gleichzeitig im Hintergrund ausführen.

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

ping -­c5 linux-console.net &

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

apt update & apt upgrade &

2. Semikolon-Operator (;) – Mehrere Befehle ausführen

Der Semikolon-Operator (;) ermöglicht die Ausführung mehrerer Befehle auf einmal und die Ausführung des Befehls erfolgt nacheinander.

apt update ; apt upgrade ; mkdir test

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

3. UND-Operator (&&) – Führen Sie bei Erfolg den zweiten Befehl aus

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

Ich möchte zum Beispiel die Website linux-console.net mit dem Befehl „links“ im Terminal besuchen, muss aber vorher prüfen, ob der Host live oder nicht.

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

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

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

Ich möchte beispielsweise „apt update“ von einem Nicht-Root-Konto aus ausführen und wenn der erste Befehl fehlschlägt, dann der zweite Befehl „links linux-console.net“ wird ausgeführt.

apt update || links linux-console.net

Da der Benutzer im obigen Befehl das System nicht aktualisieren durfte, bedeutet dies, dass der Exit-Status des ersten Befehls '1' ist und daher wird der letzte Befehl „links linux-console.net“ ausgeführt.

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

mkdir test || links linux-console.net

Hierbei legt der Benutzer in seinem Home-Verzeichnis einen Ordner „test“ an, für den der Benutzer berechtigt ist. Der Befehl wurde erfolgreich ausgeführt und ergab den Exit-Status „0“. Daher wird der letzte Teil des Befehls nicht ausgeführt.

5. NICHT-Operator (!) – Selektive Ausführung von Befehlen

Der NOT-Operator (!) ähnelt einer „Exception“-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

Als nächstes erstellen Sie 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 außer der Datei „html“ auf einmal auf intelligente Weise mit dem Befehl rm.

rm -r !(*.html)

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

ls 

a.html  b.html

6. UND – ODER-Operator (&& – ||) – Bedingte Ausführung von Befehlen

Der obige Operator ist eine Kombination aus dem Operator „AND“ und „OR“. Es ähnelt stark einer „if-else“-Anweisung.

Führen wir zum Beispiel einen Ping an linux-console.net durch. Bei Erfolg wird „Verified“ zurückgegeben, andernfalls „Host Down“.

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

Beispielausgabe:

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 wiederholen Sie den gleichen Befehl.

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

Beispielausgabe:

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 beispielsweise 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.

Überprü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. Precedence Operator() – Verwalten der Befehlsausführungsreihenfolge

Der ()-Operator ermöglicht die Ausführung von Befehlen in der Reihenfolge ihrer Priorität.

Command_x1 &&Command_x2 || Command_x3 && Command_x4.

Was passiert im obigen Pseudobefehl, wenn Command_x1 fehlschlägt? Keiner der Befehle Command_x2, Command_x3 und Command_x4 würde ausgeführt. Dafür verwenden wir den Vorrangoperator wie folgt:

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

Wenn im obigen Pseudobefehl Command_x1 fehlschlägt, schlägt auch Command_x2 fehl, aber Command_x3 und Command_x4 werden je nach Ausführung trotzdem ausgeführt Exit-Status von Command_x3.

10. Verkettungsoperator (\) – Mehrzeilige Befehlsverkettung

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

nano test\(1\).txt

Das ist alles für den Moment. Ich werde sehr bald einen weiteren interessanten Artikel veröffentlichen. Bis dahin bleiben Sie dran, gesund und verbunden mit Tecmint. Vergessen Sie nicht, Ihr wertvolles Feedback in unserem Kommentarbereich abzugeben.