Di recente, Apple ha annunciato che dalla prossima versione di macOS, Catalina, adotterà zsh come shell predefinita in sostituzione di bash. Come studente di scienze dei dati in erba, avendo imparato tutta la mia linea di comando su bash, mi sono chiesto come questo mi avrebbe influenzato. Quello che ho imparato in bash è diventato inutile? Diamo un’occhiata ai due e scopriamolo.
La “Bourne-again shell” o bash in breve è stata creata nel 1989 da Brian Fox. È una shell Unix e un linguaggio di comando scritto come sostituto della shell Bourne. È stato distribuito ampiamente come la shell di accesso predefinita per la maggior parte delle distribuzioni Linux e macOS di Apple. Bash ha introdotto miglioramenti rispetto alla shell Bourne, compresa la sua capacità di essere usato come un linguaggio di scripting. Gli utenti potevano scrivere i propri script di shell per automatizzare i compiti.
“Z shell” o zsh in breve, è stata creata nel 1990 da Paul Falstad. È anche una shell Unix e un linguaggio di comando basato su Bourne shell con un gran numero di miglioramenti, comprese alcune caratteristiche di bash. Zsh ha anche la capacità di essere usato come un linguaggio di scripting con la possibilità di utilizzare script di shell. Attualmente ha un forte seguito e supporto da parte della comunità.
Bash vs. zsh:
Per la maggior parte bash e zsh sono quasi identici, il che è un sollievo. La navigazione è la stessa tra i due. I comandi che hai imparato per bash funzioneranno anche in zsh, sebbene possano funzionare in modo diverso in uscita. Zsh sembra essere molto più personalizzabile di bash. Ora passerò in rassegna alcune caratteristiche e come differiscono in ciascuna.
Autocompletamento
Una funzione utile di entrambe le shell è il completamento automatico delle schede. In entrambe le shell è possibile digitare il comando seguito dalla pressione di tab per visualizzare le opzioni disponibili dopo il comando. Il tab-completion di Zsh è più ricco di funzioni, dandovi una lista di opzioni che possono essere poi navigate e selezionate con i tasti freccia piuttosto che dover lottare con le maiuscole o pasticciare con lunghe liste di cartelle con spazi. Zsh ha persino il completamento dei tab per Git!
Correzione automatica
Se si scrive in fretta e furia, in zsh se si fa un refuso mentre si scrive un comando, per esempio, la correzione ortografica è integrata, rileverà automaticamente il refuso e chiederà se si vuole correggerlo.
Supporto per plug-in
Zsh ha una comunità online chiamata Oh My Zsh che è una delle opzioni più vecchie e popolari per gestire zsh. Offre oltre 250 plugin e 140 temi diversi forniti dalla comunità. Questo permette agli utenti di lavorare in un ambiente impostato specificamente per il loro flusso di lavoro. Sotto c’è un’anteprima del plugin git.
Bash ha un ampio set di funzioni di programmazione come i costrutti di looping e condizionali, le espansioni di tilde e parentesi graffe, e l’uso di alias. Bash è anche una shell più vecchia e consolidata, il che significa che ha anche tonnellate di risorse online per trovare ciò che è necessario fare. Molte delle caratteristiche di zsh possono essere replicate in bash attraverso vari metodi.
Take Zsh for a Spin!
Vuoi provare zsh prima del rilascio di macOS catalina? Se sei su macOS molto probabilmente hai già zsh sul tuo computer. Puoi controllare eseguendo il comando: which zsh
Se zsh è presente sul tuo sistema verrà restituito il percorso per l’installazione. Da lì per passare a zsh esegui il comando: chsh -s /bin/zsh e ti verrà richiesta la password.
Per iniziare a usare zsh riavvia il tuo terminale.
Se vuoi tornare a bash, esegui il comando: quale bash , che ti darà la posizione della tua installazione di bash. Poi esegui: chsh -s /bin/bash
Riavvia il tuo terminale, e sarai di nuovo nel territorio familiare.
Quindi qual è meglio? Il problema attuale con la versione di bash su macOS è che è una versione 3.2 non aggiornata. La versione attuale è la 5.0. Si ritiene che ciò sia dovuto principalmente a problemi di licenza alla Apple. Il passaggio ad una shell aggiornata sarà un cambiamento gradito.
Sembra essere soprattutto una preferenza quando si tratta di scegliere una piuttosto che l’altra. Molte delle comodità fornite da zsh possono essere fatte funzionare anche in bash. A mio parere, zsh mi sembra più utile come nuovo utente di shell. Il tuo tempo può variare.
Per maggiori informazioni su Oh-My-Zsh un eccellente framework guidato dalla comunità per gestire la tua configurazione di zsh, visita qui: https://github.com/robbyrussell/oh-my-zsh