Как изменить оболочку по умолчанию для Linux-системы для Windows


10

Я установил подсистему Linux для Windows 10. Она работает нормально, но я хочу изменить среду оболочки по умолчанию для этой подсистемы.

Я сделал sudo apt-get install fishи тогда chsh -s /usr/bin/fish. Но когда я запускаю bash.exeв Windows, он всегда запускает bash (я думаю, что это предсказуемо).

Кто-нибудь знает аргументы, чтобы изменить это поведение?


Когда вы начинаете, bash.exeвы явно явно запускаете bash. Я не знаком с подсистемой Linux в Windows 10, но я ожидаю, что будет какой-то способ запустить оболочку «Linux» без явного запуска одной конкретной оболочки.
CVN

Вы пробовали уродливую версию вашего bashrc или bashprofile, чтобы перенаправить интерактивные вызовы bash на рыбалку? Добавление такой строки isatty && exec fishможет стоить попробовать, когда вы полностью не в курсе реальных решений.
А.Луазо

Ответы:


6

Вы не можете изменить оболочку по умолчанию, так как подсистема Linux запускается через bash.exe, находящийся в системном каталоге.

Однако вы можете создать новый ярлык, например, тот, который уже существует для bash, и заставить его выполнить команду

%systemroot%\system32\bash -c /usr/bin/fish

Таким образом, вы сразу же будете ловить рыбу.


1
Раньше я %systemroot%\system32\bash.exe ~ -c /bin/zshделал ZSH открытым в моем домашнем каталоге.
Дэвид Пярссон

В качестве альтернативы, установите поле «Начать в» в ярлыке, %userprofile%чтобы запустить оболочку в вашем домашнем каталоге.
dOxxx

@konqui Это не сломает любую другую оболочку. Это новый ярлык для запуска. Ваш удар будет работать очень хорошо
Сами Кухмонен

@SamiKuhmonen Там не было ничего сказано о новых ярлыках - я исправил это сейчас, я могу жить с этим ответом.
Конки

9

Начиная с Fall Creators Update вы можете использовать chshдля установки оболочки по умолчанию. Это все еще не работает, если вы запускаете WSL с помощью bash.exeкоманды, но это работает, если вы запускаете WSL с ubuntu.exeкомандой.

Также, начиная с Fall Creators Update, мы должны установить WSL OS из Магазина Windows .

Установить в zshкачестве оболочки по умолчанию:

chsh -s /bin/zsh

затем запустите (или перезапустите) ubuntu.exeиз командной строки.


5

Откройте bash, запустите nano ~/.bashrcи вставьте это в:

if [[ -t 1 && -x /usr/bin/zsh ]]; then
    exec /usr/bin/zsh
fi

Просто поменяйте оболочку на fishчто угодно. -xПроверка важна , если вы когда - либо повторно установить Bash - вы не сможете открыть его после новой установки , так как execкоманда потерпит неудачу , а затем Bash просто закрывается.

Если это произойдет, удалите / переименуйте ваш .bashrcфайл здесь:

C:\Users\<USERNAME>\AppData\Local\lxss\home\<USERNAME>\.bashrc

-tЯ считаю , проверяет , является ли стандартный вывод открыт. Не уверен, почему это важно, я скопировал его из этой статьи .

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.