Come usare Zsh (o un'altra shell) in Windows 10
Ubuntu e le altre distribuzioni Linux disponibili su Windows 10 usano la shell Bash di default, ma questa non è la tua unica opzione. Windows ha un livello di compatibilità per l'esecuzione del software Linux su Windows e puoi usarlo per eseguire Zsh o qualsiasi altra shell tu preferisca.
La shell Zsh ora funziona su Windows 10. Puoi fare in modo che Bash esegua automaticamente Zsh ogni volta che lo lanci. Oh My Zsh funziona anche per personalizzare la tua shell Zsh in Windows, proprio come fa Linux.
Inizia con l'installazione di Bash
Prima di installare la shell scelta, devi prima abilitare il sottosistema Windows per Linux e installare un ambiente Linux. Useremo Ubuntu come esempio in questo articolo, ma puoi eseguire un processo simile su openSUSE e altre distribuzioni Linux.
Se hai già installato Bash su Windows, sei a posto.
Come installare Zsh (o un'altra shell)
Dopo aver installato Bash, devi solo installare la shell che desideri utilizzare da Bash. Lo fai con il comando apt-get, proprio come avresti installato qualsiasi altro pacchetto software su Ubuntu Linux.
Per installare Zsh su Ubuntu, apri la shell di Bash ed esegui il seguente comando:
sudo apt-get install zsh
Premere "y" quando richiesto, quindi premere Invio per continuare. Apt-get scarica e installa automaticamente Zsh dai repository di Ubuntu.
Su altre distribuzioni Linux, basta usare il comando di installazione del software della tua distribuzione Linux. Ad esempio, dovrai usare il comando zypper su openSUSE.
Se vuoi usare un'altra shell, specifica il nome di quella shell invece di Zsh. Ad esempio, abbiamo visto report che anche la shell Fish funziona bene. Per installarlo, devi eseguire il seguente comando:
sudo apt-get install fish
Come avviare Zsh (o un'altra shell)
Per avviare Zsh o un'altra shell dopo l'installazione, digita il nome della shell nel prompt di Bash, quindi premi Invio. Ad esempio, per iniziare a utilizzare Zsh da Bash, devi semplicemente digitare:
zsh
Ti verrà richiesto di passare attraverso il processo di configurazione iniziale di Zsh e creare un profilo di configurazione la prima volta che lo lanci. Digitare "2" per creare un profilo di configurazione con le impostazioni predefinite consigliate.
Per lasciare la shell zsh e tornare a Bash, basta eseguire il seguente comando:
Uscita
Come avviare direttamente Zsh
È possibile avviare la shell Zsh direttamente con un comando simile al seguente:
wsl zsh bash -c zsh ubuntu -c zsh opensuse-42 -c zsh sles-12 -c zsh
Come rendere Bash Avvia automaticamente Zsh
Puoi anche fare in modo che Bash passi automaticamente a Zsh ogni volta che lo lanci.
Per fare ciò, è necessario modificare il file .bashrc. Bash esegue i comandi in questo file ogni volta che inizia. Puoi apportare le modifiche utilizzando qualsiasi editor di testo che ti piace, incluso vi, ma spiegheremo il processo usando nano.
Per aprire il file .bashrc in nano, eseguire il seguente comando:
nano .bashrc
Aggiungi le seguenti righe al file. Potresti semplicemente aggiungere la riga "exec zsh", ma le seguenti linee aggiuntive assicurano che Bash lancia Zsh solo quando apri una finestra di Bash. Questo evita di causare problemi ad altri software.
# Avvia Zsh if [-t 1]; quindi esegui zsh fi
Se volessi eseguire una shell diversa, dovresti inserire il comando di quella shell invece del comando "zsh".
Dopo aver apportato le modifiche, premere Ctrl + O e quindi Invio per salvare il file. Premi Ctrl + X per uscire da nano in seguito.
Ora, ogni volta che apri il collegamento di Ubuntu (o un altro collegamento di distribuzione Linux) su Windows, si avvia con la shell Zsh.
Per annullare la modifica, modifica nuovamente il file .bashrc ed elimina la sezione che hai aggiunto.
Tutte le shell Linux alternative dovrebbero funzionare, in teoria. In caso contrario, Microsoft ha bisogno di correggere il sottosistema Windows sottostante per Linux, in modo tale da eseguire correttamente più software Linux. È possibile visualizzare i bug esistenti e segnalare nuovi bug a Microsoft nella pagina GitHub di BashOnWindows.