Windows için Linux susbsystem varsayılan kabuğunu değiştirme


10

Windows 10 için Linux alt sistemini yükledim. İyi çalışıyor, ancak alt sistemin varsayılan kabuk ortamını değiştirmek istiyorum.

Yaptım sudo apt-get install fishve sonra chsh -s /usr/bin/fish. Ama bash.exeWindows'ta başladığımda, her zaman bash'ı başlatır (sanırım tahmin edilebilir).

Bu davranışı değiştirmek için argümanlar bilen var mı?


Başladığınız zaman bash.exeaçıkça bash'a başlıyorsunuz. Windows 10'da Linux alt sistemine aşina değilim, ancak açıkça belirli bir kabuk başlatmadan bir "Linux" kabuğu başlatmanın bir yolu olmasını beklerdim.
CVn

Balıklara interaktif bash çağrılarını yeniden yönlendirmek için bashrc veya bashprofile'ınızın çirkin bir sürümünü denediniz mi? isatty && exec fishTamamen gerçek çözümlerin dışında olduğunuzda böyle bir satır eklemek denemeye değer olabilir.
A. Loiseau

Yanıtlar:


6

Linux alt sistemi, sistem dizininde bulunan bash.exe aracılığıyla başlatıldığından, varsayılan kabuğu değiştiremezsiniz.

Bununla birlikte, bash için var olan gibi yeni bir kısayol oluşturabilir ve komutu çalıştırmasını sağlayabilirsiniz.

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

Bu şekilde hemen balık avlayacaksınız.


1
%systemroot%\system32\bash.exe ~ -c /bin/zshZSH'yi ana dizinimde açık yapardım .
David Pärsson

Alternatif olarak, %userprofile%ana dizininizdeki kabuğu başlatmak için kısayoldaki "Başlama yeri" alanını ayarlayın .
dOxxx

@konqui Bu, başka bir kabuk kırmaz. Başlamak için yeni bir kısayol. Senin bash iyi çalışacak
Sami Kuhmonen

@SamiKuhmonen yeni bir kısayol hakkında söylenen bir şey yoktu - şimdi düzelttim, bu cevapla yaşayabilirim.
konqui

9

Fall Creators Update'ten bu yana chshvarsayılan kabuğu ayarlamak için kullanabilirsiniz . bash.exeKomut kullanarak WSL çalıştırıyorsanız, bu hala çalışmaz, ancak WSL komutuyla çalıştırıyorsanız, bu işe yaramaz ubuntu.exe.

Ayrıca, Fall Creators Update'ten beri Windows Mağazası'ndan WSL işletim sistemini yüklemeliyiz .

zshVarsayılan kabuk olarak ayarla :

chsh -s /bin/zsh

sonra ubuntu.exekomut isteminden çalıştırın (veya yeniden başlatın) .


5

Bash'i açın, çalıştırın nano ~/.bashrcve yapıştırın:

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

Sadece kabuğu fishistediğiniz gibi değiştirin. -xHiç Bash yeniden yüklenmesi durumunda check önemli - çünkü taze yükledikten sonra açmak için mümkün olmayacaktır execkomut başarısız olur ve sonra Bash sadece kapatır.

Bu durumda .bashrcdosyanızı buradan silin / yeniden adlandırın :

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

-tBen inanıyorum stdout'u açıksa çekleri. Bunun neden önemli olduğundan emin değilim, bu makaleden kopyaladım .

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.