αααα»αβααααα»αβαααα½αβαααΆαβαααα βαααα»α WSL (Windows αααααααααααααααΆαα Linux), ΠΈ ΡΠ΅ΠΏΠ΅ΡΡ, ΠΊΠΎΠ³Π΄Π° ααΆααα αααα»α , ΡΡΠΎ ΠΎΡΠ»ΠΈΡΠ½ΠΎΠ΅ Π²ΡΠ΅ΠΌΡ, ΡΡΠΎΠ±Ρ ΠΏΠΎ-Π½Π°ΡΡΠΎΡΡΠ΅ΠΌΡ ΠΈΠ·ΡΡΠΈΡΡ Π΄ΠΎΡΡΡΠΏΠ½ΡΠ΅ ΠΎΠΏΡΠΈΠΈ. ΠΡΠ΅Π½Ρ ΠΈΠ½ΡΠ΅ΡΠ΅ΡΠ½Π°Ρ ΡΠΈΡΠ°, ΠΊΠΎΡΠΎΡΡΡ Ρ Π½Π°ΡΠ΅Π» Π² WSL, β Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ Β«ΡΠΈΡΡΠΎΒ» ΠΏΠ΅ΡΠ΅ΠΌΠ΅ΡΠ°ΡΡ Π΄Π°Π½Π½ΡΠ΅ ΠΌΠ΅ΠΆΠ΄Ρ ΠΌΠΈΡΠ°ΠΌΠΈ. ΠΡΠΎ Π½Π΅ ΡΠΎΡ ΠΎΠΏΡΡ, ΠΊΠΎΡΠΎΡΡΠΉ Π²Ρ Π»Π΅Π³ΠΊΠΎ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΏΠΎΠ»ΡΡΠΈΡΡ Ρ ΠΏΠΎΠ»Π½ΠΎΡΠ΅Π½Π½ΡΠΌΠΈ Π²ΠΈΡΡΡΠ°Π»ΡΠ½ΡΠΌΠΈ ΠΌΠ°ΡΠΈΠ½Π°ΠΌΠΈ, ΠΈ ΠΎΠ½ Π³ΠΎΠ²ΠΎΡΠΈΡ ΠΎ ΡΠ΅ΡΠ½ΠΎΠΉ ΠΈΠ½ΡΠ΅Π³ΡΠ°ΡΠΈΠΈ Linux ΠΈ Windows.
ααΆααααααβαααβααΆβααααααΆαβααααααβα’αααΈβααααβααα’βαβααααβαααβα’αααβα’αΆα βααααΎβααΆαβαααβααΆαβααααααααΈ αα·αβααΌααΌα‘αΆ!

ααα Windows Explorer ΠΈΠ· Linux ΠΈ ΠΏΠΎΠ»ΡΡΠΈΡΠ΅ Π΄ΠΎΡΡΡΠΏ ΠΊ ΡΠ°ΠΉΠ»Π°ΠΌ Π²Π°ΡΠ΅Π³ΠΎ Π΄ΠΈΡΡΡΠΈΠ±ΡΡΠΈΠ²Π°
ΠΠΎΠ³Π΄Π° Π²Ρ Π½Π°Ρ ΠΎΠ΄ΠΈΡΠ΅ΡΡ Π² ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ ΡΡΡΠΎΠΊΠ΅ WSL / bash ΠΈ Ρ ΠΎΡΠΈΡΠ΅ ΠΏΠΎΠ»ΡΡΠΈΡΡ Π²ΠΈΠ·ΡΠ°Π»ΡΠ½ΡΠΉ Π΄ΠΎΡΡΡΠΏ ΠΊ ΡΠ²ΠΎΠΈΠΌ ΡΠ°ΠΉΠ»Π°ΠΌ, Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ Π·Π°ΠΏΡΡΡΠΈΡΡ Β«explorer.exe .Β», Π³Π΄Π΅ Π½Π°Ρ ΠΎΠ΄ΠΈΡΡΡ ΡΠ΅ΠΊΡΡΠΈΠΉ ΠΊΠ°ΡΠ°Π»ΠΎΠ³, ΠΈ Π²Ρ ΠΏΠΎΠ»ΡΡΠΈΡΠ΅ ΠΎΠΊΠ½ΠΎ ΠΏΡΠΎΠ²ΠΎΠ΄Π½ΠΈΠΊΠ° Windows, Π² ΠΊΠΎΡΠΎΡΠΎΠΌ Π²Π°ΡΠΈ ΡΠ°ΠΉΠ»Ρ Linux Π±ΡΠ΄ΡΡ Π΄ΠΎΡΡΠ°Π²Π»Π΅Π½Ρ Π²Π°ΠΌ ΡΠ΅ΡΠ΅Π· ΡΠ΅ΡΠ²Π΅Ρ Π»ΠΎΠΊΠ°Π»ΡΠ½ΠΎΠΉ ΡΠ΅ΡΠΈ plan9.

ΠΡΠΏΠΎΠ»ΡΠ·ΡΠΉΡΠ΅ Π½Π°ΡΡΠΎΡΡΠΈΠ΅ ΠΊΠΎΠΌΠ°Π½Π΄Ρ Linux (Π½Π΅ CGYWIN) ΠΈΠ· Windows
αααα»αβααΆαβαααααβα’αααΈβααΏαβαααβααΈαα»αβαα ααα»ααααβα₯α‘αΌαβααΆαβαααααβαααααααααΆαβαααααΆααβαα»αααΆα PowerShell ααΈβαααα»α Windows.
ΠΡ ΠΌΠΎΠΆΠ΅ΡΠ΅ Π²ΡΠ·Π²Π°ΡΡ Π»ΡΠ±ΡΡ ΠΊΠΎΠΌΠ°Π½Π΄Ρ Linux Π½Π°ΠΏΡΡΠΌΡΡ ΠΈΠ· DOS/Windows/ΡΠ΅Π³ΠΎ ΡΠ³ΠΎΠ΄Π½ΠΎ, ΠΏΡΠΎΡΡΠΎ ΠΏΠΎΠΌΠ΅ΡΡΠΈΠ² Π΅Π΅ ΠΏΠΎΡΠ»Π΅ WSL.exe, Π²ΠΎΡ ΡΠ°ΠΊ.
C:temp> wsl ls -la | findstr "foo"
-rwxrwxrwx 1 root root 14 Sep 27 14:26 foo.bat
C:temp> dir | wsl grep foo
09/27/2016 02:26 PM 14 foo.bat
C:temp> wsl ls -la > out.txt
C:temp> wsl ls -la /proc/cpuinfo
-r--r--r-- 1 root root 0 Sep 28 11:28 /proc/cpuinfo
C:temp> wsl ls -la "/mnt/c/Program Files"
...contents of C:Program Files...α―αααΆααααα’αΆα ααααα·ααααα·ααΆαα Windows ΠΌΠΎΠΆΠ½ΠΎ Π²ΡΠ·ΡΠ²Π°ΡΡ/Π·Π°ΠΏΡΡΠΊΠ°ΡΡ ΠΈΠ· WSL/Linux, ΠΏΠΎΡΠΊΠΎΠ»ΡΠΊΡ ΠΏΡΡΡ ΠΊ Windows Π½Π°Ρ ΠΎΠ΄ΠΈΡΡΡ Π² $PATH Π΄ΠΎ Windows. ΠΡΠ΅, ΡΡΠΎ Π²Π°ΠΌ Π½ΡΠΆΠ½ΠΎ ΡΠ΄Π΅Π»Π°ΡΡ, ΡΡΠΎ ΡΠ²Π½ΠΎ Π²ΡΠ·Π²Π°ΡΡ Π΅Π³ΠΎ Ρ .exe Π² ΠΊΠΎΠ½ΡΠ΅. ΠΠΎΡ ΠΊΠ°ΠΊ ΡΠ°Π±ΠΎΡΠ°Π΅Ρ Β«Explorer.exe.Β». ΠΡ ΡΠ°ΠΊΠΆΠ΅ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΡΠ΄Π΅Π»Π°ΡΡ notepad.exe ΠΈΠ»ΠΈ Π»ΡΠ±ΠΎΠΉ Π΄ΡΡΠ³ΠΎΠΉ ΡΠ°ΠΉΠ».
ΠΠ°ΠΏΡΡΡΠΈΡΠ΅ Visual Studio Code ΠΈ ΠΏΠΎΠ»ΡΡΠΈΡΠ΅ Π΄ΠΎΡΡΡΠΏ ΠΊ Π²Π°ΡΠΈΠΌ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡΠΌ Linux Π½Π°ΡΠΈΠ²Π½ΠΎ Π½Π° Windows
α’αααα’αΆα ααααΎαααΆα "ααΌαα" ααααααααααα αααα»ααααα αααα»α WSL α αΎαα’αααααΉαααααΌαααΆαααααα»αα±ααααα‘αΎα . ΠΡΠΎ ΡΡΡΠ΅ΠΊΡΠΈΠ²Π½ΠΎ ΡΠ°Π·Π΄Π΅Π»ΡΠ΅Ρ Visual Studio Code ΠΏΠΎΠΏΠΎΠ»Π°ΠΌ ΠΈ Π·Π°ΠΏΡΡΠΊΠ°Π΅Ρ Β«headlessΒ» VS Code Server Π² Linux Ρ ΠΊΠ»ΠΈΠ΅Π½ΡΠΎΠΌ VS Code Π² ΠΌΠΈΡΠ΅ Windows.
α’αααααααααΌαααα‘αΎααααα ΠΈ . ααααα·αααΎα ααααΆαααΌαααα‘αΎα Π΄Π»Ρ Π»ΡΡΡΠ΅Π³ΠΎ ΠΎΠΏΡΡΠ° ΡΠ°Π±ΠΎΡΡ Ρ ΡΠ΅ΡΠΌΠΈΠ½Π°Π»ΠΎΠΌ Π² Windows.
ΠΠΎΡ ΠΎΡΠ»ΠΈΡΠ½Π°Ρ ΠΏΠΎΠ΄Π±ΠΎΡΠΊΠ° ΡΡΠ°ΡΠ΅ΠΉ ΠΈΠ· Π±Π»ΠΎΠ³Π° Windows αααααΆααααΆααααααααΆα
- ααααααα 1
- ααααααα 2
- ααααααα 3
αααααΊααΆα’ααααααααααααααα WSL 2
- αααΆαααΈααα·αααα·αααΊααΉαααα’ααααααΆααααΎααααΆα αα·ααααααΎααααα·αααααα―αααΆααααααα»αα
- WSL ααΎαααααΌαααΆα "ααααΆαα" αααΆαααααΆαα ααα»ααααααΆαααααΎαααΆααα·αααα’ααΎαααααααααα ααΉα VM α
- WSL 2 αααααααΌααα·ααΈααΆαααααααΌαααΆααααΆαα½α VMs ααααααααααΆα α ααα»α αααααΆαααααααΆαααααΆαααααΆααααααα αα·αααααΎαααΆααααααα
ΠΠ°ΠΏΡΡΠΊ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΈΡ Linux Π² ΡΡΠΈΡΠ°Π½Π½ΡΠ΅ ΡΠ΅ΠΊΡΠ½Π΄Ρ
ΠΠ΄Π΅ΡΡ Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡ Β«wsl βlist βallΒ», ΠΈ Π² ΠΌΠΎΠ΅ΠΉ ΡΠΈΡΡΠ΅ΠΌΠ΅ ΡΠΆΠ΅ Π΅ΡΡΡ ΡΡΠΈ Linux.
C:Usersscott>wsl --list --all
Windows Subsystem for Linux Distributions:
Ubuntu-18.04 (Default)
Ubuntu-16.04
PengwinΠ― ΠΌΠΎΠ³Ρ Π»Π΅Π³ΠΊΠΎ Π·Π°ΠΏΡΡΡΠΈΡΡ ΠΈΡ , Π° ΡΠ°ΠΊΠΆΠ΅ Π½Π°Π·Π½Π°ΡΠΈΡΡ ΠΏΡΠΎΡΠΈΠ»ΠΈ, ΡΡΠΎΠ±Ρ ΠΎΠ½ΠΈ ΠΏΠΎΡΠ²Π»ΡΠ»ΠΈΡΡ Π² ΠΌΠΎΠ΅ΠΌ Windows ααααΆααΈαα
ΠΠ°ΠΏΡΡΡΠΈΡΠ΅ X Windows Server ααααα Windows Ρ Pengwin
β ΡΡΠΎ ΡΠΏΠ΅ΡΠΈΠ°Π»ΡΠ½ΡΠΉ Linux-Π΄ΠΈΡΡΡΠΈΠ±ΡΡΠΈΠ² WSL, ΠΊΠΎΡΠΎΡΡΠΉ ΠΎΡΠ΅Π½Ρ ΠΊΡΡΡ. ΠΡ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΏΠΎΠ»ΡΡΠΈΡΡ Π΅Π³ΠΎ Π² . αααα Pengwin ααΆαα½α α αΎαα’αααααα½αααΆααααααααααα½ααααα αΌαααααΆαααααααΆαααααα»αα
ΠΡΠΎΡΡΠΎΠ΅ ΠΏΠ΅ΡΠ΅ΠΌΠ΅ΡΠ΅Π½ΠΈΠ΅ Π΄ΠΈΡΡΡΠΈΠ±ΡΡΠΈΠ²ΠΎΠ² WSL ΠΌΠ΅ΠΆΠ΄Ρ ΡΠΈΡΡΠ΅ΠΌΠ°ΠΌΠΈ Windows.
αααα’αααα’αΆα αααααααΆαα ααα αΆα WSL2 ααααα’ααααα’αααααΆααααΆαααΆααααα½αααΈαααΆαααΈααα½ααα n αααΆαααΈαα
wsl --export MyDistro ./distro.tar
# ΡΠ°Π·ΠΌΠ΅ΡΡΠΈΡΠ΅ Π΅Π³ΠΎ Π³Π΄Π΅-Π½ΠΈΠ±ΡΠ΄Ρ, Dropbox, Onedrive, Π³Π΄Π΅-ΡΠΎ Π΅ΡΠ΅
mkdir ~/AppData/Local/MyDistro
wsl --import MyDistro ~/AppData/Local/MyDistro ./distro.tar --version 2 ΠΠΎΡ ΠΈ Π²ΡΠ΅. ΠΠΎΠ»ΡΡΠΈΡΠ΅ ΠΈΠ΄Π΅Π°Π»ΡΠ½ΡΡ Π½Π°ΡΡΡΠΎΠΉΠΊΡ Linux, ΡΠΈΠ½Ρ ΡΠΎΠ½ΠΈΠ·ΠΈΡΠΎΠ²Π°Π½Π½ΡΡ Π½Π° Π²ΡΠ΅Ρ Π²Π°ΡΠΈΡ ΡΠΈΡΡΠ΅ΠΌΠ°Ρ .
ΠΡΠΏΠΎΠ»ΡΠ·ΡΠΉΡΠ΅ ΠΏΡΠΎΠ²Π°ΠΉΠ΄Π΅Ρ ΡΡΠ΅ΡΠ½ΡΡ Π΄Π°Π½Π½ΡΡ Windows Git Π²Π½ΡΡΡΠΈ WSL
αααααααα·αααααΆααα’ααααΆαααΎααΉαααααΌαααΆαααααΆαα αΌααα αααα»αααααΌα αααααΆαααααααααααΆαα½ααααα αΌα , ΠΏΡΠ΅Π²ΡΠ°ΡΠ°Ρ /usr/bin/git-credential-manager Π² ΡΡΠ΅Π½Π°ΡΠΈΠΉ ΠΎΠ±ΠΎΠ»ΠΎΡΠΊΠΈ, ΠΊΠΎΡΠΎΡΡΠΉ Π²ΡΠ·ΡΠ²Π°Π΅Ρ Π΄ΠΈΡΠΏΠ΅ΡΡΠ΅Ρ git creds Windows. ΠΠ΅Π½ΠΈΠ°Π»ΡΠ½ΠΎ. ΠΡΠΎ Π±ΡΠ»ΠΎ Π±Ρ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ ΡΠΎΠ»ΡΠΊΠΎ ΠΏΡΠΈ ΡΡΠ»ΠΎΠ²ΠΈΠΈ ΡΠΈΡΡΠΎΠΉ ΠΈ ΡΠ΅ΡΠ½ΠΎΠΉ ΠΈΠ½ΡΠ΅Π³ΡΠ°ΡΠΈΠΈ.
ααΆαααααααΆ ααα‘αΎα WSL , αα·ααααααΎα .
ααααα: www.habr.com
