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