Próbuję zmienić domyślną powłokę z bash na zsh w cygwin.
- Normalne polecenie unixowe
chsh
nie jest dostępne w cygwin - Wygląda na to, że plik etc / passwd nie jest już używany w istniejących wersjach cygwina.
Jak inaczej można zmienić domyślną powłokę?
sh.exe
sięzsh.exe
w Ustawieniach Conemu> Uruchomienie> Zadania> bash Cygwin Bash>set CHERE_INVOKING=1 & %ConEmuDrive%\CygWin\bin\sh.exe --login -i
CygWin\bin\zsh.exe
.sh.exe --login
uruchomi Bash, jak to zmienić? Czy to w ogóle nie ma znaczenia? Wyobrażam sobie, żesh.exe --login
niepotrzebnie wykonuje sięsh
przedzsh
...set CHERE_INVOKING=1 & %ConEmuDrive%\CygWin\bin\zsh.exe --login -i
HTHsh.exe
. Teraz zdaję sobie sprawę, że po prostu nie przeczytałem twojej wiadomości poprawnie :-)-l
:mintty.exe -i /Cygwin-Terminal.ico /usr/bin/zsh -l -
Jeśli uruchamiasz
mintty.exe
bezpośrednio lub uruchamiasz Cygwin Terminal z menu Start lub pulpitu (który jest skrótem do mintty.exe), możesz ustawić zmienną środowiskową SHELL w systemie Windows na/usr/bin/zsh
.W systemie Windows 7:
Reszta powinna być zrozumiała.
źródło
Skopiowano z mojej odpowiedzi na temat przepełnienia stosu :
Zamiast tworzyć plik passwd, który Cygwin zaleca przeciwko 1 , możesz edytować /etc/nsswitch.conf . Dodaj lub edytuj następujący wiersz:
Wadą / górą tej metody jest to, że jeśli masz wielu użytkowników, zmiana dotyczy wszystkich z nich. Wadą / zaletą jest to, że jest to bardzo proste. Jedynym haczykiem jest to, że musisz ponownie uruchomić Cygwin.
Jeśli zrobić użytku mkpasswd po tej zmianie, będzie korzystał z nowego domyślną powłokę dla wszystkich użytkowników, które są dopuszczone do zalogowania.
1 Dokumentacja mkpasswd mówi:
Naprawdę nie mogę znaleźć żadnego solidnego uzasadnienia w podręczniku użytkownika , poza wzmianką, że będziesz musiał ponownie wygenerować pliki / etc / passwd i / etc / group, jeśli Twoi użytkownicy i grupy się zmienią, co, jak sądzę, jest wystarczająco przyzwoite powód. Mogę powiedzieć, że proces ten jest nieco podatny na błędy dla początkujących.
źródło
To jest hack: umieść to jako pierwszą linię swojego
~/.bash_profile
:źródło