Я пытаюсь изменить оболочку по умолчанию с bash на zsh в cygwin.
- Обычная команда unix
chshнедоступна в cygwin - Файл etc / passwd, кажется, больше не используется в существующих версиях cygwin.
Так как еще можно изменить оболочку по умолчанию?
Я пытаюсь изменить оболочку по умолчанию с bash на zsh в cygwin.
chshнедоступна в cygwinТак как еще можно изменить оболочку по умолчанию?
Ответы:
Ответ зависит от того, как вы запустите Cygwin.
Если вы запускаете Cygwin с Cygwin.bat , измените последнюю строку /Cygwin.bat(обычно C:\cygwin\или C:\cygwin64\).
Если вы запустите Cygwin с помощью mintty , то добавьте оболочку в качестве параметра. mintty /usr/bin/zsh -
CygWin\bin\zsh.exe. sh.exe --loginзапустит Bash, как вы это измените? Или это все равно не имеет значения? Я предполагаю, sh.exe --loginчто излишне выполняется shраньше zsh...
set CHERE_INVOKING=1 & %ConEmuDrive%\CygWin\bin\zsh.exe --login -ihth
sh.exe. Теперь я понимаю, что просто не правильно прочитал ваше сообщение :-)
-l: mintty.exe -i /Cygwin-Terminal.ico /usr/bin/zsh -l -
Если вы запускаете mintty.exeнапрямую или запускаете Cygwin Terminal из меню «Пуск» или с рабочего стола (это ярлык mintty.exe), вы можете установить для переменной среды SHELL в Windows значение /usr/bin/zsh.
В Windows 7:
Остальное должно быть самоочевидным.
Скопировано из моего ответа на переполнение стека :
Вместо создания файла passwd, который Cygwin рекомендует для 1 , вы можете отредактировать /etc/nsswitch.conf . Добавьте или измените следующую строку:
db_shell: / usr / bin / fish
Недостатком этого метода является то, что если у вас есть несколько пользователей, это изменение влияет на всех из них. С другой стороны, все очень просто. Единственный улов в том, что вам нужно перезагрузить Cygwin.
Если вы делаете использовать mkpasswd после этого изменения, он будет использовать новую оболочку по умолчанию для всех пользователей, которые могут войти в систему .
1 Документация mkpasswd гласит:
Не используйте эту команду для создания локального файла / etc / passwd, если он вам действительно не нужен. См. Руководство пользователя Cygwin для получения дополнительной информации.
Я не могу найти никаких веских аргументов в руководстве пользователя , кроме упоминания о том, что вам придется заново создавать файлы / etc / passwd и / etc / group, если ваши пользователи и группы меняются, что, я полагаю, достаточно прилично причина. Я могу сказать, что этот процесс несколько ошибочен для новичков.
Это хак: поместите это как первую строку вашего ~/.bash_profile:
exec zsh
sh.exeчтобыzsh.exeв настройках Conemu> запуск> Задачи> Баш Cygwin Bash>set CHERE_INVOKING=1 & %ConEmuDrive%\CygWin\bin\sh.exe --login -i