So passen Sie die Bash-Shell mit shopt an

Veröffentlicht: 2022-01-29
Eine Terminal-Eingabeaufforderung auf einem Linux-Laptop.
Fatmawati Achmad Zaenuri/Shutterstock

Wenn Sie das Verhalten Ihrer Bash-Shell mit shopt , 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 shopt ist Teil aller Versionen der Bash-Shell, sodass Sie nichts installieren müssen. 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 man -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 das GNU Bash-Referenzhandbuch lesen, 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.

Anzeige

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 , zählt er 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:

 einkaufen | Toilette 

Um alle Optionen anzuzeigen, können wir die Ausgabe durch den column leiten, um die Optionsnamen in Spalten anzuzeigen, oder wir könnten sie in less .

Wir geben Folgendes ein:

 einkaufen | Säule 

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.

Öffnen Sie dazu das Handbuch im Abschnitt Bash:

 Mann bash 

Anzeige

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 shopt Optionsabschnitts erscheint im man -Fenster.

RELATED: How to Use Man Command von Linux: Versteckte Geheimnisse und Grundlagen

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 | Säule 

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
Anzeige

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

 shopt histverify 

Die Option histverify ändert, wie ein Aspekt des history funktioniert. Wenn Sie den history 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.

VERWANDT: So verwenden Sie den History-Befehl unter Linux

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:

 Unterlagen 

Die cdspell-Option

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

Wir geben Folgendes ein, um die Option cdspell :

 shopt -s cdspell
Anzeige

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

 CD-Dokumente

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

 CD ../Bilder 

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

Die xpg_echo-Option

Wenn die Option xpg_echo ist, befolgt der echo-Befehl Escape-Zeichen wie \n für eine neue Zeile und \t für einen horizontalen Tabulator.

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

 shopt -s xpg_echo
Anzeige

Wir fügen dann \n in eine Zeichenfolge ein, die wir an echo übergeben:

 echo "Das ist Zeile eins\nDas ist Zeile zwei" 

Das maskierte Zeilenumbruchzeichen erzwingt einen Zeilenumbruch in der Ausgabe.

Dies erzeugt das gleiche Verhalten wie die xpg_echo -e (Escape-Interpretation aktivieren), aber echo lässt zu, dass dies die Standardaktion ist.

VERWANDT: So verwenden Sie den Echo-Befehl unter Linux

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
Anzeige

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 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.

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

 Wie ist das?

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:

 Wie ist das? 

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.

Anzeige

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.

Der Gedit-Editor mit geladener .bashrc-Datei und hervorgehobenen Shopt-Optionen.

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 soweit 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.

Anzeige

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