Utilizarea zsh ca shell implicit pe Mac

Începând cu macOS Catalina, computerul tău Mac utilizează zsh drept shell de login implicit și shell interactiv. Poți configura zsh ca shell implicit și în versiunile anterioare de macOS.

În mod implicit, computerul Mac utilizează fie zsh, fie bash drept interpretor al liniei de comandă pentru shell de login și shell interactiv:

zsh este extrem de compatibil cu shell Bourne (sh), fiind compatibil în principal cu bash, cu anumite diferențe. Pentru mai multe informații despre zsh și sistemul său cuprinzător de completare a liniei de comandă, introdu man zsh

Cum poți modifica shell implicit

Indiferent dacă contul de utilizator este configurat să utilizeze zsh (recomandat), bash sau alt shell, poți modifica shell implicit din setăconfigurările Utilizatori și grupuri sau linia de comandă.

Din linia de comandă

În Terminal, introdu calea $ chsh -s, unde calea este una dintre căile shell listate în /etc/shells, cum ar fi /bin/zsh, /bin/bash, /bin/csh, /bin/Dash, /bin/ksh, /bin/sh sau /bin/tcsh.

Din setările configurările Utilizatori și grupuri

În macOS Ventura sau o versiune ulterioară:

  1. Alege meniul Apple  > Configurări sistem, apoi dfă clic pe Utilizatori și grupuri în bara laterală.

  2. Fă control clic pe numele de utilizator sau pe imaginea utilizatorului în lista de utilizatori din dreapta, apoi alege Opțiuni avansate.

  3. Când ți se solicită, introdu numele de utilizator și parola.

  4. Alege un shell din meniul „Shell de login”, apoi fă clic pe OK pentru a salva modificările.

În versiunile anterioare de macOS:

  1. Alege meniul Apple  > Preferințe sistem, apoi fă clic pe Utilizatori și grupuri.

  2. Fă clic pe ÎncuietoareNo alt supplied for Image, apoi introdu numele tău de utilizator și parola.

  3. Fă control clic pe numele de utilizator în lista de utilizatori din stânga, apoi alege Opțiuni avansate.

  4. Alege un shell din meniul „Shell de login”, apoi fă clic pe OK pentru a salva modificările.

Cum să utilizezi un shell diferit fără a-l modifica pe cel implicit

Dacă nu dorești ca terminalul să utilizeze shell-ul de login implicit în noile ferestre și file de terminal:

  1. Deschide Terminal, apoi alege Terminal > Configurări (sau Preferințe).

  2. Din panoul General, selectează „Comandă (cale completă)”.

  3. În câmpul furnizat, introdu una dintre căile shell enumerate în /etc/shells, cum ar fi /bin/zsh, /bin/bash, /bin/csh, /bin/dash, /bin/ksh, /bin/sh sau /bin/tcsh.

Dacă invoci shell bash când macOS este configurat pentru a utiliza un shell diferit, se afișează mesajul că shell-ul interactiv implicit este acum zsh. Pentru a opri sonorul de la această avertizare, poți să adaugi această comandă la ~/.bash_profile sau ~/.profile:

export BASH_SILENCE_DEPRECATION_WARNING=1

Cum să treci la un profil zsh și solicitare

Dacă utilizezi un profil bash, de exemplu pentru a configura variabile de mediu, aliasuri sau variabile de cale, trebuie să treci la utilizarea unui echivalent zsh. De exemplu:

  • .zprofile este echivalent cu .bash_profile și se execută la login, inclusiv prin SSH

  • .zshrc este echivalent cu .bashrc

Dacă utilizezi .profile (un profil compatibil cu POSIX), poți determina ca zsh să citească automat configurările adăugând această comandă la .zprofile

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

De asemenea, poți muta unele configurări de la un profil bash la un profil zsh fără modificări. De exemplu, pentru a configura variabilele de mediu: export MY_SETTING=1.

zsh recunoaște un set de specificatori de solicitare diferit de bash și are o sintaxă mai adecvată pentru specificarea ieșirii colorate, eliminând necesitatea de a utiliza secvențele de părăsire ANSI complexe. De exemplu, iată o sintaxă pentru o solicitare bash implicită din .bash_profile:

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

Pentru a converti solicitarea bash într-o solicitare zsh când utilizezi .zprofile sau .zshrc

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

Pentru mai multe detalii, consultă pagina de manual zsh.

Cum să testezi scripturile shell

Pentru a testa compatibilitatea scriptului cu shell-uri compatibile cu Bourne în macOS Catalina, poți să modifici /var/select/sh în /bin/bash, /bin/dash sau /bin/zsh. Dacă modifici /var/select/sh în alt shell decât bash, este posibil ca scripturile care utilizează elemente specifice bash să nu funcționeze în mod adecvat.

zsh poate să emuleze sh prin executarea comenzii zsh --emulate sh.

Informațiile despre produsele care nu sunt fabricate de Apple sau despre site-urile web independente care nu sunt controlate sau testate de Apple sunt furnizate fără recomandare sau aprobare. Apple nu își asumă nicio responsabilitate în ceea ce privește selectarea, funcționarea sau utilizarea site-urilor web sau produselor de la terți. Apple nu face niciun fel de declarații privind acuratețea sau fiabilitatea site-urilor web terțe. Contactează furnizorul acestor produse pentru a obține mai multe informații.

Data publicării: