Wie Sie wahrscheinlich in den obigen Beispielen bemerkt haben, kann die Befehlseingabe in Bash viel Schreibarbeit erfordern. Im Folgenden lernen Sie einige Funktionen von Bash kennen, die Ihre Arbeit erleichtern und Ihnen viel Tippaufwand ersparen können.
Standardmäßig „merkt“ sich Bash die Befehle, die Sie eingeben. Diese Funktion wird History genannt. Sie können durch die Befehle navigieren, die zuvor eingegeben wurden, den gewünschten Befehl zur Wiederholung auswählen und dann erneut ausführen. Drücken Sie dazu wiederholt die Taste ↑, bis der gewünschte Befehl an der Eingabeaufforderung angezeigt wird. Drücken Sie ↓, um sich vorwärts durch die Liste der zuvor eingegebenen Befehle zu bewegen. Für die mühelose wiederholte Ausführung eines bestimmten Kommandos aus der Bash-History, geben Sie einfach den ersten Buchstaben des zu wiederholenden Kommandos ein und drücken Sie Bild ↑.
Sie können nun den ausgewählten Befehl ändern (indem Sie beispielsweise den Namen einer Datei oder einen Pfad ändern), bevor Sie den Befehl durch Drücken von Eingabetaste ausführen. Um die Kommandozeile zu bearbeiten, verschieben Sie den Cursor mit den Pfeiltasten an die gewünschte Position und beginnen die Eingabe.
Sie können auch einen bestimmten Befehl in der History suchen. Drücken Sie Strg+R, um eine inkrementelle Suchfunktion zu starten. Diese zeigt die folgende Eingabeaufforderung:
(reverse-i-search)`':
Geben Sie einfach einen oder mehrere Buchstaben des gesuchten Befehls ein. Jedes eingegebene Zeichen engt die Suche ein. Das entsprechende Suchergebnis wird rechts neben dem Doppelpunkt und Ihre Eingabe links neben dem Doppelpunkt gezeigt. Um ein Suchergebnis zu akzeptieren, drücken Sie Esc. Die Eingabeaufforderung übernimmt ihr normales Aussehen und zeigt den gewählten Befehl an. Sie können den Befehl nun bearbeiten oder direkt ausführen, indem Sie Eingabetaste drücken.
Die Ergänzung eines Datei- oder Verzeichnisnamens nach der Eingabe der ersten Buchstaben ist eine weitere hilfreiche Funktion von Bash. Geben Sie hierzu die ersten Buchstaben einer vorhandenen Datei oder eines vorhandenen Verzeichnisses ein und drücken Sie →| (Tabulator). Wenn der Dateiname bzw. Pfad eindeutig identifiziert werden kann, wird er sofort ergänzt und der Cursor springt zum Ende des Dateinamens. Anschließend können Sie die nächste Option des Befehls eingeben, falls erforderlich. Wenn der Dateiname oder Pfad nicht eindeutig identifiziert werden kann (da mehrere Dateinamen mit denselben Buchstaben beginnen), wird der Dateiname nur so weit ergänzt, bis mehrere Varianten möglich sind. Eine Auflistung dieser Varianten erhalten Sie, indem Sie ein zweites Mal die Taste →| drücken. Anschließend können Sie die nächsten Buchstaben der Datei bzw. des Pfads eingeben und erneut die Ergänzungsfunktion durch Drücken von →| aktivieren. Wenn Sie Dateinamen und Pfaden mithilfe von →| ergänzen, können Sie gleichzeitig überprüfen, ob die Datei bzw. der Pfad, den Sie eingeben möchten, tatsächlich vorhanden ist (und Sie können sicher sein, dass er richtig geschrieben ist).
Sie können ein oder mehrere Zeichen in einem Dateinamen durch einen Platzhalter zur Pfadnamenerweiterung ersetzen. Platzhalter sind Zeichen, die für andere Zeichen stehen. Bash kennt drei verschiedene Arten von Platzhaltern:
Platzhalter |
Funktion |
|
Stimmt genau mit einem zufälligen Zeichen überein |
|
Stimmt mit einer beliebigen Zahl an Zeichen überein |
|
Stimmt mit einem Zeichen aus der Gruppe überein, die in den eckigen Klammern angegeben wurde und hier durch die Zeichenfolge |
Die folgenden Beispiele illustrieren, wie Sie diese praktischen Funktionen von Bash nutzen können.
Wie bereits im Beispiel Abschnitt 8.3.1, „Beispiele für das Arbeiten mit Dateien und Verzeichnissen“ sollte Ihr Shell-Puffer mit Befehlen gefüllt sein, die Sie mithilfe der History-Funktion abrufen können.
Drücken Sie wiederholt ↑, bis cd ~ angezeigt wird.
Drücken Sie Eingabetaste, um den Befehl auszuführen und in Ihr Home-Verzeichnis zu wechseln.
Standardmäßig enthält Ihr Home-Verzeichnis zwei Unterverzeichnisse, die mit demselben Buchstaben beginnen: Dokumente
und Desktop
.
Geben Sie cd D ein und drücken Sie →|.
Nichts geschieht, da Bash nicht feststellen kann, in welches der Unterverzeichnisse Sie wechseln möchten.
Drücken Sie erneut →|, um die Liste möglicher Optionen zu sehen:
tux@knox:~> cd D Desktop/ Documents/ tux@knox:~> cd D
Die Eingabeaufforderung zeigt immer noch Ihre ursprüngliche Eingabe. Geben Sie den nächsten Buchstaben des Unterverzeichnisses ein, in das Sie wechseln möchten, und drücken Sie erneut →|.
Bash vervollständigt nun den Pfad.
Sie können nun den Befehl mit Eingabetaste ausführen.
Angenommen, Ihr Home-Verzeichnis enthält eine Reihe von Dateien mit verschiedenen Dateinamenserweiterungen. Es enthält auch mehrere Versionen einer Datei, die Sie unter verschiedenen Dateinamen gespeichert haben ( myfile1.txt
, myfile2.txt
usw.). Sie möchten bestimmte Dateien gemäß ihren Eigenschaften suchen.
Erstellen Sie zunächst einige Testdateien in Ihrem Home-Verzeichnis:
Verwenden Sie den Befehl touch, den Sie bereits kennen, um mehrere (leere) Dateien mit verschiedenen Dateinamenserweiterungen zu erstellen, z. B. .pdf
, .xml
und .jpg
.
Sie können diesen Vorgang wiederholt (denken Sie an die Bash-History-Funktion) oder nur mit einem einzigen touch-Kommando durchführen: Fügen Sie einfach mehrere Dateinamen hinzu, die jeweils durch einen Leerschritt voneinander getrennt sind.
Erstellen Sie mindestens zwei Dateien mit derselben Dateinamenserweiterung, z. B. .html
.
Geben Sie zum Erstellen mehrerer „Versionen “ einer Datei das Folgende ein:
touch myfile{1..5}.txt
Dieser Befehl erstellt fünf fortlaufend nummerierte Dateien:
myfile1.txt,…,myfile5.txt
Zeigen Sie den Inhalt Ihres Home-Verzeichnisses an. Er sollte etwa wie folgt aussehen:
-rw-r--r-- 1 tux users 0 2006-07-14 13:34 foo.xml -rw-r--r-- 1 tux users 0 2006-07-14 13:47 home.html -rw-r--r-- 1 tux users 0 2006-07-14 13:47 index.html -rw-r--r-- 1 tux users 0 2006-07-14 13:47 toc.html -rw-r--r-- 1 tux users 0 2006-07-14 13:34 manual.pdf -rw-r--r-- 1 tux users 0 2006-07-14 13:49 myfile1.txt -rw-r--r-- 1 tux users 0 2006-07-14 13:49 myfile2.txt -rw-r--r-- 1 tux users 0 2006-07-14 13:49 myfile3.txt -rw-r--r-- 1 tux users 0 2006-07-14 13:49 myfile4.txt -rw-r--r-- 1 tux users 0 2006-07-14 13:49 myfile5.txt -rw-r--r-- 1 tux users 0 2006-07-14 13:32 tux.png
Wählen Sie mithilfe von Platzhaltern bestimmte Untergruppen von Dateien nach verschiedenen Kriterien aus:
Um alle Dateien mit der Erweiterung .html
aufzulisten, geben Sie Folgendes ein:
ls -l *.html
Um alle „Versionen“ von myfile.txt
aufzulisten, geben Sie Folgendes ein
ls -l myfile?.txt
Beachten Sie, dass Sie hier nur das Jokerzeichen ?
verwenden können, da die Nummerierung der Dateien einstellig ist. Wenn Sie auch eine Datei mit dem Namen myfile10.txt
hätten, müssten Sie den Platzhalter *
verwenden, um alle Versionen von myfile.txt
zu sehen (oder ein weiteres Fragezeichen hinzufügen, damit Ihre Zeichenfolge wie myfile??.txt aussieht).
Um beispielsweise die Versionen 1 bis 3 und Version 5 von myfile.txt
zu entfernen, geben Sie Folgendes ein:
rm myfile[1-3,5].txt
Prüfen Sie das Ergebnis mit
ls -l
Von allen myfile.txt
-Versionen sollte nur myfile4.txt
übrig sein.
Sie können natürlich auch mehrere Platzhalter in einem Befehl kombinieren. Im obigen Beispiel würde rm myfile[1-3,5].* dasselbe Ergebnis liefern wie rm myfile[1-3,5].txt, da nur Dateien mit der Erweiterung .txt
vorhanden sind.
Verwenden von Platzhaltern in Befehlen | |
---|---|
Platzhalter in einem rm-Befehl können ausgesprochen nützlich sein, bergen jedoch auch ein gewisses Risiko, da unter Umständen mehr Dateien aus dem Verzeichnis gelöscht werden, als beabsichtigt war. Sie sehen, welche Dateien durch rm betroffen sind, indem Sie Ihre Platzhalterzeichenfolge zuerst mit ls anstelle von rm ausführen. |