Próbuję zmienić Powłokę logowania systemu Mac OS X z bash
na zsh
. Widzę, że jest to możliwe w Mac OS X Leopard , ale dla OS X Lion nie mogę znaleźć sposobu. Naprawdę mam nadzieję, że można zmienić powłokę logowania z bash na coś innego. Nie jestem do końca pewien, gdzie szukać.
90
if [ -x /usr/local/bin/zsh ] ; then exec /usr/local/bin/zsh fi
. Wskazówka, modyfikując skrypty startowe powłoki, upewnij się, że shell działa, i uruchom nowy w innym oknie - jeśli go zepsujesz, nadal masz łatwe miejsce, aby go naprawić.Odpowiedzi:
Możesz zmienić powłokę użytkownika za pomocą następującego polecenia:
Uwaga: Aby zmienić ją na niestandardową powłokę, upewnij się, że jej ścieżka została dodana do
/etc/shells
pliku.źródło
/usr/local/bin/zsh
. Niestety, chsh na to nie pozwalachsh: /usr/local/bin/zsh: non-standard shell
. Odpowiedź Daniela Becka jest odpowiednim rozwiązaniem w tym przypadku./usr/local/bin/zsh
do/etc/shells
i powinno rozwiązać ten problem.==> Caveats To use this build of Zsh as your login shell, add it to /etc/shells.
/etc/shells
jest własnością roota (superużytkownika) i jest do zapisu tylko. Możesz na przykład użyćsudo vi /etc/shells
polecenia usesudo
( s uper u ser do ) do uruchomieniavi
edytora w celu edycji/etc/shells
. Właśnie przetestowałem na moim systemie i potwierdziłem, że NIE jest on chroniony przez System Integrity Protection, więc powinieneś być w stanie edytować go jako root bez przeskakiwania przez obręcze, aby wyłączyć SIP.Co zabawne, ta sama metoda, do której prowadzi łącze w pytaniu, nadal działa w systemie OS X Lion i Sierra (10.12). Jedyna różnica: okienko preferencji nosi nazwę Użytkownicy i grupy zamiast Kont .
źródło
Lub:
źródło
brew install zsh
.sudo dscl . change /users/$USER UserShell /bin/bash $(which zsh)
Jeśli ktoś zastanawia się nad tym samym problemem na macOS Sierra i następujące polecenie pozwoliło mi zmienić powłokę bez problemów:
źródło