Používání zsh jako výchozího shellu na Macu

Počínaje systémem macOS Catalina používá Mac jako výchozí přihlašovací a interaktivní shell zsh. Zsh si můžete nastavit jaký výchozí shell i v dřívějších verzích macOS.

Ve výchozím nastavení používá Mac jako příkazový interpret přihlašovacího shellu a interaktivního shellu buď zsh, nebo bash:

  • zsh (Z shell) je výchozí shell pro všechny nově vytvořené uživatelské účty, počínaje macOS Catalina.

  • bash je výchozí shell v macOS Mojave a starších.

Zsh je vysoce kompatibilní s Bourne shellem (sh) a převážně kompatibilní se shellem bash, až na pár rozdílů. Víc informací o zsh a jeho propracovaném systému dokončování na příkazovém řádku zobrazíte tak, že v Terminálu zadáte man zsh.

Změna výchozího shellu

Ať už máte uživatelský účet konfigurovaný tak, aby používal zsh (doporučeno), bash nebo jiný shell, můžete změnit výchozí shell z příkazového řádku nebo z nastavení Uživatelé a skupiny.

Na příkazovém řádku

V Terminálu zadejte $ chsh -s cesta, kdecesta je jedna z cest uvedených v /etc/shells, například /bin/zsh, /bin/bash, /bin/csh, /bin/dash, /bin/ksh, /bin/sh nebo /bin/tcsh.

Z nastavení Uživatelé a skupiny

macOS Ventura nebo novější:

  1. Vyberte nabídku Apple  > Nastavení systému a pak na bočním panelu klikněte na Uživatelé a skupiny.

  2. Se stisknutou klávesou Ctrl klikněte na své uživatelské jméno nebo obrázek uživatele v seznamu uživatelů napravo a vyberte Pokročilé volby.

  3. Po zobrazení výzvy zadejte své uživatelské jméno a heslo.

  4. V nabídce Výchozí shell zvolte shell a kliknutím na OK uložte změny.

V dřívějších verzích macOS:

  1. Zvolte v nabídce Apple  > Předvolby systému a klikněte na Uživatelé a skupiny.

  2. Klikněte na zámekObrázek nemá popisek a zadejte své uživatelské jméno a heslo.

  3. S podrženou klávesou Control klikněte v seznamu uživatelů nalevo na svoje uživatelské jméno a zvolte Pokročilé volby.

  4. V nabídce Výchozí shell zvolte shell a kliknutím na OK uložte změny.

Jak používat jiné shelly beze změny toho výchozího

Pokud nechcete, aby se v nových oknech a panelech Terminálu používal výchozí přihlašovací shell:

  1. Otevřete Terminál a zvolte Terminál > Nastavení (nebo Předvolby).

  2. Na panelu Obecné vyberte „Příkaz (úplná cesta)“.

  3. Do sousedního pole zadejte jednu z cest uvedených v /etc/shells, například /bin/zsh, /bin/bash, /bin/csh, /bin/dash, /bin/ksh, /bin/sh, nebo /bin/tcsh.

Když použijete shell bash, zatímco je macOS nakonfigurovaný na používání jiného shellu, zobrazí se upozornění, že výchozím interaktivním shellem je aktuálně zsh. Upozornění můžete vypnout tím, že do ~/.bash_profile nebo ~/.profile přidáte tento příkaz:

export BASH_SILENCE_DEPRECATION_WARNING=1

Jak přejít na profil a příkazový řádek zsh

Pokud používáte profil bash, například k nastavování proměnných prostředí, aliasů nebo proměnných cest, měli byste přejít na používání jeho ekvivalentu zsh. Příklad:

  • .zprofile je ekvivalentem .bash_profile a spouští se při přihlašování, včetně přihlašování přes SSH.

  • .zshrc je ekvivalentem .bashrc a spouští se v každé nové relaci Terminálu.

Pokud používáte .profile (profil kompatibilní s POSIX), můžete nastavit, aby zsh automaticky načetl jeho nastavení. Uděláte to tak, že do .zprofile přidáte tento příkaz:

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

Některá nastavení z profilu bash se do profilu zsh dají přesunout beze změny. Například proměnné prostředí můžete nastavit takto: export MY_SETTING=1.

zsh rozpoznává jiné specifikátory příkazového řádku než bash a má čistší syntax na určení barevného výstupu, takže s ním nemusíte používat složité únikové sekvence v ANSI. Takto například vypadá syntax výchozího příkazového řádku bash z .bash_profile:

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

Při používání .zprofile nebo .zshrc převedete tento řádek bash na řádek zsh takto:

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

Další podrobnosti najdete na stránce uživatelské příručky pro zsh.

Testování shell skriptů

Chcete-li otestovat kompatibilitu skriptů se shelly kompatibilními s Bourne v macOS Catalina nebo novějším, můžete změnit /var/select/sh na /bin/bash, /bin/dash nebo /bin/zsh. Pokud změníte /var/select/sh na jiný shell než bash, pamatujte na to, že skripty používající syntaxi bash nemusí fungovat správně.

Zsh umí emulovat sh. Stačí, když spustíte příkaz zsh --emulate sh.

Informace o produktech, které nevyrábí Apple, a o nezávislých webech, které Apple nemá pod kontrolou a netestuje je, jsou poskytovány bez doporučení nebo záruky za jejich obsah. Apple v souvislosti s výběrem, výkonem nebo použitím webů nebo produktů třetích stran nepřebírá žádnou odpovědnost. Apple nijak nezaručuje přesnost nebo spolehlivost webů třetích stran. Další informace vám poskytne příslušný výrobce.

Datum zveřejnění: