Die leistungsstärkste Funktion der Linux-Bash-Shell ist ihre Fähigkeit, Dateien zu umgehen und deren Ein- und Ausgabe effizient umzuleiten. Linux verwendet Sonderzeichen oder Symbole, die als Metazeichen bekannt sind und einem Shell-Befehl eine besondere Bedeutung in Bezug auf die Dateisuche und die Befehlsverbindung verleihen.
Die Metazeichen sind hilfreich beim Auflisten, Entfernen und Kopieren von Dateien unter Linux. Die Funktion jedes Metazeichens unterscheidet sich jedoch je nach dem Befehl, mit dem Sie es verwenden.
Dieser Artikel bietet eine ausführliche Anleitung zu verschiedenen Arten von Metazeichen in Linux. Schließlich erklären wir, wie diese Sonderzeichen beim Verbinden und Erweitern von Befehlen helfen.
Mit der Linux-Shell können Sie Tastenanschläge beim Eingeben von Befehlen speichern, indem Sie Metazeichen zwischen Dateien oder Verzeichnisnamen verwenden. Diese Zeichen helfen Ihnen, auf eine Gruppe von Dateien oder ein Verzeichnis zu verweisen, um sie aufzulisten, zu verschieben oder andere Aktivitäten auszuführen.
Dies sind einige dateiübereinstimmende Metazeichen, die die Linux-Shell interpretieren kann:
- * (Sternchen): Entspricht einem oder mehreren Vorkommen eines Zeichens
- ? (Fragezeichen): Entspricht einem einzelnen Zeichen oder einem Mustervorkommen
- [ ] (Eckige Klammern): Entspricht allen durch Bindestrich getrennten Zahlen, Symbolen oder Alphabeten, die in eckigen Klammern angegeben sind
Ein idealer Weg, um Metazeichen in Linux zu üben, besteht darin, einen neuen leeren Ordner im zu erstellen /tmp Verzeichnis.
sudo mkdir /tmp/meta
Navigieren Sie nun in die /tmp/meta Verzeichnis mit der cd-Befehl und Erstellen Sie neue leere Dateien mit Touch, folgendermaßen:
touch apple.txt Apfelwein.sh Essig.php cat.txt Zitrone.txt Saft.sh Wels.sh
Verwenden Sie die folgenden Befehle, um die "*" Metazeichen und zeigen Sie die Ausgaben an:
ls c*
Ausgabe:
catfish.sh cat.txt cider.sh
ls c*h
Ausgabe:
Wels.sh Apfelwein.sh
l *r*
Ausgabe:
Apfelwein.sh Essig.php
sudo rm *p*
Der oben genannte Befehl löscht alle Dateien, die den Buchstaben "p" in ihrem Namen enthalten. Sie können die Änderung mit dem Befehl ls wie folgt überprüfen:
ls
Ausgabe:
catfish.sh cat.txt cider.sh Saft.sh Zitrone.txt
Hier sind einige Beispiele für die "?" Metazeichen für den Mustervergleich:
Ist ein?*
Ausgabe:
apple.txt
ls c? T*
Ausgabe:
catfish.sh cat.txt
Der letzte Befehl stimmt mit jeder Datei überein, die mit beginnt C und hat T als dritter Buchstabe (cat.txt, catfish.sh usw.).
Verwenden Sie jetzt die [ein V]* Option mit dem ls-Befehl, um alle Dateien aufzulisten, die mit entweder beginnen ein oder v, folgendermaßen:
ls [av]*
Ausgabe:
apple.txt essig.sh
Sie können den obigen Befehl ändern, um nur Dateien aufzulisten, die mit dem Buchstaben enden T:
ls [ac]*[t]
Ausgabe:
apple.txt catfish.txt cat.txt
Ebenso können Sie die durch Bindestriche getrennten Buchstaben verwenden, um Bereiche zu definieren und Dateien wie folgt aufzulisten:
ls [a-j]*
Ausgabe:
apple.txt catfish.sh cat.txt cider.sh Saft.sh
Zum besseren Verständnis der Umleitung in Bash verfügt jeder Prozess in Linux über Dateideskriptoren, die als Standardeingabe (stdin/0), Standardausgabe (stdout/1) und Standardfehler (stderr/2). Sie bestimmen die Herkunft der Befehlseingabe und entscheiden, wohin die Ausgabe und Fehlermeldungen gesendet werden.
Die Umleitungsmetazeichen helfen Ihnen, diese Aktionen zu ändern, indem Sie den Inhalts-E/A-Fluss umleiten. Im Allgemeinen liest die Linux-Shell die Befehlseingabe von der Tastatur und schreibt die Ausgabe auf den Bildschirm. Die Eingabeumleitung ermöglicht es dem Befehl, den Inhalt aus einer Datei anstelle einer Tastatur zu lesen, während die Ausgabeumleitung die Befehlsausgabe in einer Datei speichert.
Mit anderen Worten, die Metazeichen für die Linux-Dateiumleitung ermöglichen es Ihnen, den Inhalt an (>) und von (<) die Dateien. Die drei primären Weiterleitungs-Metazeichen sind:
- <: Leitet den Dateiinhalt an den Befehl weiter. Zum Beispiel die Befehlsausgabe für weniger .bashrc ist das gleiche wie weniger < .bashrc.
- >: Leitet die Befehlsausgabe in die Datei um. Der Befehl ls /etc > listen.txt speichert die Ausgabe in der Datei listen.txt.
- >>: Hängt die Befehlsausgabe an den Dateiinhalt an.
wc steht für Wortanzahl und Sie können es verwenden, um den Unterschied zwischen der Datei vor und nach dem Anhängen an die Ausgabe anzuzeigen.
Verwandt: Grundlegendes zur Standard-E/A unter Linux
Das Metazeichen zur Klammererweiterung ermöglicht es Ihnen, die Zeichen über Verzeichnisse, Dateinamen oder andere Befehlszeilenargumente hinweg zu erweitern. Sie können beispielsweise ein neues Verzeichnis erstellen befestigen innerhalb der /tmp Ordner und erstellen Sie einen Satz von Dateien mit dem Touch-Befehl wie folgt:
sudo mkdir /tmp/brace; cd /tmp/brace
Berührungstest{1,2,3,4,5}
Jetzt können Sie mit dem Befehl ls überprüfen, ob Touch die Dateien erstellt hat oder nicht.
ls
Ausgabe:
Test1 Test2 Test3 Test4 Test5
Sie können mehrere Listen angeben, um Dateinamen basierend auf den Kombinationen der Elemente in der Liste zu generieren. Beispielsweise:
anfassen {Apfel, Apfelwein, Essig}.{Frucht, flüssig, sauer}
berühren {a, b, c}.{1,2,3}
Der letzte Befehl erstellt die folgenden Dateien im aktuellen Verzeichnis:
Der erste Befehl verwendet zwei Sätze von geschweiften Klammern, um Dateinamen in jedem Satz miteinander zu verknüpfen. Sie können den letzten Befehl auch schreiben als berühren Sie {a..c}.{1..3} um den Bereich zwischen a und c und 1 und 3 anzugeben.
Neben dem Erstellen von Dateien können Sie mit der Klammererweiterung auch Dateien entfernen oder an andere Speicherorte kopieren.
Hier ist eine Tabelle einiger bekannter Metazeichen für die Befehlsverbindung und -erweiterung mit ihren Namen, Beschreibungen und Beispielen zum Üben:
Name | Beschreibung | Beispiel |
---|---|---|
Rohr (|) | Verbindet die Befehlsausgabe als Eingabe mit dem anderen Befehl. | cat /etc/passwd | grep root |
Semikolon (;) | Ermöglicht die Ausführung von sequentiellen Befehlen nacheinander. | cd/etc; ls-la; chmod +x /tmp/script.php |
Et-Zeichen (&) | Führt die Prozesse oder Befehle im Hintergrund aus. | find / -perm -u=s -typ f & |
Dollar ($) | Erweitert den arithmetischen Ausdruck und übergibt ihn an die Shell | echo "Gesamtdateien in diesem Verzeichnis sind: $(ls | wc -l)" |
Null-Umleitung (2>) | Leitet Standardfehlermeldungen an die Datei /dev/null | your_command 2>/dev/null |
Zirkumflex (^) | Entspricht jedem Muster, das mit dem Ausdruck beginnt, gefolgt von ^ | cd /etc/ssh; ls | grep ^s |
Linux-Metazeichen werden auch als Wildcards bezeichnet, die den Befehlen eine besondere Bedeutung verleihen und ihr Verhalten steuern. Metazeichen optimieren die Arbeitsleistung eines Benutzers in einer produktiven Umgebung, während sie Dateien/Verzeichnisse umgehen und die Linux-Shell-Befehle verbinden/erweitern.
Außerdem sind Metazeichen auch die Bausteine regulärer Ausdrücke. Auch das Erlernen von Metazeichen und ihrer Verwendung ist eine wichtige Fähigkeit, die Sie haben sollten, wenn Sie ein Profi-Linux-Benutzer werden möchten.
Möchten Sie Ihren Python-Workflow mit ein paar einfachen Befehlen beschleunigen? Reguläre Ausdrücke sind dein Freund.
Weiter lesen
- Linux
- Linux-Grundstufe
- Linux-Bash-Shell
Rumaisa ist freiberufliche Autorin bei MUO. Sie hat viele Hüte getragen, vom Mathematiker bis zum Enthusiasten für Informationssicherheit, und arbeitet jetzt als SOC-Analystin. Zu ihren Interessen gehört das Lesen und Schreiben über neue Technologien, Linux-Distributionen und alles rund um die Informationssicherheit.
Abonniere unseren Newsletter
Abonnieren Sie unseren Newsletter für technische Tipps, Rezensionen, kostenlose E-Books und exklusive Angebote!
Klicken Sie hier, um zu abonnieren