Deploy Value, Learn

ZSH & Autojump – Navigare rapidamente nel file system

1 Settembre 2022 - 4 minuti di lettura

Zsh è una shell derivata dall’estensione di BASH, contenente numerose migliorie e altamente personalizzabile. Alcune delle feature di zsh includono l’autocompletamento programmabile dei comandi, il controllo e la correzione ortografica, la possibilità di installare temi e moltissime altre personalizzazioni.

In questo articolo vi parlerò di autojump, un comando molto apprezzato per navigare velocemente nel file system.

Autojump

Autojump è una utility per linea di comando utilizzata per navigare più velocemente nel file system, mantenendo un database delle cartelle più utilizzate da riga di comando; perché autojump conosca una cartella, questa deve essere stata visitata almeno una volta.

L’utility è comodamente wrappata dalla funzione j, utilizzabile da riga di comando insieme al nome della cartella in cui si intende entrare. Non importa quale sia la cartella di destinazione o la posizione nel file system in cui si troviamo, autojump provvederà a portarci al suo interno.

Questo comando risulta particolarmente utile in caso ci si ricordi il nome della cartella ma non il path, oppure se il percorso è composto da molti caratteri e vogliamo risparmiarci il tempo utilizzato per scriverlo. Inoltre, se non ricordiamo interamente il nome della cartella di destinazione ma solo una parte, con buona probabilità autojump saprà derivare il nome della cartella anche partendo da una sua sottostringa.

Antigen

Antigen è il plugin manager utilizzabile per gestire i bundle di zsh, e si differenzia da Oh My Zsh perché è in grado di utilizzare plugin provenienti da qualsiasi repository GitHub, invece che esclusivamente dal repository di Oh My Zsh.

Nel prossimo paragrafo vi mostrerò come installare su Linux autojump e altri bundle con Antigen e il package manager APT.

Installazione di zsh, Antigen e autojump

Per installare il tutto, è sufficiente digitare i seguenti comandi:
• zsh: apt install zsh
• Antigen: curl -L git.io/antigen > ~/.config/antigen.zsh
• autojump: apt install autojump

Dovendo clonare repository, git è una dipendenza necessaria per Antigen, per cui sarà necessario installarlo nel caso in cui non sia già presente.

Configurazione

Per configurare zsh è necessario editare il file .zshrc contenuto nella propria home, che però al momento non sarà presente. Per crearlo è sufficiente utilizzare il comando zsh che ci risponderà con la seguente schermata.

Premiamo il tasto 0 per generare il file vuoto, ed editiamolo utilizzando l’editor che più preferiamo. Cancelliamo il commento inserito automaticamente e scriviamo la seguente configurazione, che riporto sia in uno screenshot sia in forma testuale per una migliore fruizione.

export PATH="/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin:$PATH"
source ~/.config/antigen.zsh
source ~/.profile
antigen bundle git
antigen bundle autojump
antigen bundle zsh-users/zsh-syntax-highlighting
antigen apply

Per impostare zsh come shell predefinita e procedere con l’installazione dei bundle, è necessario usare il comando con privilegi di sudo: chsh -s $(which zsh) $(whoami).

Una volta impostata zsh come shell predefinita, per rendere effettivo il cambiamento è necessario effettuare il logout dal sistema e accedere nuovamente al terminale. A questo punto saremo in grado di iniziare a sfruttare le potenzialità di zsh e autojump.

Utilizzo

Avviamo il terminale e stampiamo la variabile d’ambiente SHELL per verificare che zsh sia effettivamente la shell predefinita; nel caso in cui la variabile contenga zsh, allora possiamo procedere a testare  autojump.

Tramite comando pwd stampiamo il path in cui ci troviamo, e creiamo una cartella prova all’interno del percorso ~/intre/nicola/coltelli/ (ovviamente voi creerete il path che preferite). Visitiamo la cartella prova con il classico comando cd, in modo da permettere ad autojump di venire a conoscenza della cartella. A questo punto possiamo tornare nella nostra home tramite comando cd ~, o dovunque preferiamo spostarci. In ogni caso, il comando j prova ci porterà nella cartella appena creata, senza il bisogno di scrivere tutto il percorso e indipendentemente dalla posizione in cui ci troviamo.

Nell’immagine sottostante vi riporto le operazioni appena descritte.

Conclusioni

Con questo articolo spero di avervi incuriosito riguardo le potenzialità del comando autojump, a mio avviso indispensabile nella vita di ogni sviluppatore, permettendovi di velocizzare i vostri movimenti all’interno del file system ed evitare così frustranti typo.
Vi consiglio, nel caso in cui decidiate di utilizzare zsh, di dare un’occhiata alle possibilità di personalizzazione offerte sia a livello estetico sia a livello funzionale, come ad esempio l’integrazione con git.

Articolo scritto da