Steigern Sie die Effizienz durch die gleichzeitige Ausführung mehrerer Befehle in Linux
Möchten Sie Ihre Produktivität steigern? Erwägen Sie die gleichzeitige Ausführung mehrerer Befehle in Ihrem Linux-Terminal. Mit diesem Ansatz können Sie einfache Sequenzbefehle ausführen, Aufgaben im Hintergrund ausführen und bedingte Befehle gemeinsam verwalten.
In diesem Artikel befassen wir uns mit verschiedenen Techniken zur sequenziellen und gleichzeitigen Ausführung von Befehlen auf einem Linux-Terminal.
Die Vorteile der gleichzeitigen Ausführung mehrerer Befehle
Unabhängig davon, ob Sie routinemäßige Wartungsaufgaben ausführen, große Datensätze verarbeiten oder Teile Ihres Arbeitsablaufs automatisieren, können Sie durch die Kombination von Befehlen Ihre Abläufe optimieren und die Gesamteffizienz steigern.
Wenn Sie beispielsweise mehrere Verzeichnisse sichern, können Sie die Befehle verknüpfen, anstatt jedes Verzeichnis einzeln auszuführen. Dies spart Ihnen Zeit und Mühe.
Ich verkette häufig Befehle, wenn ich Linux-Pakete installiere, die mehrere Module erfordern. Dadurch stelle ich sicher, dass das Paket und seine Abhängigkeiten in einer einzigen Aktion installiert werden, wodurch wiederholtes Eintippen vermieden wird.
Sequentielle Befehlsausführung
Diese Methode verwende ich am liebsten, wenn ich das Terminal verwende. Wir können Befehle verknüpfen, sodass sie nacheinander ausgeführt werden, unabhängig davon, ob der vorherige Befehl erfolgreich ausgeführt wurde.
Um diese Befehle der Reihe nach auszuführen, verwenden Sie einfach ein Semikolon ;
als Trennzeichen. Wenn Sie die Eingabetaste drücken, verarbeitet das Terminal den ersten Befehl, wartet, bis er abgeschlossen ist, und fährt dann mit dem nächsten fort.
Wenn Sie beispielsweise Ihr System aktualisieren und gleichzeitig ungenutzte Pakete löschen möchten, können Sie Folgendes ausführen:
Durch die Verkettung dieser Befehle erzwingen Sie eine sequentielle Ausführung und stellen sicher, dass jede Aufgabe erst abgeschlossen wird, wenn die vorherige beendet ist. Dadurch bleibt die Effizienz erhalten.
Bedingungsbasierte Befehlsausführung
Wenn Sie den zweiten Befehl nur ausführen möchten, wenn der erste Befehl erfolgreich ist (oder fehlschlägt), können Sie die bedingte Ausführung durch die Verwendung der Operatoren &&
(UND) und ||
(ODER) nutzen.
Ausführen, wenn der erste Befehl erfolgreich ist
Um sicherzustellen, dass ein Befehl nur ausgeführt wird, wenn der vorherige erfolgreich war, verwenden Sie den &&
Operator zwischen den Befehlen.
Wenn Sie beispielsweise ein neues Verzeichnis erstellen und nur dann dorthin wechseln möchten, wenn die Verzeichniserstellung erfolgreich war, verwenden Sie:
Wenn der erste Befehl fehlschlägt, wird der nachfolgende Befehl nicht ausgeführt.
Ausführen, wenn der erste Befehl fehlschlägt
Ich finde diese Vorgehensweise oft bei Dateioperationen hilfreich, beispielsweise beim Kopieren einer Datei an einen Sicherungsort. Wenn der Kopiervorgang fehlschlägt, möchte ich informiert werden, ohne meine laufenden Aufgaben zu unterbrechen. Sie können es folgendermaßen strukturieren:
cp file_name /backup || echo "Failed!" >> error_log.txt
In diesem Fall cp
versucht der Befehl, die angegebene Datei in das Sicherungsverzeichnis zu kopieren. Wenn dies fehlschlägt, ||
führt der Operator den nächsten Befehl aus, der die Fehlermeldung an ein Fehlerprotokoll anhängt. Auf diese Weise wird Ihr Arbeitsablauf ohne Unterbrechung fortgesetzt und das Problem wird gleichzeitig für eine spätere Überprüfung dokumentiert.
Ausführen von Befehlen im Hintergrund
Manchmal möchten Sie vielleicht nicht pausieren, bis eine Aufgabe abgeschlossen ist. Wenn ein Vorgang viel Zeit in Anspruch nimmt, können Sie Ihren Arbeitsfluss aufrechterhalten, indem Sie &
an das Ende Ihres Befehls ein Et-Zeichen anhängen.
Wenn Sie beispielsweise eine große Datei von einer bestimmten URL herunterladen und gleichzeitig an anderen Aufgaben arbeiten möchten, können Sie Folgendes verwenden:
sudo wget https://example.com/large-file.zip &
Dies ermöglicht Ihnen, am Terminal weiterzuarbeiten, während der Download im Hintergrund ausgeführt wird.
Verketten von Befehlen mit Hintergrundausführung
Was ist, wenn Sie zwei Befehle verbinden und gleichzeitig sicherstellen möchten, dass der zweite Befehl im Hintergrund ausgeführt wird, nachdem der erste abgeschlossen ist? In diesem Fall können Sie sowohl den Pipe- |
Operator als auch das Et-Zeichen verwenden &
.
Die Pipe |
leitet die Ausgabe des ersten Befehls als Eingabe für den zweiten weiter, während das Et-Zeichen &
die Ausführung des zweiten Befehls im Hintergrund ermöglicht.
Um beispielsweise eine große Datei zu lesen, Schlüsselwörter zu extrahieren und die Ergebnisse in einer neuen Datei zu speichern, können Sie den Umleitungsoperator verwenden >
:
cat samplefile.txt | grep "Project" > output.txt &
Bei dieser Konfiguration werden sowohl die Such- als auch die Speichervorgänge im Hintergrund ausgeführt. Auf diese Weise können Sie andere Befehle ohne Unterbrechung ausführen, während die Datei verarbeitet wird.
Gleichzeitiges Ausführen mehrerer Befehle mit Xargs
Wenn Sie Ihre Multitasking-Fähigkeiten verbessern möchten, sollten Sie die parallele xargs
Ausführung von Befehlen mithilfe des Befehls in Betracht ziehen. Dies ermöglicht die gleichzeitige Ausführung mehrerer Befehle, anstatt sie nacheinander abzuarbeiten.
Der xargs
Befehl teilt eine Liste von Argumenten effizient in kleinere Stapel auf und führt für jeden Stapel gleichzeitig einen bestimmten Befehl aus.
Wenn Sie beispielsweise eine Liste von URLs in einer Datei gespeichert haben und diese alle auf einmal herunterladen möchten, können Sie Folgendes ausführen, anstatt dies einzeln zu tun:
cat urls_file.txt | xargs -n 1 -P 4 wget
In diesem Fall -n 1
weist es an , xargs
ein Argument pro Befehl zu verarbeiten und -P 4
vier Befehle gleichzeitig auszuführen. Dies beschleunigt den Downloadvorgang im Vergleich zu einem sequentiellen Ansatz erheblich.
Abschluss
Zusammenfassend können Sie Befehle mit Semikolons kombinieren ;
, bedingte Ausführung mit &&
und implementieren ||
, Hintergrundprozesse mit ausführen &
und Ihre Multitasking-Fähigkeiten durch parallele Ausführung mit verbessern xargs
.
Bildnachweis: Unsplash . Alle Änderungen und Screenshots von Haroon Javed.
Schreibe einen Kommentar