Oh-My-Zsh! Un lavoro di magia CLI – Tutorial per Ubuntu

Michiel Mulders
Michiel Mulders

Follow

29 agosto, 2017 – 6 min read

Oh-My-Zsh Agnoster Theme

Sono un grande fan dell’interfaccia della riga di comando… Odio usare il mouse del mio computer! Questo mi ha motivato a cercare grandi strumenti per migliorare la mia esperienza utente sulla CLI. Mi sono imbattuto in Oh-My-Zsh durante il mio stage. Alcuni amici mi hanno convinto ad usare questa shell per la sua semplicità e regolabilità. Come bonus, la CLI è estendibile con molti plugin.

Questa è una lista delle sue capacità:

  • Convalida dei comandi
  • Correzione dell’ortografia
  • Condivisione della cronologia dei comandi tra tutte le shell in esecuzione
  • Propone i prompt (Agnoster, RobbyRussell, …)
  • Storia della directory
  • Script di avvio/arresto tramite zshenv, zprofile, zshrc, zlogin, e zlogout
  • Forte capacità di completamento automatico. Puoi usare il tasto TAB per navigare tra le diverse opzioni e usare enter per selezionare la cartella giusta. Bash per esempio stamperebbe tutte le opzioni. Questo è abbastanza spammoso e inquina lo scrollback.

  • Aggiungi plugin: ad esempio il plugin Git con una lista enorme di utili alias Git.
    Questo plugin mostra il ramo attivo e dà un feedback visivo sul tuo stato Git:
    – Verde: ramo se non ci sono stati cambiamenti
    – Giallo con un’icona a forma di cerchio: file non tracciati
    – Giallo con un’icona più: file pronti per essere impegnati

Sto eseguendo questa guida di installazione sulla mia macchina virtuale Ubuntu 16.04. Per mostrarvi la potenza sottostante di Oh-My-Zsh, installerò il plugin Git (Git-core). Questo plugin fornisce un feedback visivo sullo stato di Git di un progetto.

  1. Installa i pacchetti dei prerequisiti
    $ sudo apt install git-core zsh
  2. Installa Oh-My-Zsh dal repository di Robby Russell
    $ sh -c “$(curl -fsSL https://raw.github.com/robbyrussell/oh-my-zsh/master/tools/install.sh)”
  3. Installa il font Powerline per ravvivare la tua CLI con delle icone
    $ sudo apt install fonts-powerline
  4. Cambia tema da ‘robbyrussell’ a ‘agnoster’ per il leggendario tema Oh-My-Zsh
    $ nano ~/.zshrc
  5. Trova la variabile ZSH_THEME e cambiala:ZSH_THEME="agnoster"
  6. Non mi piace che il tema mostri il mio username e host. Per sbarazzarci di questo, cambiamo la directory in
    $ cd ~/.oh-my-zsh/themes
  7. Poi apriamo il file del tema per ‘agnoster’ nell’editor
    $ nano agnoster.zsh-theme
  8. Ora possiamo cambiare il ‘Main prompt’. Non abbiamo bisogno di prompt_context nella funzione build_prompt(). Basta commentare questa linea o rimuoverla. Infine, cambia la variabile PROMPT in $(build_prompt).

Configurazione del tema Ignoster

Per vedere effettivamente il tema, devi generare il tuo file .zshrc così: source ~/.zshrc. Se tutto è andato bene, dovresti vedere qualcosa come l’immagine di copertina!

Extra: Imposta zsh come shell predefinita. Esegui questo comando nella tua shell predefinita, nella maggior parte dei casi questa sarà bash. Se esegui questo comando in zsh, non cambierà nulla:
$ chsh -s $(quale zsh)

Nota: Se usi sudo cambierà la shell per root, ma non per il tuo utente di lavoro. Oltre a questo, assicurati di fare il logout e il login di nuovo per vedere i cambiamenti.

Installa i plugin

Tutti i plugin elencati nella pagina Github dei plugin sono preinstallati con Oh-My-Zsh a ~/.oh-my-zsh/plugins. I plugin personalizzati possono essere installati a ~/.oh-my-zsh/custom/plugins. Per usare un plugin, puoi semplicemente aggiungerlo alla lista dei plugin nel tuo file ~/.zshrc. Aggiungi saggiamente, poiché troppi plugin rallentano l’avvio della shell. Lasciate uno spazio vuoto tra ogni plugin.

Colored-man-pages

In questo esempio, ho installato un utile plugin per dare evidenza di colore al vostro man pages . Per poter utilizzare il plugin, create il sorgente del vostro .zshrcfile:
$ source ~/.zshrc

Pagina Uomo colorata del comando ls

Zsh-syntax-highlighting

Un altro grande plugin è l’evidenziazione della sintassi per la tua shell. Oltre a questo, questo plugin ha la capacità di verificare la correttezza del tuo comando.

Questo plugin non è installato con Oh-My-Zsh. Naviga verso ~/.oh-my-zsh/custom/plugins e clona il codice da Github in questa cartella:
$ git clone https://github.com/zsh-users/zsh-syntax-highlighting

Vedrai una cartella chiamata zsh-syntax-highlighting. Questo è il nome che deve essere aggiunto alla lista dei plugin.

Zsh-autosuggestions

Puoi anche usare zsh-autosuggestions per il completamento dei comandi. Suggerisce comandi basati sulla tua cronologia dei comandi. Molto utile! Per selezionare il comando proposto, premi il tasto freccia destra.

L’installazione è la stessa che con zsh-syntax-highlighting:
$ git clone https://github.com/zsh-users/zsh-autosuggestions
E aggiungi zsh-autosuggestions alla lista dei plugin.

Si prende cura degli appassionati di alias

Oh-My-Zsh ricorda automaticamente le ultime 20 directory che hai visitato. Puoi elencare la cronologia cronologicamente con dirs -v o semplicemente d.

Normalmente, puoi usare cd +1 per andare alla directory precedente e così via. Oh-My-Zsh ha reso questo ancora più semplice, ora puoi usare solo il numero della voce nella cronologia della directory che vuoi visitare… 1.

Altri alias interessanti

  • alias : elenca tutti gli alias. Puoi convogliare l’output a grep per cercare un alias particolare.
  • / : cd /
  • ~ : cd ~
  • ... : cd ../..
  • .... : cd ../../..
  • ..... : cd ../../../.. Penso tu abbia capito, giusto?
  • take test_folder : Crea una cartella chiamata test_folder e la modifica
  • x : Estrai archivio di tipi tar, bz2, rar, gz, tbz2, tgz, zip, Z, 7z
  • upgrade_oh_my_zsh : Comando facile per aggiornare la tua installazione

Problemi ben noti & Soluzioni

Può succedere che il file della cronologia venga corrotto. Non chiedetemi i dettagli specifici. Ogni volta che lanci un nuovo terminale, ottieni questo messaggio:

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

Correggiamolo con i seguenti comandi. Assicurati di essere nella root della homefolder. Il comando fc elenca, modifica o riesegue i comandi precedentemente inseriti in una shell. Il comando history ti permette di usare le parole delle linee di comando precedenti nella linea di comando che stai digitando.

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

Conclusione

Oh-My-Zsh è semplicemente fantastico!

Link e fonti utili

Questo articolo è stato realizzato con l’aiuto di TheLedger.

  • Oh-My-Zsh: http://ohmyz.sh/
  • Plugins: https://github.com/robbyrussell/oh-my-zsh/tree/master/plugins
  • Temi: https://github.com/robbyrussell/oh-my-zsh/tree/master/themes/
  • Git plugin con tutti gli alias: https://github.com/robbyrussell/oh-my-zsh/wiki/Plugin:git
  • Personalizzazione del prompt della shell: http://www.nparikh.org/unix/prompt.php#zsh
  • ArchWiki su Zsh: https://wiki.archlinux.org/index.php/zsh#Autostart_X_at_login
  • Progetto di evidenziazione della sintassi di Zsh: https://github.com/zsh-users/zsh-syntax-highlighting
  • Zsh autosuggestions plugin: https://github.com/zsh-users/zsh-autosuggestions
  • RobbyRussell Wiki sulla personalizzazione di Zsh: https://github.com/robbyrussell/oh-my-zsh/wiki/Customization

Lascia un commento

Il tuo indirizzo email non sarà pubblicato.