Я намагаюся змінити стандартну оболонку з 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 /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