Usare zsh come shell di default su Mac

A partire da macOS Catalina, Mac usa zsh come shell di login e shell interattiva di default. Puoi impostare zsh come shell di default anche nelle versioni precedenti di macOS.

Di default, Mac usa zsh o bash come interprete della riga di comando per la shell di login e la shell interattiva:

zsh è altamente compatibile con la shell Bourne (sh) e sostanzialmente compatibile con bash, con alcune differenze. Per ulteriori informazioni su zsh e sul relativo sistema di completamento della riga di comando, inserisci man zsh in Terminale.

Come cambiare la shell di default

Se il tuo account utente è configurato per usare zsh (scelta consigliata), bash o un'altra shell, puoi cambiare la shell di default dalla riga di comando o dalle impostazioni Utenti e gruppi.

Dalla riga di comando

In Terminale, inserisci $ chsh -s path, in cui path è uno dei percorsi delle shell elencati in /etc/, come /bin/zsh, /bin/bash, /bin/csh, /bin/dash, /bin/ksh, /bin/sh, or /bin/tcsh.

Dalle impostazioni Utenti e gruppi

In macOS Ventura o versioni successive:

  1. Scegli il menu Apple  > Impostazioni di Sistema, poi fai clic su Utenti e gruppi nella barra laterale.

  2. Fai clic tenendo premuto il tasto Ctrl sul tuo nome utente o sulla tua immagine utente nell'elenco degli utenti a destra, poi scegli Opzioni avanzate.

  3. Quando richiesto, inserisci il tuo nome utente e la password.

  4. Scegli una shell dal menu “Shell di login”, poi fai clic su OK per salvare le modifiche.

Nelle versioni precedenti di macOS:

  1. Scegli il menu Apple  > Preferenze di Sistema, poi fai clic su Utenti e gruppi.

  2. Fai clic sul lucchettoalt provided for Image, quindi inserisci il tuo nome utente e la tua password.

  3. Fai clic tenendo premuto il tasto Ctrl sul tuo nome utente nell'elenco di utenti a sinistra, poi scegli Opzioni avanzate.

  4. Scegli una shell dal menu “Shell di login”, poi fai clic su OK per salvare le modifiche.

Come utilizzare una shell diversa senza cambiare quella di default

Se non desideri che Terminale usi la shell di login di default nelle nuove finestre e nei nuovi pannelli di Terminale:

  1. Apri Terminale, poi scegli Terminale > Impostazioni (o Preferenze).

  2. Dal pannello Generali, seleziona “Comando (percorso completo)”.

  3. Nel campo adiacente, inserisci uno dei percorsi delle shell elencati in /etc/shells, come /bin/zsh, /bin/bash, /bin/csh, /bin/dash, /bin/ksh, /bin/sh o /bin/tcsh.

Se richiami la shell bash mentre macOS è configurato per l'uso di una shell diversa, compare un messaggio in cui viene indicato che la shell interattiva di default è attualmente impostata su zsh. Per ignorare questo avviso, puoi aggiungere questo comando a ~/.bash_profile o ~/.profile:

export BASH_SILENCE_DEPRECATION_WARNING=1

Come passare a un prompt e un profilo zsh

Se usi un profilo bash, come ad esempio per l'impostazione di variabili di ambiente, alias o variabili di percorso, devi passare a un profilo zsh equivalente. Per esempio:

  • .zprofile equivale a .bash_profile

  • .zshrc equivale a .bashrc e viene eseguito per ogni nuova sessione di Terminale

Se usi .profile (un profilo conforme a POSIX), puoi fare in modo che zsh legga automaticamente le relative impostazioni tramite l'aggiunta di questo comando a .zprofile:

[[ -e ~/.profile ]] && emulate sh -c 'source ~/.profile'

Inoltre, puoi spostare alcune impostazioni da un profilo bash a un profilo zsh senza modifiche. Ad esempio, per impostare variabili di ambiente: export MY_SETTING=1.

zsh riconosce una serie di identificatori di prompt diversa rispetto a bash e ha una sintassi più “pulita” per specificare l'output colorato, eliminando la necessità di usare sequenze di escape ANSI complesse. Ad esempio, ecco la sintassi di un prompt bash di default da .bash_profile:

export PS1="\[\e[92;40m\]\h\[\e[m\]:\[\e[93m\]\W\[\e[m\] \\$ "

Per convertire un prompt bash in un prompt zsh quando usi .zprofile o .zshrc:

export PS1="%10F%m%f:%11F%1~%f \$ "

Per ulteriori dettagli, consulta la pagina man su zsh.

Come eseguire il test degli script delle shell

Per testare la compatibilità degli script con shell compatibili con Bourne in macOS Catalina o versioni successive, puoi modificare /var/select/sh in /bin/bash, /bin/dash o /bin/zsh. Se modifichi /var/select/sh in una shell diversa da bash, tieni presente che gli script che usano bashism potrebbero non funzionare correttamente.

Puoi far sì che zsh emuli sh tramite l'esecuzione del comando zsh --emulate sh.

Le informazioni su prodotti non fabbricati da Apple, o su siti web indipendenti non controllati o testati da Apple, non implicano alcuna raccomandazione o approvazione. Apple non si assume alcuna responsabilità in merito alla scelta, alle prestazioni o all'utilizzo di prodotti o siti web di terze parti. Apple non esprime alcuna opinione in merito alla precisione o all'affidabilità dei siti web di terze parti. Per ulteriori informazioni contatta il fornitore.

Data di pubblicazione: