
Я пытаюсь изменить оболочку по умолчанию с bash на zsh в cygwin.
- Обычная команда unix
chsh
недоступна на cygwin - Файл etc/passwd, похоже, больше не используется в существующих версиях cygwin.
Так как же еще можно изменить оболочку по умолчанию?
решение1
Ответ зависит от того, как вы запускаете Cygwin.
Если вы запустите Cygwin с помощьюCygwin.bat, измените последнюю строку /Cygwin.bat
(обычно C:\cygwin\
или C:\cygwin64\
).
Если вы запустите Cygwin с помощьюмятный, затем добавьте оболочку в качестве параметра: mintty /usr/bin/zsh -
решение2
Если вы запускаете mintty.exe
Cygwin Terminal напрямую или запускаете его из меню «Пуск» или с рабочего стола (что является ярлыком для mintty.exe), вы можете установить переменную среды SHELL в Windows в значение /usr/bin/zsh
.
В Windows 7:
- Нажмите клавишу Windows.
- Начните вводить «окружающая среда».
- Когда он появится, выберите «Изменить переменные среды для вашей учетной записи».
Остальное должно быть понятно.
решение3
Скопировано измой ответ на Stack Overflow:
Вместо создания файла паролей, который поддерживает Cygwinрекомендует против1 , вы могли быредактировать /etc/nsswitch.conf. Добавьте или отредактируйте следующую строку:
db_shell: /usr/bin/fish
Минус/плюс этого метода в том, что если у вас несколько пользователей, это изменение затронет их всех. Плюс/плюс в том, что это очень просто. Единственная загвоздка в том, что вам придется перезапустить Cygwin.
Если выделатьПосле этого изменения используйте mkpasswd, он будет использовать вашу новую оболочку по умолчанию для всех пользователей, которым разрешен вход в систему.
1 В документации mkpasswd сказано следующее:
Не используйте эту команду для генерации локального файла /etc/passwd, если он вам действительно не нужен. Для получения дополнительной информации см. Руководство пользователя Cygwin.
Я не могу найти никаких веских доводов вруководство пользователя, за исключением упоминания о том, что вам придется перегенерировать файлы /etc/passwd и /etc/group, если ваши пользователи и группы изменятся, что, я полагаю, является достаточно веской причиной. Могу сказать, что этот процесс несколько подвержен ошибкам для новичков.
решение4
Мой хостинг-сервис dreamhost.com имеет поле опций на экране редактирования пользователя. Он может выбирать между четырьмя различными оболочками и выглядит примерно так
User Type: (Click one of these three buttons)
* FTP user - allows login via FTP only.
* SFTP user - allows login via SFTP only.
* Shell user - allows login via both SSH and FTP.
Shell Type: ____/usr/bin/tcsh_____
Disallow FTP?: ___