9

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

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

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

3 ответа3

8

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

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

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

chsh -s /bin/zsh

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

5

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

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

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

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

4

Откройте 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 Я считаю, проверяет, открыт ли стандартный вывод. Не уверен, почему это важно, я скопировал его из этой статьи.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .