Я пытаюсь изменить оболочку по умолчанию с 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 -i
hth
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