Understanding The Different Shell unter Linux: Zsh Shell
Nach Bash und Korn werden wir heute die sehr beliebte Zsh-Schale entdecken. In der Tat ist Zsh so beliebt, dass viele Leute Bash für ihn verlassen haben. Der Hauptgrund für seine Popularität liegt in einer unglaublichen Interaktivität mit dem Benutzer und einer sehr umfassenden und leistungsstarken Autovervollständigungsfunktionalität.
Geschichte
Die erste Version von Zsh wurde 1990 von einem Princeton-Studenten namens Paul Falstad erstellt. Der Name "Zsh" stammt angeblich von der Verbindungs-ID des Princeton-Professors Zhong Shao. Die Shell selbst wurde von Bash, Ksh und Tcsh beeinflusst: Zsh hat eine sehr mächtige Auto-Vervollständigung Funktionalität, zusammen mit rekursiven Suchen und einem Korrektor enthalten. Und natürlich kann die Aufforderung nach dem Wunsch des Benutzers definiert werden. Aus diesem Grund betrachten einige Zsh als eine erweiterte Bourne Shell.
Installation
Jetzt, wo du mehr über Zsh weißt, lass es uns installieren. Für Ubuntu ist die Installation ziemlich einfach:
sudo apt-get installiere zsh
Für andere Distributionen sollte es auch in Ihren Repositories verfügbar sein. Im schlimmsten Fall laden Sie das Paket von der offiziellen Seite herunter.
Sobald das Paket installiert ist, können Sie eine Zsh-Shell von jedem Terminal über den folgenden Befehl starten:
zsh
Wenn Sie diese Shell wirklich mögen und möchten, dass sie Ihre aktuelle ersetzt, können Sie das tun, indem Sie tippen
sudo usermod -s / bin / zsh [Benutzername]
Beachten Sie, dass die Konfigurationsdatei wie üblich "~ / .zshrc" ist und beim ersten Start erstellt wird. Wie bei bash kann dies zum Hinzufügen von Aliasen und zum Personalisieren der Eingabeaufforderung verwendet werden.
Verwendung
Zsh ist sehr intuitiv. Zunächst sollten Sie keinen Unterschied im Verhalten mit Bash bemerken. Eine gute Möglichkeit, das erste Feature zu erkennen, ist jedoch:
rm - [Tabellentaste]
und dann den Tabellationsschlüssel verwenden. Dadurch werden alle möglichen Argumente für den Befehl "rm" angezeigt. Wie Sie sehen können, ist die automatische Vervollständigung mit Zsh unglaublich.
Nicht nur die Argumente eines Befehls, sondern auch die ssh-Hosts in / etc / hosts, die möglichen Ziele für den make-Befehl, die Manual-Pages, die Dateien auf einem entfernten Server usw. können alle von Zsh automatisch vervollständigt werden. Und die Geschwindigkeit der automatischen Vervollständigung ist ebenfalls beeindruckend.
Sie können auch versuchen, einen falschen Befehl wie zu tippen
gdit .zshrc
und es wird die Korrekturfunktion auslösen:
Wenn die Korrektur zunächst nicht funktioniert, bedeutet dies, dass Sie sie noch nicht aktiviert haben. Geben Sie dazu einfach Folgendes ein:
setopt korrekt
Die Korrektur ist nicht die einzige Option, die Sie aktivieren können. Nach dem Befehl "setopt" können Sie auch verwenden
- Piepton : Zur Wiedergabe eines Pieptons, wenn ein Fehler auftritt
- hist_ignore_all_dups : um zu verhindern, dass derselbe Befehl zweimal im Verlauf aufgezeichnet wird
- auto_cd : um in ein Verzeichnis zu wechseln, indem einfach der Name eingegeben wird (keine Notwendigkeit mehr für den Befehl cd)
Wenn Sie dagegen eine Option löschen möchten, lautet die Syntax:
unsetopt [Option]
Eine weitere gute Anwendung von Zsh ist die rekursive Suche. Sie wurden mit Bash für den Operator "*" verwendet, was "alles" bedeutet. Jetzt mit "Zsh" kann "**" übersetzt werden "alles in allem". Mit anderen Worten, rekursive Suche. Lassen Sie mich das anhand eines Beispiels veranschaulichen. Wenn Sie eine Datei namens "foobar" löschen möchten, aber Sie sich nicht erinnern können, wo sie sich befindet, wird diese Zeile praktisch:
rm ** / foobar
Zsh sucht die foobar-Datei im aktuellen Verzeichnis und in jedem Unterverzeichnis, bis sie entfernt wird.
Der rekursive Operator kann bei der Suche nach einem bestimmten Dateityp sehr nützlich werden. Es ist möglich, die Kombination des Befehls "ls" und einer Regex zu verwenden. Ein einfacher Befehl wie
ls ** / *. mp3
gibt alle MP3-Dateien zurück, die Zsh rekursiv aus dem aktuellen Verzeichnis finden kann.
Zum Schluss noch ein wenig über die Konfiguration von Zsh. Wie du weißt, passiert es in ~ / .zshrc. Wenn Sie einige personalisierte Ansagen ausprobieren möchten, bietet Zsh einige gespeicherte Themen an. Um zu sehen, welche verfügbar ist, laden Sie das Eingabeaufforderungssystem mit
Autoload -U Prompt-Prompt-Init
Und dann listet die Themen auf mit:
Eingabeaufforderung -l
Und um Ihre aktuelle Eingabeaufforderung zu ändern, geben Sie ein
prompt [Name des Themas]
Wenn Sie in bash viele Aliase erstellen, funktionieren sie in zsh nicht. Sie müssen sie über die ~ / .zsh-Datei portieren. Die grundlegende Syntax ist dieselbe wie bei Bash:
Alias [Aliasname] = "[Befehl]"
Darüber hinaus können Sie einen bestimmten Alias für die Dateierweiterung definieren. Auf diese Weise können Sie automatisch den entsprechenden Befehl für die gewünschte Datei starten. Zum Beispiel benutze ich das Programm "mpg123", um MP3s von der Kommandozeile abzuspielen. Daher kann ich zu meiner .zshrc hinzufügen:
alias -s mp3 = "mpg123"
Von da an schreibe ich jedes Mal etwas wie
./song.mp3
Mpg123 wird gestartet und spielt das Lied ab. Mit ein wenig Phantasie können wir diese Funktionalität mit meinem vorherigen Artikel über den Umgang mit Archiven von der Kommandozeile kombinieren:
alias -s tar = "tar -xvf" alias -s rar = "unrar x" alias -s zip = "entpacken" alias -s pdf = "evince"
Fazit
Ja, Zsh und Bash sind sehr ähnlich, aber zsh ist flexibler, was es populärer macht. Persönlich schätze ich die Funktion zur automatischen Vervollständigung und den Alias für die Dateierweiterung. Die oben genannten Tipps decken nur einen kleinen Teil dessen ab, was zsh tun kann. Um mehr über Zsh zu erfahren, lade ich Sie ein, das Archlinux-Wiki zu lesen.
Was denkst du über die Zsh Shell? Hast du einen anderen versucht? Haben Sie Fragen zu den Muscheln im Allgemeinen? Bitte lassen Sie uns in den Kommentaren wissen.