Das Einsteigerhandbuch zu Shell Scripting 3: Weitere grundlegende Befehle und Ketten

Inhaltsverzeichnis:

Video: Das Einsteigerhandbuch zu Shell Scripting 3: Weitere grundlegende Befehle und Ketten

Video: Das Einsteigerhandbuch zu Shell Scripting 3: Weitere grundlegende Befehle und Ketten
Video: Windows 8 löschen + Windows 10 installieren mit Win8 Key aktivieren | Platte formatieren 2024, März
Das Einsteigerhandbuch zu Shell Scripting 3: Weitere grundlegende Befehle und Ketten
Das Einsteigerhandbuch zu Shell Scripting 3: Weitere grundlegende Befehle und Ketten
Anonim
Sie haben gelernt, wie Sie Skripts erstellen, Argumente verwenden und for-Schleifen erstellen. Schauen wir uns nun einige grundlegende Befehle an, die Bearbeitung von Textdateien und das Umleiten von Eingabe und Ausgabe in Dateien und andere Befehle.
Sie haben gelernt, wie Sie Skripts erstellen, Argumente verwenden und for-Schleifen erstellen. Schauen wir uns nun einige grundlegende Befehle an, die Bearbeitung von Textdateien und das Umleiten von Eingabe und Ausgabe in Dateien und andere Befehle.

Einige grundlegende nützliche Befehle

Wir haben Ihnen bereits eine grundlegende Aufschlüsselung der Shell-Skripte und eine beispielhafte Gliederung von for-Schleifen gegeben. Sie sollten sich jedoch diese Artikel ansehen, wenn Sie unseren Shell-Skript-Leitfaden bisher verpasst haben.

Die Befehlszeile ist aus vielen Gründen wunderbar, und die Weiterleitung ist eine der prominentesten. Wenn Sie die Ausgabe jedes Befehls notieren und reproduzieren mussten, um weitere Maßnahmen zu ergreifen oder für etwas anderes zu verwenden, wären wir längst alle verrückt geworden. Bei der Umleitung können wir diese Ausgabe verwenden und speichern oder sofort als Eingabe für einen anderen Befehl verwenden. Wir können Dateien auch als Eingaben für andere Befehle verwenden.

Bevor wir fortfahren, behandeln wir einige grundlegende Befehle, die an vielen verschiedenen Orten von Nutzen sein können.

Echo - Dieser Befehl druckt (zeigt) das gesamte Argument in der Befehlszeile als Ausgabe an

echo argument with spaces

Wie Sie sehen können, müssen Sonderzeichen "Escape-Zeichen" sein, damit sie normal behandelt werden. Dies geschieht durch einen umgekehrten Schrägstrich () vor dem Zeichen. Es ist besser, Anführungszeichen zu verwenden. Der Befehl echo funktioniert auch mit Variablen.
Wie Sie sehen können, müssen Sonderzeichen "Escape-Zeichen" sein, damit sie normal behandelt werden. Dies geschieht durch einen umgekehrten Schrägstrich () vor dem Zeichen. Es ist besser, Anführungszeichen zu verwenden. Der Befehl echo funktioniert auch mit Variablen.
Wie Sie sehen, verhalten sich einfache und doppelte Anführungszeichen unterschiedlich. Weitere Informationen finden Sie unter Was ist der Unterschied zwischen einfachen und doppelten Anführungszeichen in der Bash-Shell?
Wie Sie sehen, verhalten sich einfache und doppelte Anführungszeichen unterschiedlich. Weitere Informationen finden Sie unter Was ist der Unterschied zwischen einfachen und doppelten Anführungszeichen in der Bash-Shell?

Katze - Dieser Befehl zeigt den Inhalt von Textdateien als Ausgabe an.

cat file_to_be_read

Angenommen, wir erstellen diese Textdatei in Nano:

Wenn wir den Befehl cat für die Datei verwenden, können wir die Ausgabe sehen.
Wenn wir den Befehl cat für die Datei verwenden, können wir die Ausgabe sehen.
grep - Dies ist einer der leistungsfähigsten und nützlichsten Befehle, die Ihnen in Linux zur Verfügung stehen. Es steht für Global / Regular Expression Print. Es durchsucht eine Datei und druckt jede Zeile, die einem bestimmten Muster entspricht. Da dieses Muster auf „regulären Ausdrücken“basiert, kann eine kurze Zeile eine Vielzahl von Mustern ergeben, die abgeglichen werden sollen. Wenn nicht, können Sie jedoch eine Suche eingeben.
grep - Dies ist einer der leistungsfähigsten und nützlichsten Befehle, die Ihnen in Linux zur Verfügung stehen. Es steht für Global / Regular Expression Print. Es durchsucht eine Datei und druckt jede Zeile, die einem bestimmten Muster entspricht. Da dieses Muster auf „regulären Ausdrücken“basiert, kann eine kurze Zeile eine Vielzahl von Mustern ergeben, die abgeglichen werden sollen. Wenn nicht, können Sie jedoch eine Suche eingeben.

grep pattern file

Ich versichere Ihnen, dass grep mehr kann, aber lassen Sie uns jetzt auf die einfacheren Sachen achten.
Ich versichere Ihnen, dass grep mehr kann, aber lassen Sie uns jetzt auf die einfacheren Sachen achten.

Ausgänge umleiten

Um die Ausgabe eines Befehls in eine Datei umzuleiten, verwenden wir ein Sonderzeichen, das Größer-als-Symbol (>).

Lassen Sie uns unsere Liste ändern, oder? Geben Sie den folgenden Befehl ein:

echo pepperoni > list

Sie können sehen, dass das Echo die Zeile nicht mehr anzeigt, und wenn wir uns den Inhalt der "list" -Datei ansehen, sehen wir, was wir dort drückten.
Sie können sehen, dass das Echo die Zeile nicht mehr anzeigt, und wenn wir uns den Inhalt der "list" -Datei ansehen, sehen wir, was wir dort drückten.

Beachten Sie auch, dass der vorherige Inhalt von "list" entfernt wurde. Versuchen Sie es erneut:

Dies kann nützlich sein, wenn Sie eine Datei wiederverwenden möchten. Oft möchten wir jedoch nur eine vorhandene Datei hinzufügen. Dafür verwenden wir zwei aufeinanderfolgende Größer-als-Symbole:
Dies kann nützlich sein, wenn Sie eine Datei wiederverwenden möchten. Oft möchten wir jedoch nur eine vorhandene Datei hinzufügen. Dafür verwenden wir zwei aufeinanderfolgende Größer-als-Symbole:

echo yellow peppers >> list

Einfach! Verwenden Sie diesen Befehl, um eine größere Liste zu erstellen.
Einfach! Verwenden Sie diesen Befehl, um eine größere Liste zu erstellen.
Da gehen wir. Ich denke, man kann sehen, warum so viele Geeks die Befehlszeile verwenden, um Aufgabenlisten und ähnliches zu erstellen, aber es wird noch besser.
Da gehen wir. Ich denke, man kann sehen, warum so viele Geeks die Befehlszeile verwenden, um Aufgabenlisten und ähnliches zu erstellen, aber es wird noch besser.

Nehmen wir die Ausgabe eines Befehls und legen Sie ihn in einer Datei ab:

ls –al / > ~/rootlist

Das Erstellen von Listen von Dateien, das Bearbeiten von Dateien und das Ausführen von Befehlen für die gewünschten Dateien waren noch nie einfacher. Während wir diese grundlegenden Funktionen in der Befehlszeile ausführen, funktionieren diese auch in Skripts.
Das Erstellen von Listen von Dateien, das Bearbeiten von Dateien und das Ausführen von Befehlen für die gewünschten Dateien waren noch nie einfacher. Während wir diese grundlegenden Funktionen in der Befehlszeile ausführen, funktionieren diese auch in Skripts.

Piping oder Verkettung

Piping wird so benannt, weil es die Pipe verwendet (|; wird auf den meisten Tastaturen mit der -Taste gemeinsam genutzt). Im Wesentlichen nimmt es die Ausgabe eines Befehls und leitet ihn direkt an einen anderen weiter. Sie können lange Befehlsketten erstellen, um auf diese Weise eine ganz bestimmte gewünschte Ausgabe zu erhalten. Dies ist für Befehle wie grep sehr praktisch.

Es verhält sich viel wie ">", es sei denn, es kann mehrmals verkettet werden, und seine Wirkung ist allgemeiner, da es nicht erforderlich ist, eine Textdatei zu durchlaufen.
Es verhält sich viel wie ">", es sei denn, es kann mehrmals verkettet werden, und seine Wirkung ist allgemeiner, da es nicht erforderlich ist, eine Textdatei zu durchlaufen.

Wie Sie sehen, ist bei grep die Groß- und Kleinschreibung zu beachten. Sie können das Flag "-i" verwenden, um die Groß- / Kleinschreibung zu ignorieren.

Image
Image

Eingänge umleiten

Sie können auch Eingaben aus Dateien für Befehle übernehmen, indem Sie das Kleiner-als-Symbol (<) verwenden.

cat < list

"Das unterscheidet sich nicht von einem Argument!", Könnte man sagen. Nun, Sie würden in diesem Fall richtig sein. Wo die Umleitung der Eingabe wirklich nützlich ist, ist das Verketten von Befehlen.
"Das unterscheidet sich nicht von einem Argument!", Könnte man sagen. Nun, Sie würden in diesem Fall richtig sein. Wo die Umleitung der Eingabe wirklich nützlich ist, ist das Verketten von Befehlen.

Angenommen, wir möchten jedes Wort, das "pep" enthält, aus unserer aktuellen "list" -Datei in eine neue Datei mit dem Namen "revisions" filtern.

grep pep < list > revisions

Wiederholen Sie diesen Befehl und fügen Sie eine Sortierung hinzu.
Wiederholen Sie diesen Befehl und fügen Sie eine Sortierung hinzu.

grep pep < list | sort > revisions

Dabei wird "pep" als Suchbegriff aus der Eingabedatei "list" verwendet, in alphabetischer Reihenfolge sortiert (alle Großbuchstaben gefolgt von allen Kleinbuchstaben) und anschließend in die "Revisionsdatei" ausgegeben.
Dabei wird "pep" als Suchbegriff aus der Eingabedatei "list" verwendet, in alphabetischer Reihenfolge sortiert (alle Großbuchstaben gefolgt von allen Kleinbuchstaben) und anschließend in die "Revisionsdatei" ausgegeben.

Um den Sortierbefehl zu veranschaulichen, betrachten wir folgendes Beispiel:

Wie Sie sehen, können Sie durch Hinzufügen des Flag "-f" zum Sortierbefehl die Groß- / Kleinschreibung ignorieren. Dadurch können wir Zeilen in Textdateien problemlos alphabetisieren und die Groß- / Kleinschreibung ignorieren, wenn es keine Rolle spielt.
Wie Sie sehen, können Sie durch Hinzufügen des Flag "-f" zum Sortierbefehl die Groß- / Kleinschreibung ignorieren. Dadurch können wir Zeilen in Textdateien problemlos alphabetisieren und die Groß- / Kleinschreibung ignorieren, wenn es keine Rolle spielt.

Ein einfaches Skript

Erstellen wir ein Skript mit folgendem Formular:

script searchterm listfile

Der Begriff wird verwendet und mit grep eine Listendatei durchsucht, die Ergebnisse sortiert und dann in eine andere Datei ausgegeben.

Hier ist das Verzeichnis, in dem wir das Skript testen:
Hier ist das Verzeichnis, in dem wir das Skript testen:
Und wir können eine Liste von dem erstellen, was sich hier befindet, und dann das Skript ausführen.
Und wir können eine Liste von dem erstellen, was sich hier befindet, und dann das Skript ausführen.
Da gehts! Je mehr Sie die Regeln regulärer Ausdrücke lernen, desto genauer können Sie einen Suchbefehl zusammenstellen. Und alles, was in Anführungszeichen gilt, kann für Ihr erstes Argument ersetzt werden!
Da gehts! Je mehr Sie die Regeln regulärer Ausdrücke lernen, desto genauer können Sie einen Suchbefehl zusammenstellen. Und alles, was in Anführungszeichen gilt, kann für Ihr erstes Argument ersetzt werden!

Was das Sortieren angeht, können Sie mehr als nur alphabetisch sortieren. In der Manpage finden Sie einige der folgenden Befehle:

  • tsort - eine erweiterte topologische Sortierfunktion
  • Mit tr können Sie bestimmte Zeichen anderen Zeichen zuordnen und zwischen ihnen transkribieren.
  • uniq - entfernt alle nicht eindeutigen (gelesen: Duplikat)
  • awk - eine wirklich fortgeschrittene Textverarbeitungssprache / -funktion, mit der Felder in Dateinamen voneinander getrennt werden können
  • Ausschneiden, Einfügen / Verbinden - Befehle, die zum Isolieren von Feldern aus Textdateien und zum Hinzufügen neuer Daten in Spalten nützlich sind
  • look - sucht wie grep, verwendet jedoch eine Wörterbuchdatei (die vom Benutzer angegeben werden kann) für die Suche
  • wc - Liefert die Anzahl der Wörter, die Anzahl der Zeilen, die Anzahl der Zeichen und mehr

Wir haben uns heute einige weitere Grundlagen angesehen, die auf der Kommandozeile ebenso nützlich sein können wie in Skripten. Textbasierte Daten bilden oft den Kern der Dinge, die wir täglich verwenden. Daher ist es wichtig, damit zu arbeiten, sie zu durchsuchen und zu manipulieren.

Was sind deine Lieblingsskripte? Haben Sie spezielle Skripts für textbasierte Dateien? Teilen Sie mit, was Sie in den Kommentaren wissen!

Empfohlen: