Bruk zsh som standardshell på Mac

Fra og med macOS Catalina bruker Mac zsh som standardshell for pålogging og interaktivt shell. Du kan også gjøre zsh om til standard i eldre versjoner av macOS.

Som standard bruker Mac enten zsh eller bash som kommandolinjetolker for påloggingsshell og interaktivt shell:

zsh har god kompatibilitet med Bourne-shell (sh) og er for det meste kompatibelt med bash, med noen ulikheter. Hvis du vil vite mer om zsh og det omfattende kommandolinje-fullføringssystemet, skriver du inn man zsh i Terminal.

Slik endrer du standardshellet

Uansett om brukerkontoen din er konfigurert til å bruke zsh (anbefalt), bash eller et annet shell, kan du endre standardshellet fra kommandolinjen eller Brukere og grupper innstillinger.

Fra kommandolinjen

I Terminal skriver du inn $ chsh -s path, der path er en av shellbanene som er oppført i /etc/shells, for eksempel /bin/zsh, /bin/bash, /bin/csh, /bin/dash, /bin/ksh, /bin/sh eller /bin/tcsh.

Fra innstillinger for Brukere og grupper

I macOS Ventura eller nyere:

  1. Velg Apple-menyen  > Systeminnstillinger, og klikk deretter på Brukere og grupper i sidepanelet.

  2. Kontroll-klikk på brukernavnet i listen over brukere til venstre, og velg deretter Avanserte valg.

  3. Skriv inn brukernavnet og passordet når du blir bedt om det.

  4. Velg et shell fra menyen «Påloggings-shell», og klikk på OK for å lagre endringene.

I tidligere versjoner av macOS:

  1. Velg Apple-menyen  > Systemvalg, og klikk deretter på Brukere og grupper.

  2. Klikk på låsenNo alt supplied for Image, og skriv deretter inn brukernavnet og passordet ditt.

  3. Kontroll-klikk på brukernavnet i listen over brukere til venstre, og velg Avanserte valg.

  4. Velg et shell fra menyen «Påloggings-shell», og klikk på OK for å lagre endringene.

Slik bruker du et annet shell uten å endre standarden

Dette gjør du hvis du ikke vil at Terminal skal bruke standardshellet for pålogging i de nye Terminal-vinduene og -fanene:

  1. Åpne Terminal og velg Terminal > Innstillinger (eller Valg).

  2. Velg «kommando (fullstendig bane)» fra Generelt-panelet.

  3. Skriv inn en av shellbanene som er oppført i /etc/shells, for eksempel /bin/zsh, /bin/bash, /bin/csh, /bin/dash, /bin/ksh, /bin/sh eller /bin/tcsh, i feltet som kommer opp.

Hvis du starter bash-shellet mens macOS er konfigurert til å bruke et annet shell, ser du en melding om at det interaktive shellet som brukes som standard, nå er zsh. Hvis du vil stoppe denne advarselen, kan du legge til følgende kommando i ~/.bash_profile eller ~/.profile:

export BASH_SILENCE_DEPRECATION_WARNING=1

Slik bytter du til en zsh-profil og -melding

Hvis du bruker en bash-profil, for eksempel til å angi miljøvariabler, aliaser eller banevariabler, bør du bytte til å bruke en tilsvarende zsh-profil. Eksempel:

  • .zprofile er tilsvarende .bash_profile og kjører ved pålogging, inkludert over SSH

  • .zshrc er tilsvarende .bashrc og kjører for hver nye Terminal-økt

Hvis du bruker .profile (en POSIX-kompatibel profil), kan du få zsh til å lese innstillingene automatisk ved å legge til denne kommandoen i .zprofile:

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

Du kan også flytte bestemte innstillinger fra en bash-profil til en zsh-profil uten å endre dem. Du kan for eksempel angi miljøvariabler: eksporter MY_SETTING=1.

zsh gjenkjenner andre meldingsspesifikasjoner enn bash og har en renere syntaks for å spesifisere fargede utdata, noe som gjør at du ikke trenger å bruke komplekse ANSI-avslutningssekvenser. Her er for eksempel syntaksen til en standard bash-melding fra .bash_profile:

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

Slik konverterer du bash-meldingen til en zsh-melding når du bruker .zprofile eller .zshrc:

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

Se zsh-siden for mer informasjon.

Slik tester du shellskriptene

Hvis du vil teste skriptkompatibiliteten med Bourne-kompatible shell i macOS Catalina eller nyere, kan du endre /var/select/sh til /bin/bash, /bin/dash eller /bin/zsh. Hvis du endrer /var/select/sh til et annet shell enn bash, må du være oppmerksom på at skript som bruker bash, kanskje ikke fungerer som de skal.

Du kan få zsh til å emulere sh ved å bruke kommandoen zsh --emulate sh.

Informasjon om produkter som ikke er laget av Apple, samt uavhengige nettsteder som ikke kontrolleres eller testes av Apple, er gitt uten anbefaling eller godkjenning. Apple påtar seg ikke noe ansvar for utvalget av, bruken av eller ytelsen til nettsteder og produkter fra tredjeparter. Apple garanterer ikke for nøyaktigheten eller påliteligheten til tredjeparters nettsteder. Kontakt leverandøren for mer informasjon.

Publiseringsdato: