Oh-My-Zsh! A Work of CLI Magic – Tutorial for Ubuntu

Michiel Mulders
Michiel Mulders

Follow

29 aug, 2017 – 6 min read

Oh-My-Zsh Agnoster Theme

Ik ben een grote fan van de command line interface…. Ik haat het om mijn computermuis te gebruiken! Dit motiveerde me om op zoek te gaan naar geweldige hulpmiddelen om mijn gebruikerservaring op de CLI te verbeteren. Ik kwam Oh-My-Zsh tegen tijdens mijn stage. Enkele vrienden overtuigden me om deze shell te gebruiken vanwege zijn eenvoud en aanpasbaarheid. Als bonus, de CLI is uitbreidbaar met vele plugins.

Dit is een lijst van zijn mogelijkheden:

  • Commando validatie
  • Spelling correctie
  • Deling van commando geschiedenis onder alle draaiende shells
  • Deelbare prompts (Agnoster, RobbyRussell, …)
  • Directory history
  • Start/afsluit scripts via zshenv, zprofile, zshrc, zlogin, en zlogout
  • Sterke autocomplete mogelijkheden. U kunt de TAB-toets gebruiken om door de verschillende opties te navigeren en enter gebruiken om de juiste map te selecteren. Bash zou bijvoorbeeld alle opties afdrukken. Dit is nogal spammy en vervuilt je scrollback.

  • Voeg plugins toe: bijv. Git plugin met een enorme lijst nuttige Git aliassen.
    Deze plugin laat de actieve branch zien en geeft visuele feedback over je Git status:
    – Groen: branch als er geen wijzigingen zijn opgetreden
    – Geel met een cirkelpictogram: ongevolgde bestanden
    – Geel met een pluspictogram: bestanden klaar om gecommit te worden

Ik voer deze installatiegids uit op mijn Ubuntu 16.04 Virtuele Machine. Om je de onderliggende kracht van Oh-My-Zsh te laten zien, installeer ik de Git-plugin (Git-core). Deze plugin geeft visuele feedback over de Git status van een project.

  1. Installeer de vereiste pakketten
    $ sudo apt install git-core zsh
  2. Installeer Oh-My-Zsh uit Robby Russell’s repository
    $ sh -c “$(curl -fsSL https://raw.github.com/robbyrussell/oh-my-zsh/master/tools/install.sh)”
  3. Installeer het Powerline font om je CLI op te leuken met icoontjes
    $ sudo apt install fonts-powerline
  4. Verander thema van ‘robbyrussell’ naar ‘agnoster’ voor het legendarische Oh-My-Zsh thema
    $ nano ~/.zshrc
  5. Vind de ZSH_THEME variabele en verander deze:ZSH_THEME="agnoster"
  6. Ik vind het niet leuk dat het thema mijn gebruikersnaam en host laat zien. Om hier vanaf te komen, veranderen we de directory in
    $ cd ~/.oh-my-zsh/themes
  7. Daarna openen we het themabestand voor ‘agnoster’ in de editor
    $ nano agnoster.zsh-theme
  8. Nu kunnen we de ‘Main prompt’ veranderen. We hoeven prompt_context niet in de functie build_prompt() te zetten. Commentarieer deze regel gewoon uit of verwijder hem. Verander als laatste de variabele PROMPT in $(build_prompt).

Agnoster thema configuratie

Om het thema daadwerkelijk te zien, moet je je .zshrc bestand als volgt sourceen: source ~/.zshrc. Als alles goed is gegaan, zou u iets als de omslagafbeelding moeten zien!

Extra: Stel zsh in als onze standaard shell. Voer dit uit in uw standaard shell, in de meeste gevallen zal dit bash zijn. Als u dit commando in zsh uitvoert, zal het niets veranderen:
$ chsh -s $(welke zsh)

Note: Als u sudo gebruikt, zal het de shell voor root veranderen, maar niet voor uw werkende gebruiker. Zorg er daarnaast voor dat u uitlogt en opnieuw inlogt om de veranderingen te zien.

Installeer Plugins

Alle plugins die op de plugins Github pagina staan, zijn voorgeïnstalleerd met Oh-My-Zsh op ~/.oh-my-zsh/plugins. Aangepaste plugins kunnen worden geïnstalleerd op ~/.oh-my-zsh/custom/plugins. Om een plugin te gebruiken, kunt u deze simpelweg toevoegen aan de plugins lijst in uw ~/.zshrc bestand. Voeg verstandig toe, want te veel plugins vertragen het opstarten van de shell. Laat een spatie tussen elke plugin.

Gekleurde-man-pagina’s

In dit voorbeeld heb ik een handige plugin geïnstalleerd om uw man pages te voorzien van kleurmarkering. Om de plugin te kunnen gebruiken, source je .zshrc bestand:
$ source ~/.zshrc

Gekleurde Man pagina van ls commando

Zsh-syntax-highlighting

Een andere geweldige plugin is syntax highlighting voor je shell. Daarnaast heeft deze plugin de mogelijkheid om de juistheid van je commando te controleren.

Deze plugin is niet geïnstalleerd met Oh-My-Zsh. Navigeer naar ~/.oh-my-zsh/custom/plugins en kloon de code van Github naar deze map:
$ git clone https://github.com/zsh-users/zsh-syntax-highlighting

U zult een map zien met de naam zsh-syntax-highlighting. Dit is de naam die moet worden toegevoegd aan de plugins lijst.

Zsh-autosuggestions

U kunt ook zsh-autosuggestions gebruiken voor het aanvullen van commando’s. Het suggereert commando’s gebaseerd op uw commando geschiedenis. Erg handig! Om het voorgestelde commando te selecteren, drukt u op de rechter pijltjestoets.

Installatie is hetzelfde als met zsh-syntax-highlighting :
$ git clone https://github.com/zsh-users/zsh-autosuggestions
En voeg zsh-autosuggestions toe aan de plugins lijst.

Zorgt voor Alias Enthousiast

Oh-My-Zsh onthoudt automatisch de 20 laatste directories die u hebt bezocht. U kunt de geschiedenis chronologisch oplijsten met dirs -v of gewoon met d.

Normaal kunt u cd +1 gebruiken om naar de vorige directory te gaan en zo verder. Oh-My-Zsh heeft dit nog eenvoudiger gemaakt, nu kunt u gewoon het nummer gebruiken van de entry in de directory geschiedenis die u wilt bezoeken… 1.

Andere Interessante Aliassen

  • alias : Lijst van alle aliassen. U kunt de uitvoer naar grep leiden om naar een bepaalde alias te zoeken.
  • / : cd /
  • ~ : cd ~
  • ... : cd ../..
  • .... : cd ../../..
  • ..... : cd ../../../.. Ik denk dat u het wel snapt, toch?
  • take test_folder : Maakt een map met de naam test_folder en wijzigt deze
  • x : Extract archief van types tar, bz2, rar, gz, tbz2, tgz, zip, Z, 7z
  • upgrade_oh_my_zsh : Gemakkelijk commando voor het upgraden van uw installatie

Bekende problemen & Oplossingen

Het kan gebeuren dat het geschiedenis bestand corrupt raakt. Vraag me niet naar de specifieke details. Elke keer als je een nieuwe terminal start, krijg je deze melding:

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

Laten we het oplossen met de volgende commando’s. Zorg ervoor dat je in de root van de homefolder bent. Het fc commando geeft een lijst, bewerkt, of voert commando’s opnieuw uit die eerder in een shell zijn ingevoerd. Met het commando history kunt u woorden uit eerdere commandoregels gebruiken in de commandoregel die u typt.

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

Conclusie

Oh-My-Zsh is gewoon geweldig!

Nuttige links en bronnen

Dit artikel is gemaakt met de hulp van TheLedger.

  • 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 met alle aliassen: https://github.com/robbyrussell/oh-my-zsh/wiki/Plugin:git
  • Aanpassen van uw shell prompt: http://www.nparikh.org/unix/prompt.php#zsh
  • ArchWiki over Zsh: https://wiki.archlinux.org/index.php/zsh#Autostart_X_at_login
  • Zsh syntax highlighting plugin: https://github.com/zsh-users/zsh-syntax-highlighting
  • Zsh autosuggestions plugin: https://github.com/zsh-users/zsh-autosuggestions
  • RobbyRussell Wiki over aanpassing van Zsh: https://github.com/robbyrussell/oh-my-zsh/wiki/Customization

Geef een antwoord

Het e-mailadres wordt niet gepubliceerd.