Brug zsh som standardshell på Mac

Fra og med macOS Catalina bruger din Mac zsh som standardshell til login og som interaktiv shell. Du kan også gøre zsh til standard i tidligere versioner af macOS.

Mac bruger som standard enten zsh eller bash som kommandolinjefortolker til shell til login og interaktiv shell:

zsh er meget kompatibel med Bourne-shell (sh) og i de fleste tilfælde kompatibel med bash, med visse forskelle. Hvis du vil have mere at vide om zsh og det omfattende system til kommandolinjeudførelse, skal du indtaste man zsh i Terminal.

Sådan ændrer du standardshell

Uanset om din brugerkonto er konfigureret til at bruge zsh (anbefalet), bash eller en anden shell, kan du ændre standardshell fra kommandolinjen eller indstillingerne Brugere & grupper.

Fra kommandolinjen

Skriv $ chsh -s path i Terminal, hvor path er en af shellstierne, der er angivet på listen i /etc/shells, f.eks. /bin/zsh, /bin/bash, /bin/csh, /bin/dash, /bin/ksh, /bin/sh eller /bin/tcsh.

Fra indstillingerne Brugere & grupper

I macOS Ventura eller en nyere version:

  1. Vælg Apple-menuen  > Systemindstillinger, og klik på Brugere & grupper i indholdsoversigten.

  2. Ctrl-klik på dit brugernavn eller brugerbillede på listen over brugere til højre, og vælg Avancerede indstillinger.

  3. Indtast dit brugernavn og din adgangskode, når du bliver bedt om det.

  4. Vælg en shell fra menuen "Shell til login", og klik på OK for at arkivere ændringerne.

I tidligere versioner af macOS:

  1. Vælg Apple-menuen  > Systemindstillinger, og klik på Brugere og grupper.

  2. Klik på låsenNo alt supplied for Image, og indtast derefter dit brugernavn og din adgangskode.

  3. Ctrl-klik på dit brugernavn på listen over brugere til venstre, og vælg Avancerede indstillinger.

  4. Vælg en shell fra menuen "Shell til login", og klik på OK for at arkivere ændringerne.

Sådan bruger du en anden shell uden at ændre standardshell

Hvis du ikke ønsker, at Terminal bruger standardshellen til login i nye Terminal-vinduer og -faner:

  1. Åbn Terminal, og vælg derefter Terminal > Indstillinger.

  2. Fra vinduet Generelt skal du vælge "Kommando (komplet sti)."

  3. I feltet ved siden af skal du indtaste en af shellstierne, der er angivet på listen i /etc/shells, som f.eks. /bin/zsh, /bin/bash, /bin/csh, /bin/dash, /bin/ksh, /bin/sh eller /bin/tcsh.

Hvis du åbner bash-shellen, mens macOS er konfigureret til at bruge en anden shell, får du vist en besked om, at den interaktive standardshell nu er zsh. Du kan fjerne advarslen ved at føje følgende kommando til ~/.bash_profile eller ~/.profile:

export BASH_SILENCE_DEPRECATION_WARNING=1

Sådan skifter du til en zsh-profil og -skærm

Hvis du bruger en bash-profil, til f.eks. at indstille miljøvariabler, aliasser eller stivariabler, skal du skifte over til at bruge en tilsvarende zsh. Eksempel:

  • .zprofile svarer til .bash_profile og kører ved login, herunder via SSH

  • .zshrc svarer til .bashrc og kører ved hver ny Terminal-session

Hvis du bruger .profile (en profil, der overholder POSIX), kan du få zsh til automatisk at læse sine indstillinger ved at føje følgende kommando til .zprofile:

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

Du kan også flytte nogle indstillinger fra en bash-profil til en zsh-profil uden ændringer. Hvis du f.eks. vil indstille miljøvariablerne: export MY_SETTING=1.

zsh genkender et andet sæt promptangivelser end bash og har en renere syntaks til at specificere farvelagt output, hvilket eliminerer behovet for at bruge komplekse ANSI-escape-sekvenser. Her er f.eks. syntaksen for en standardbash-prompt fra .bash_profile:

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

Sådan konverterer du denne bash-prompt til en zsh-prompt, når du bruger .zprofile eller .zshrc:

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

Du finder flere oplysninger på siden for zsh man.

Sådan tester du dine shellscripts

Hvis du vil teste scriptkompatibiliteten med Bourne-kompatible shells i macOS Catalina eller en nyere version, kan du ændre /var/select/sh til /bin/bash, /bin/dash eller /bin/zsh. Hvis du ændrer /var/select/sh til en anden shell end bash, skal du være opmærksom på, at scripts, der bruger bashismer, måske ikke fungerer korrekt.

Du kan få zsh til at emulere sh ved at udføre kommandoen zsh --emulate sh.

Oplysninger om produkter, der ikke er produceret af Apple, eller uafhængige websteder, der ikke styres eller testes af Apple, leveres uden Apples anbefaling eller godkendelse. Apple påtager sig intet ansvar, hvad angår valg, ydeevne eller brug af websteder eller produkter fra andre producenter. Apple giver ingen erklæringer med hensyn til nøjagtigheden eller pålideligheden af websteder fra andre producenter. Kontakt producenten for at få flere oplysninger.

Udgivelsesdato: