So passen Sie die Bash-Shell mit shopt an
Veröffentlicht: 2022-01-29 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.
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
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
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
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
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
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.
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 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.
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.