So passen Sie die Bash-Shell mit shopt an

Wenn Sie das Verhalten Ihrer Bash-Shell mit shopt optimieren, können Sie über 50 Einstellungen steuern. Wir zeigen Ihnen, wie Sie Ihr Linux-System ganz nach Ihren Wünschen gestalten.

Der Shopt Built-in

Der eingebaute Shopt ist Bestandteil aller Versionen der Bash-Shell, es muss also nichts installiert werden. Die Anzahl der in shopt verfügbaren Optionen hat sich im Laufe der Jahre stetig erhöht. Je älter also Ihre Bash-Version ist, desto kürzer wird die Liste der Shopt-Optionen.

Wenn etwas auf Ihrem Computer nicht zu funktionieren scheint, überprüfen Sie den Manpage-Eintrag für Bash und vergewissern Sie sich, dass diese Option in Ihrer Version von shopt verfügbar ist.

Wir decken alle Shopt-Optionen unten ab. Wir beschreiben auch, wie man es benutzt, und teilen einige Beispiele. Von dort aus können Sie die Bash-Manpage oder GNU Bash-Referenzhandbuch um zu sehen, ob eine dieser Optionen nützlich oder ansprechend klingt.

Einige Shopt-Optionen sind standardmäßig aktiviert und gehören zum Standardverhalten von Bash. Sie können eine Shopt-Option als kurzfristigen Wechsel zu Bash aktivieren. Es wird dann auf das Standardverhalten zurückgesetzt, wenn Sie die Shell schließen.

Wenn Sie jedoch möchten, dass ein geändertes Verhalten immer verfügbar ist, wenn Sie eine Bash-Shell starten, können Sie die Änderungen dauerhaft machen.

Die Shopt-Optionen

Es gibt 53 Shopt-Optionen. Wenn Sie den Befehl shopt ohne Optionen verwenden, werden diese aufgelistet. Wenn wir die Ausgabe durch den Befehl wc leiten, wird dies der Fall sein Zähle die Zeilen, Wörter und Zeichen für uns. Da sich jede Shopt-Option in einer eigenen Zeile befindet, entspricht die Anzahl der Zeilen der Anzahl der Optionen.

Wir geben Folgendes ein:

shopt | wc

Um alle Optionen zu sehen, können wir die Ausgabe durch den Spaltenbefehl leiten um die Optionsnamen in Spalten anzuzeigen, oder wir könnten es in weniger leiten.

Wir geben Folgendes ein:

shopt | column

Shopt im Linux-Handbuch finden

Der Abschnitt über shopt und seine Optionen befindet sich im Bash-Abschnitt des Linux-Handbuchs. Der Bash-Bereich ist über 6.000 Zeilen lang. Sie können die Beschreibung von shopt mit viel Scrollen finden, oder Sie können einfach im Handbuch danach suchen.

  So legen Sie ein automatisches Ablaufdatum für Google Drive-Links fest

Öffnen Sie dazu das Handbuch im Abschnitt Bash:

man bash

Drücken Sie im Handbuch auf / , um eine Suche zu starten. Geben Sie Folgendes ein und drücken Sie dann die Eingabetaste:

assoc_expand_once

Der Anfang des Shopoptionsabschnitts erscheint im Man-Fenster.

Optionen zum Aktivieren und Deaktivieren

Verwenden Sie die folgenden Befehle, um Shopt-Optionen festzulegen und zurückzusetzen:

-s: Festlegen oder aktivieren.
-u: Unset oder deaktivieren.

Da einige Optionen standardmäßig aktiviert sind, ist es auch praktisch zu überprüfen, welche Optionen aktiviert sind. Sie können dies mit den Optionen -s und -u tun, ohne einen Optionsnamen zu verwenden. Dies veranlasst shopt, die Optionen aufzulisten, die ein- und ausgeschaltet sind.

Geben Sie Folgendes ein:

shopt -s

shopt -u | column

Sie können eine shopt-Option ohne die Befehle -s oder -u verwenden, um den Ein- oder Aus-Zustand für jede Option anzuzeigen.

Beispielsweise können wir Folgendes eingeben, um die Einstellung der Option histverify zu überprüfen:

shopt histverify

Wir können Folgendes eingeben, um es zu aktivieren:

shopt -s histverify

Dann können wir Folgendes eingeben, um es erneut zu überprüfen:

shopt histverify

Die Option histverify ändert, wie ein Aspekt des Verlaufsbefehls funktioniert. Wenn Sie den Verlauf auffordern, einen Befehl zu wiederholen, indem Sie ihn mit einer Nummer wie !245 referenzieren, wird der Befehl normalerweise aus dem Befehlsverlauf abgerufen und sofort ausgeführt.

Wenn Sie es vorziehen, einen Befehl zu überprüfen, um sicherzustellen, dass es der erwartete ist, und ihn gegebenenfalls zu bearbeiten, geben Sie Folgendes ein, um die Option shopt histverify auf on zu setzen:

!245

Der Befehl wird abgerufen und in der Befehlszeile angezeigt. Sie können es entweder löschen, bearbeiten oder ausführen, indem Sie die Eingabetaste drücken.

Die autocd-Option

Wenn Sie bei aktivierter Option autocd den Namen eines Verzeichnisses in die Befehlszeile eingeben und die Eingabetaste drücken, wird dies so behandelt, als hätten Sie davor cd eingegeben.

Wir geben Folgendes ein, um die Option autocd zu aktivieren:

shopt -s autocd

Dann geben wir den Namen eines Verzeichnisses ein:

Documents

Die cdspell-Option

Wenn die Option cdspell aktiviert ist, korrigiert Bash automatisch einfache Rechtschreibfehler und Tippfehler in Verzeichnisnamen.

  So beheben Sie den CE-34788-0 PS4-Fehlercode

Wir geben Folgendes ein, um die Option cdspell festzulegen:

shopt -s cdspell

Um zu versuchen, in ein Verzeichnis in Kleinbuchstaben zu wechseln, das einen großen Anfangsbuchstaben haben sollte, geben wir Folgendes ein:

cd documents

Dann können wir Folgendes eingeben, um einen Verzeichnisnamen mit einem zusätzlichen „t“ im Namen zu versuchen:

cd ../Picttures

Bash wechselt in jedes Verzeichnis, unabhängig von den Rechtschreibfehlern.

Die xpg_echo-Option

Wenn die Option xpg_echo aktiviert ist, gehorcht der echo-Befehl maskierten Zeichen, wie n für neue Zeile und t für horizontalen Tabulator.

Zuerst geben wir Folgendes ein, um sicherzustellen, dass die Option gesetzt ist:

shopt -s xpg_echo

Wir fügen dann n in einen String ein, den wir an echo übergeben:

echo "This is line onenThis is line two"

Das maskierte Zeilenumbruchzeichen erzwingt einen Zeilenumbruch in der Ausgabe.

Dies erzeugt das gleiche Verhalten wie das -e (Escape-Interpretation ermöglichen) echo-Option, aber xpg_echo erlaubt es, die Standardaktion zu sein.

Die dotglob-Option

Die dotglob-Option sollte mit etwas Vorsicht behandelt werden. Es erlaubt Dateien und Verzeichnisse, die mit einem Punkt (.) beginnen, in Namenserweiterungen oder „Globbing“ aufzunehmen. Diese werden „Punktdateien“ oder „Punktverzeichnisse“ genannt und sind normalerweise versteckt. Die Option dotglob ignoriert den Punkt am Anfang ihrer Namen.

Zuerst suchen wir nach Dateien oder Verzeichnissen, die auf „geek“ enden, indem wir Folgendes eingeben:

ls *geek

Eine Datei wird gefunden und aufgelistet. Dann aktivieren wir die dotglob-Option, indem wir Folgendes eingeben:

shopt -s dotglob

Wir geben denselben ls-Befehl aus, um nach Dateien und Verzeichnissen zu suchen, die auf „geek“ enden:

ls *geek

Dieses Mal werden zwei Dateien gefunden und aufgelistet, von denen eine eine Punktdatei ist. Sie müssen mit rm und mv vorsichtig sein, wenn Sie die Option dotglob aktiviert haben.

Die nocaseglob-Option

Die Option nocaseglob ähnelt der Option dotglob, außer dass nocaseglob bewirkt, dass Unterschiede in Groß- und Kleinbuchstaben in Dateinamen und Verzeichnissen bei Namenserweiterungen ignoriert werden.

  So melden Sie sich remote von iCloud ab

Wir geben Folgendes ein, um nach Dateien oder Verzeichnissen zu suchen, die mit „how“ beginnen:

ls how*

Eine Datei wird gefunden und aufgelistet. Wir geben Folgendes ein, um die Option nocaseglob zu aktivieren:

shopt -s nocaseglob

Dann wiederholen wir den ls-Befehl:

ls how*

Es werden zwei Dateien gefunden, von denen eine Großbuchstaben enthält.

Änderungen dauerhaft machen

Die von uns vorgenommenen Änderungen bleiben nur so lange bestehen, bis wir die aktuelle Bash-Shell schließen. Um sie über verschiedene Shell-Sitzungen hinweg dauerhaft zu machen, müssen wir sie zu unserer „.bashrc“-Datei hinzufügen.

Geben Sie in Ihrem Home-Verzeichnis den folgenden Befehl ein, um die „.bashrc“-Datei im grafischen Gedit-Texteditor zu öffnen (oder ändern Sie sie entsprechend, um den von Ihnen bevorzugten Editor zu verwenden):

gedit .bashrc

Der Gedit-Editor wird mit geladener „.bashrc“-Datei geöffnet. Sie werden sehen, dass einige Shopt-Einträge bereits darin enthalten sind.

Sie können hier auch Ihre eigenen Shopt-Optionen hinzufügen. Wenn Sie sie hinzugefügt haben, speichern Sie Ihre Änderungen und schließen Sie den Editor. Wenn Sie jetzt eine neue Bash-Shell öffnen, werden Ihre Optionen für Sie festgelegt.

Optionen so weit das Auge reicht

Es ist wahr, dass der Befehl shopt viele Optionen hat, aber Sie müssen sich nicht mit allen auf einmal auseinandersetzen, wenn überhaupt. Da es so viele gibt, gibt es wahrscheinlich einige, die für Sie nicht von Interesse sind.

Zum Beispiel gibt es eine Menge, die Bash dazu zwingen, auf eine Weise zu arbeiten, die mit bestimmten, älteren Versionen kompatibel ist. Das könnte für jemanden nützlich sein, aber es ist ein ziemlicher Nischenfall.

Sie können die Bash überprüfen Manpage oder GNU Bash-Referenzhandbuch. Entscheiden Sie, welche Optionen für Sie einen Unterschied machen, und experimentieren Sie dann mit ihnen. Seien Sie nur vorsichtig mit Optionen, die die Art und Weise beeinflussen, wie Datei- und Verzeichnisnamen erweitert werden. Probieren Sie sie mit einem harmlosen Befehl wie ls aus, bis Sie mit ihnen vertraut sind.