Як змінити оболонку за замовчуванням для підсистеми Linux для Windows


10

Я встановив підсистему Linux для Windows 10. Це прекрасно працює, але я хочу змінити середовище оболонки за замовчуванням для підсистеми.

Я sudo apt-get install fishі тоді chsh -s /usr/bin/fish. Але коли я запускаю bash.exeв Windows, він завжди запускає баш (я думаю, що це передбачувано).

Хтось знає аргументи, щоб змінити таку поведінку?


Коли ви починаєте, bash.exeви, очевидно, явно починаєте баш. Я не знайомий з підсистемою 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 відкритим у своєму домашньому каталозі.
David Pärsson

Крім того, встановіть поле "Почати в" у ярлику, %userprofile%щоб запустити оболонку у вашому домашньому каталозі.
dOxxx

@konqui Це не порушує жодної іншої оболонки. Це новий ярлик для його запуску. Ваш баш працюватиме чудово
Самі Кухмонен

@SamiKuhmonen нічого не сказано про нові ярлики - я виправив це, я можу жити з цією відповіддю.
konqui

9

З моменту оновлення Fall Creators ви можете використовувати chshдля встановлення оболонки за замовчуванням. Це все ще не працює, якщо ви використовуєте WSL за допомогою bash.exeкоманди, але це працює, якщо ви використовуєте WSL з ubuntu.exeкомандою.

Крім того, оскільки оновлення Fall Creators Update нам слід встановити WSL OS з Windows Store .

Встановити 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.