Oh-My-Zsh! Ein Werk der CLI-Magie – Tutorial für Ubuntu

Michiel Mulders
Michiel Mulders

Follow

Aug 29, 2017 – 6 min read

Oh-My-Zsh Agnoster Theme

Ich bin ein großer Fan der Kommandozeilenoberfläche… Ich hasse es, meine Computermaus zu benutzen! Das hat mich dazu motiviert, nach großartigen Tools zu suchen, die meine Benutzererfahrung mit der CLI verbessern. Während meines Praktikums stieß ich auf Oh-My-Zsh. Einige Freunde überzeugten mich, diese Shell wegen ihrer Einfachheit und Anpassungsfähigkeit zu benutzen. Als Bonus ist die CLI mit vielen Plugins erweiterbar.

Das ist eine Liste ihrer Fähigkeiten:

  • Befehlsüberprüfung
  • Rechtschreibkorrektur
  • Teilung der Befehlshistorie unter allen laufenden Shells
  • Messbare Prompts (Agnoster, RobbyRussell, …)
  • Verzeichnisverlauf
  • Startup/Shutdown-Skripte über zshenv, zprofile, zshrc, zlogin und zlogout
  • Starke Autovervollständigungsfunktionen. Sie können mit der TAB-Taste durch die verschiedenen Optionen navigieren und mit der Eingabetaste den richtigen Ordner auswählen. Bash würde zum Beispiel alle Optionen ausgeben. Das ist ziemlich spammig und verschmutzt dein Scrollback.

  • Hinzufügen von Plugins: z.B. Git-Plugin mit einer riesigen Liste von nützlichen Git-Aliasen.
    Dieses Plugin zeigt den aktiven Zweig an und gibt visuelles Feedback über deinen Git-Status:
    – Grün: Zweig, wenn keine Änderungen aufgetreten sind
    – Gelb mit einem Kreis-Symbol: nicht verfolgte Dateien
    – Gelb mit einem Plus-Symbol: Dateien, die bereit sind, committed zu werden

Ich führe diese Installationsanleitung auf meiner Ubuntu 16.04 Virtual Machine durch. Um Ihnen die zugrundeliegende Leistung von Oh-My-Zsh zu zeigen, werde ich das Git-Plugin (Git-core) installieren. Dieses Plugin gibt visuelles Feedback über den Git-Status eines Projekts.

  1. Vorausgesetzte Pakete installieren
    $ sudo apt install git-core zsh
  2. Oh-My-Zsh aus dem Repository von Robby Russell installieren
    $ sh -c “$(curl -fsSL https://raw.github.com/robbyrussell/oh-my-zsh/master/tools/install.sh)”
  3. Installieren Sie die Schriftart Powerline, um Ihre CLI mit Icons aufzupeppen
    $ sudo apt install fonts-powerline
  4. Ändern Sie das Theme von ‘robbyrussell’ auf ‘agnoster’ für das legendäre Oh-My-Zsh Theme
    $ nano ~/.zshrc
  5. Finde die Variable ZSH_THEME und ändere sie:ZSH_THEME="agnoster"
  6. Ich mag es nicht, dass das Theme meinen Benutzernamen und meinen Host anzeigt. Um das loszuwerden, wechseln wir in das Verzeichnis
    $ cd ~/.oh-my-zsh/themes
  7. Nächste öffnen wir die Theme-Datei für ‘agnoster’ im Editor
    $ nano agnoster.zsh-theme
  8. Jetzt können wir den ‘Main prompt’ ändern. Wir brauchen prompt_context in der Funktion build_prompt() nicht zu verwenden. Kommentieren Sie diese Zeile einfach aus oder entfernen Sie sie. Zuletzt ändern wir die PROMPT-Variable in $(build_prompt).

Agnoster-Theme-Konfiguration

Um das Thema tatsächlich zu sehen, müssen wir die .zshrc-Datei wie folgt aufrufen: source ~/.zshrc. Wenn alles geklappt hat, solltest du so etwas wie das Titelbild sehen!

Extra: Setzen Sie zsh als Standard-Shell. Führen Sie diesen Befehl in Ihrer Standardshell aus, in den meisten Fällen wird dies die Bash sein. Wenn Sie diesen Befehl in zsh ausführen, ändert sich nichts:
$ chsh -s $(which zsh)

Hinweis: Wenn Sie sudo verwenden, ändert sich die Shell für root, aber nicht für Ihren Arbeitsbenutzer. Stellen Sie außerdem sicher, dass Sie sich aus- und wieder einloggen, um die Änderungen zu sehen.

Plugins installieren

Alle Plugins, die auf der Plugins-Github-Seite aufgelistet sind, sind mit Oh-My-Zsh unter ~/.oh-my-zsh/plugins vorinstalliert. Benutzerdefinierte Plugins können unter ~/.oh-my-zsh/custom/plugins installiert werden. Um ein Plugin zu verwenden, können Sie es einfach zur Plugin-Liste in Ihrer ~/.zshrc-Datei hinzufügen. Fügen Sie es mit Bedacht hinzu, da zu viele Plugins den Start der Shell verlangsamen. Lassen Sie zwischen jedem Plugin ein Leerzeichen stehen.

Farbige-Mann-Seiten

In diesem Beispiel habe ich ein nützliches Plugin installiert, um Ihre man pages farblich hervorzuheben. Um das Plugin nutzen zu können, musst du deine .zshrcDatei quellen lassen:
$ source ~/.zshrc

Farbige Man Page des ls-Befehls

Zsh-syntax-highlighting

Ein weiteres tolles Plugin ist das Syntax-Highlighting für deine Shell. Außerdem hat dieses Plugin die Fähigkeit, die Korrektheit Ihres Befehls zu überprüfen.

Dieses Plugin wird nicht mit Oh-My-Zsh installiert. Navigieren Sie zu ~/.oh-my-zsh/custom/plugins und klonen Sie den Code von Github in diesen Ordner:
$ git clone https://github.com/zsh-users/zsh-syntax-highlighting

Sie werden einen Ordner namens zsh-syntax-highlighting sehen. Dies ist der Name, der zur Plugins-Liste hinzugefügt werden muss.

Zsh-autosuggestions

Du kannst auch zsh-autosuggestions für die Befehlsvervollständigung verwenden. Es schlägt Befehle vor, die auf Ihrer Befehlshistorie basieren. Sehr nützlich! Um den vorgeschlagenen Befehl auszuwählen, drücke die rechte Pfeiltaste.

Die Installation ist die gleiche wie mit zsh-syntax-highlighting :
$ git clone https://github.com/zsh-users/zsh-autosuggestions
Und füge zsh-autosuggestions zur Plugins-Liste hinzu.

Kümmert sich um Alias-Enthusiasten

Oh-My-Zsh merkt sich automatisch die letzten 20 Verzeichnisse, die man besucht hat. Sie können die Historie chronologisch mit dirs -v oder einfach d auflisten.

Normalerweise können Sie cd +1 verwenden, um zum vorherigen Verzeichnis zu gehen und so weiter. Oh-My-Zsh hat dies noch einfacher gemacht, jetzt können Sie einfach die Nummer des Eintrags im Verzeichnisverlauf verwenden, den Sie besuchen wollen… 1.

Andere interessante Aliase

  • alias : Listet alle Aliase auf. Sie können die Ausgabe nach grep leiten, um nach einem bestimmten Alias zu suchen.
  • / : cd /
  • ~ : cd ~
  • ... : cd ../..
  • .... : cd ../../..
  • ..... : cd ../../../.. Ich denke, Sie haben es verstanden, richtig?
  • take test_folder : Erstellt einen Ordner mit dem Namen test_folder und wechselt in diesen
  • x : Extrahiert ein Archiv vom Typ tar, bz2, rar, gz, tbz2, tgz, zip, Z, 7z
  • upgrade_oh_my_zsh : Einfacher Befehl zum Aktualisieren der Installation

Bekannte Probleme & Lösungen

Es kann passieren, dass die Verlaufsdatei beschädigt wird. Fragen Sie mich nicht nach den genauen Details. Jedes Mal, wenn Sie ein neues Terminal starten, erhalten Sie diese Meldung:

zsh: corrupt history file /home/myusername/.zsh_history

Lösen wir das Problem mit den folgenden Befehlen. Stellen Sie sicher, dass Sie sich im Stammverzeichnis des Home-Ordners befinden. Der Befehl fc listet Befehle auf, bearbeitet sie oder führt sie erneut aus, die zuvor in eine Shell eingegeben wurden. Der Befehl history erlaubt es dir, Wörter aus früheren Befehlszeilen in der Befehlszeile zu verwenden, die du gerade eingibst.

mv .zsh_history .zsh_history_bad
strings .zsh_history_bad > .zsh_history
fc -R .zsh_history

Abschluss

Oh-My-Zsh ist einfach genial!

Nützliche Links und Quellen

Dieser Artikel wurde mit Hilfe von TheLedger erstellt.

  • Oh-My-Zsh: http://ohmyz.sh/
  • Plugins: https://github.com/robbyrussell/oh-my-zsh/tree/master/plugins
  • Themes: https://github.com/robbyrussell/oh-my-zsh/tree/master/themes/
  • Git-Plugin mit allen Aliasen: https://github.com/robbyrussell/oh-my-zsh/wiki/Plugin:git
  • Anpassen der Shell-Eingabeaufforderung: http://www.nparikh.org/unix/prompt.php#zsh
  • ArchWiki über Zsh: https://wiki.archlinux.org/index.php/zsh#Autostart_X_at_login
  • Zsh-Plugin zur Syntaxhervorhebung: https://github.com/zsh-users/zsh-syntax-highlighting
  • Zsh-Autosuggestions-Plugin: https://github.com/zsh-users/zsh-autosuggestions
  • RobbyRussell Wiki über die Anpassung von Zsh: https://github.com/robbyrussell/oh-my-zsh/wiki/Customization

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht.