Gdy zsh jest ustawiony jako powłoka logowania w systemie Mac OS X, gdy jest uruchamiany przez iTerm, zsh nie bierze pod uwagę, że jest uruchamiany jako powłoka logowania, chociaż jest uruchamiany jako `` -zsh '' (`` - '' jest umieszczane jako pierwszy znak arg [0]), co ma oznaczać, że powinien zaczynać się jako powłoka logowania.
Tak więc, kiedy ustawię powłokę logowania na bash, bash rozpoznaje to pierwsze „-” w $ 0 i działa jako powłoka logowania, ale zsh nie, chociaż wydaje się, że powinien.
Czy istnieje sposób, aby sprawić, by zsh rozpoznał „-” w arg [0], albo aby iTerm uruchomił powłokę z argumentem wiersza poleceń --login?
Odpowiedzi:
W iTerm -> Preferencje -> Zakładka Profile -> Sekcja Ogólne ustaw Polecenie na: / bin / zsh --login
źródło
/usr/local/bin/zsh --login
Zostaniesz poproszony o podanie hasła, ale po zaktualizowaniu ustawień wszelkie nowe sesje iTerm / Terminal, które uruchomisz na tym komputerze, będą domyślnie ustawione na zsh.
źródło
chsh
powie Ci coś w rodzaju „niestandardowej powłoki”, oznacza to, że musisz dodać ścieżkę nowej powłoki do/etc/shells
. Może się to zdarzyć, jeśli zmieniasz na przykład wersję zsh zainstalowaną przez homebrew, która ją umieszcza/usr/local/bin/zsh
.chsh -s $(which zsh)
można użyć do zapewnienia prawidłowej ścieżki.Przejdź do panelu Użytkownicy i grupy w Preferencjach systemowych -> Wybierz użytkownika -> Kliknij kłódkę, aby wprowadzić zmiany (lewy dolny róg) -> kliknij prawym przyciskiem myszy bieżącego użytkownika wybierz Opcje zaawansowane ... -> Wybierz powłokę logowania: / bin / zsh i OK
źródło
Polecenie zmiany powłoki podczas uruchamiania to
chsh -s <path_to_shell>
. Domyślne powłoki w systemie Mac OS X są instalowane wbin
katalogu, więc jeśli chcesz zmienić na domyślnezsh
, użyj następującegoJeśli używasz innej wersji programu
zsh
, może być konieczne dodanie tej wersji,/etc/shells
aby uniknąć niestandardowego komunikatu powłoki. Na przykład, jeśli chcesz wersję home-brew,zsh
musisz dodać/usr/local/bin/zsh
do wspomnianego pliku, co możesz zrobić jednym poleceniem,sudo sh -c "echo '/usr/local/bin/zsh' >> /etc/shells"
a następnie uruchomićLub jeśli chcesz zrobić wszystko za pomocą jednego polecenia, po prostu skopiuj i wklej to, jeśli masz już zainstalowany zsh
źródło
/etc/shells
w treści samej odpowiedzi.Czy próbowałeś edycji powłoki wpis w ustawieniach konta .
Przejdź do preferencji kont, odblokuj i kliknij prawym przyciskiem myszy swoje konto użytkownika, aby wyświetlić okno dialogowe Ustawienia zaawansowane . Twoja powłoka powinna być / bin / zsh i możesz odpowiednio edytować to wywołanie (tj. Dodać argument --login).
źródło
Użyj
login
narzędzia, aby utworzyć powłokę logowania. Załóżmy, że użytkownik, do którego chcesz się zalogować, ma nazwę użytkownika Alice i że zsh jest zainstalowany/opt/local/bin/zsh
(np. Nowsza wersja zainstalowana przez MacPorts). W iTerm 2 przejdź do Preferencje, Profile, wybierz profil, który chcesz skonfigurować i wprowadź polecenie :Zobacz,
man login
aby uzyskać więcej informacji na temat opcji.źródło