Używanie powłoki zsh jako domyślnej powłoki komputera Mac

Począwszy od wersji systemu macOS Catalina komputery Mac używają powłoki zsh jako domyślnej powłoki logowania i powłoki interaktywnej. Powłokę zsh można ustawić jako domyślną również w starszych wersjach systemu macOS.

Domyślnie komputer Mac używa powłoki zsh lub bash jako interpretatora wiersza poleceń powłoki logowania i powłoki interaktywnej:

  • zsh (powłoka Z) to domyślna powłoka wszystkich nowo utworzonych kont użytkowników począwszy od wersji systemu macOS Catalina.

  • bash — to domyślna powłoka w systemach macOS Mojave i starszych.

Powłoka zsh oferuje wyjątkową zgodność z powłoką Bourne'a (sh) i znaczną zgodność z powłoką bash z zachowaniem pewnych rozbieżności. Aby dowiedzieć się więcej o powłoce zsh oraz jej kompleksowym systemie wykonywania wiersza poleceń, wprowadź

Jak zmienić powłokę domyślną

Niezależnie od tego, czy konto użytkownika skonfigurowano pod kątem powłoki zsh (ustawienie zalecane), powłoki bash czy innej powłoki, domyślną powłokę można zmienić z poziomu wiersza poleceń lub ustawień Użytkownicy i grupy.

Z poziomu wiersza poleceń

W aplikacji Terminal wprowadź $ chsh -s ścieżka, gdzie ścieżka jest jedną ze ścieżek powłoki wymienionych w /etc/shells, takich jak /bin/zsh, /bin/bash, /bin/csh, /bin/dash, /bin/ksh, /bin/sh lub /bin/tcsh.

Z poziomu ustawień Użytkownicy i grupy

W systemie macOS Ventura lub nowszym:

  1. Wybierz kolejno menu Apple  > Ustawienia systemowe, a następnie kliknij pozycję Użytkownicy i grupy na pasku bocznym.

  2. Trzymając naciśnięty klawisz Control, kliknij swoją nazwę użytkownika lub swoje zdjęcie użytkownika na liście użytkowników po prawej stronie, a następnie wybierz pozycję Opcje zaawansowane.

  3. Po wyświetleniu monitu wpisz nazwę użytkownika i hasło.

  4. W menu „Powłoka logowania” wybierz powłokę, a następnie kliknij przycisk OK, aby zachować zmiany.

We wcześniejszych wersjach systemu macOS:

  1. Wybierz kolejno menu Apple  > Preferencje systemowe, a następnie kliknij opcję Użytkownicy i grupy.

  2. Kliknij kłódkęBrak tekstu alternatywnego dotyczącego obrazu, a następnie wprowadź nazwę użytkownika i hasło.

  3. Trzymając naciśnięty klawisz Control, kliknij swoją nazwę użytkownika na liście użytkowników po lewej, a następnie wybierz pozycję Opcje zaawansowane.

  4. W menu „Powłoka logowania” wybierz powłokę, a następnie kliknij przycisk OK, aby zachować zmiany.

Jak użyć innej powłoki bez zmiany powłoki domyślnej

Jeśli nie chcesz, aby aplikacja Terminal korzystała z domyślnej powłoki logowania w nowych kartach i oknach aplikacji Terminal:

  1. Otwórz aplikację Terminal i wybierz kolejno opcje Terminal > Ustawienia (lub Preferencje).

  2. W panelu Ogólne wybierz opcję „Polecenie (pełna ścieżka)”.

  3. W sąsiednim polu wprowadź jedną ze ścieżek powłoki z listy /etc/shells, np. /bin/zsh, /bin/bash, /bin/csh, /bin/dash, /bin/ksh, /bin/sh lub /bin/tcsh.

Po wywołaniu powłoki bash, gdy system macOS jest skonfigurowany do użycia innej powłoki, zostanie wyświetlony komunikat, że domyślną powłoką interaktywną jest teraz zsh. Aby ukryć to ostrzeżenie, możesz dodać to polecenie do ~/.bash_profile lub ~/.profile:

export BASH_SILENCE_DEPRECATION_WARNING=1

Jak przełączyć się na profil i monit zsh

Jeśli korzystasz z profilu bash, np. w celu konfiguracji zmiennych środowiskowych, aliasów lub zmiennych ścieżki, zalecamy przejście na odpowiednik powłoki zsh. Na przykład:

  • Profil odpowiada profilowi .bash_profile i jest uruchamiany podczas logowania, w tym za pośrednictwem SSH.

  • Profil odpowiada profilowi .bashrc i jest uruchamiany dla każdej nowej sesji aplikacji Terminal.

Jeśli korzystasz z profilu .profile (profilu zgodnego z systemem POSIX), możesz sprawić, aby powłoka zsh automatycznie odczytywała ustawienia profilu, dodając to polecenie do profilu .zprofile:

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

Możesz również przenieść niektóre ustawienia z profilu bash do profilu zsh bez modyfikacji. Przykład: aby ustawić zmienne środowiskowe: export MY_SETTING=1.

Powłoka zsh rozpoznaje inny zestaw specyfikacji monitu niż powłoka bash i ma bardziej przejrzystą składnię do określania wyjścia w kolorze, eliminując potrzebę korzystania ze złożonych sekwencji ucieczki ANSI. Oto przykładowa składnia domyślnego monitu powłoki bash z profilu .bash_profile:

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

Aby przekonwertować monit powłoki bash do monitu powłoki zsh podczas korzystania z profilu .zprofile lub .zshrc:

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

Więcej szczegółów znajdziesz na stronie podręcznika powłoki zsh.

Jak przetestować skrypty powłoki

Aby zweryfikować zgodność skryptu z powłokami kompatybilnymi z powłoką Bourne’a w systemie macOS Catalina lub nowszym, zmień ścieżkę /var/select/sh na /bin/bash, /bin/dash lub /bin/zsh. Jeśli zmienisz ścieżkę /var/select/sh na powłokę inną niż bash, pamiętaj, że skrypty wykorzystujące rozwiązania typu bashisms mogą nie działać poprawnie.

Powłoka zsh może emulować powłokę sh przez wykonanie polecenia zsh --emulate sh.

Przedstawione informacje dotyczące produktów, które nie zostały wyprodukowane przez firmę Apple, bądź niezależnych witryn internetowych, które nie są kontrolowane ani testowane przez firmę Apple, nie mają charakteru rekomendacji. Firma Apple nie ponosi odpowiedzialności za wybór, działanie lub wykorzystanie witryn bądź produktów innych firm. Firma Apple nie składa żadnych oświadczeń dotyczących dokładności ani wiarygodności witryn internetowych innych firm. Skontaktuj się z dostawcą, aby uzyskać dodatkowe informacje.

Data publikacji: