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

Π‘ΡΠ°ΡΡΠΈΡΠ°ΠΉΡΠ΅ Windows Explorer ΠΎΡ Linux ΠΈ ΠΏΠΎΠ»ΡΡΠ΅ΡΠ΅ Π΄ΠΎΡΡΡΠΏ Π΄ΠΎ ΡΠ°ΠΉΠ»ΠΎΠ²Π΅ΡΠ΅ Π½Π° Π΄ΠΈΡΡΡΠΈΠ±ΡΡΠΈΡΡΠ° ΡΠΈ
ΠΠΎΠ³Π°ΡΠΎ ΡΡΠ΅ Π² ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΈΡ ΡΠ΅Π΄ WSL / bash ΠΈ ΠΈΡΠΊΠ°ΡΠ΅ Π΄Π° ΠΏΠΎΠ»ΡΡΠΈΡΠ΅ Π²ΠΈΠ·ΡΠ°Π»Π΅Π½ Π΄ΠΎΡΡΡΠΏ Π΄ΠΎ ΡΠ°ΠΉΠ»ΠΎΠ²Π΅ΡΠ΅ ΡΠΈ, ΠΌΠΎΠΆΠ΅ΡΠ΅ Π΄Π° ΡΡΠ°ΡΡΠΈΡΠ°ΡΠ΅ "explorer.exe .", ΠΊΡΠ΄Π΅ΡΠΎ ΡΠ΅ Π½Π°ΠΌΠΈΡΠ° ΡΠ΅ΠΊΡΡΠ°ΡΠ° Π΄ΠΈΡΠ΅ΠΊΡΠΎΡΠΈΡ, ΠΈ ΡΠ΅ ΠΏΠΎΠ»ΡΡΠΈΡΠ΅ ΠΏΡΠΎΠ·ΠΎΡΠ΅Ρ Π½Π° Windows Explorer, Π² ΠΊΠΎΠΉΡΠΎ ΡΠ°ΠΉΠ»ΠΎΠ²Π΅ΡΠ΅ Π²ΠΈ ΠΎΡ 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"
...ΡΡΠ΄ΡΡΠΆΠ°Π½ΠΈΠ΅ Π½Π° C:Program Files...ΠΠ·ΠΏΡΠ»Π½ΠΈΠΌΠΈΡΠ΅ ΡΠ°ΠΉΠ»ΠΎΠ²Π΅ Π½Π° Windows ΠΌΠΎΠ³Π°Ρ Π΄Π° Π±ΡΠ΄Π°Ρ ΠΈΠ·Π²ΠΈΠΊΠ²Π°Π½ΠΈ/ΡΡΠ°ΡΡΠΈΡΠ°Π½ΠΈ ΠΎΡ WSL/Linux, ΡΡΠΉ ΠΊΠ°ΡΠΎ ΠΏΡΡΡΡ Π΄ΠΎ Windows Π΅ Π² $PATH Π΄ΠΎ Windows. ΠΡΠΈΡΠΊΠΎ, ΠΊΠΎΠ΅ΡΠΎ ΡΡΡΠ±Π²Π° Π΄Π° Π½Π°ΠΏΡΠ°Π²ΠΈΡΠ΅, Π΅ Π΄Π° Π³ΠΎ ΠΈΠ·Π²ΠΈΠΊΠ°ΡΠ΅ ΡΠ²Π½ΠΎ Ρ .exe Π² ΠΊΡΠ°Ρ. ΠΡΠΎ ΠΊΠ°ΠΊ ΡΠ°Π±ΠΎΡΠΈ "Explorer.exe." ΠΠΎΠΆΠ΅ΡΠ΅ ΡΡΡΠΎ Π΄Π° Π½Π°ΠΏΡΠ°Π²ΠΈΡΠ΅ notepad.exe ΠΈΠ»ΠΈ Π΄ΡΡΠ³ ΡΠ°ΠΉΠ».
Π‘ΡΠ°ΡΡΠΈΡΠ°ΠΉΡΠ΅ Visual Studio Code ΠΈ ΠΏΠΎΠ»ΡΡΠ΅ΡΠ΅ Π΄ΠΎΡΡΡΠΏ Π΄ΠΎ Π²Π°ΡΠΈΡΠ΅ Linux ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ Π½Π°ΡΠΈΠ²Π½ΠΎ Π½Π° Windows
ΠΠΎΠΆΠ΅ΡΠ΅ Π΄Π° ΡΡΠ°ΡΡΠΈΡΠ°ΡΠ΅ "code.", Π΄ΠΎΠΊΠ°ΡΠΎ ΡΡΠ΅ Π² ΠΏΠ°ΠΏΠΊΠ° Π² WSL, ΠΈ ΡΠ΅ Π²ΠΈ Π±ΡΠ΄Π΅ ΠΏΡΠ΅Π΄Π»ΠΎΠΆΠ΅Π½ΠΎ Π΄Π° ΠΈΠ½ΡΡΠ°Π»ΠΈΡΠ°ΡΠ΅Β . Π’ΠΎΠ²Π° Π΅ΡΠ΅ΠΊΡΠΈΠ²Π½ΠΎ ΡΠ°Π·Π΄Π΅Π»Ρ Visual Studio Code Π½Π° Π΄Π²Π΅ ΠΈ ΡΡΠ°ΡΡΠΈΡΠ° "headless" VS Code Server Π² Linux Ρ ΠΊΠ»ΠΈΠ΅Π½ΡΠ° VS Code Π² ΡΠ²Π΅ΡΠ° Π½Π° Windows.
Π‘ΡΡΠΎ ΡΠ°ΠΊΠ° Π΅ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ Π΄Π° ΠΈΠ½ΡΡΠ°Π»ΠΈΡΠ°ΡΠ΅Β Β ΠΈ . ΠΠΎ ΠΆΠ΅Π»Π°Π½ΠΈΠ΅, ΠΈΠ½ΡΡΠ°Π»ΠΈΡΠ°ΠΉΡΠ΅Β Β Π·Π° ΠΏΠΎ-Π΄ΠΎΠ±ΡΠΎ ΠΈΠ·ΠΆΠΈΠ²ΡΠ²Π°Π½Π΅ Π² ΡΠ΅ΡΠΌΠΈΠ½Π°Π»Π° Π½Π° Windows.
ΠΡΠΎ ΠΎΡΠ»ΠΈΡΠ½Π° ΠΊΠΎΠ»Π΅ΠΊΡΠΈΡ ΠΎΡ ΡΡΠ°ΡΠΈΠΈ ΠΎΡ Π±Π»ΠΎΠ³Π° Π½Π° Windows Command Line.
- Π§Π°ΡΡ 1Β
- Π§Π°ΡΡ 2Β
- Π§Π°ΡΡ 3Β
ΠΡΠΎ ΠΏΡΠ΅Π΄ΠΈΠΌΡΡΠ²Π°ΡΠ° Π½Π° WSL 2
- ΠΠΈΡΡΡΠ°Π»Π½ΠΈΡΠ΅ ΠΌΠ°ΡΠΈΠ½ΠΈ ΡΠ° ΡΠ΅ΡΡΡΡΠΎΠ΅ΠΌΠΊΠΈ ΠΈ ΠΎΡΠΈΠ³ΡΡΡΠ²Π°Ρ ΠΌΠ½ΠΎΠ³ΠΎ Π½Π΅Π·Π°Π²ΠΈΡΠΈΠΌ ΠΎΠΏΠΈΡ.
- ΠΡΡΠ²ΠΎΠ½Π°ΡΠ°Π»Π½ΠΈΡΡ WSL Π±Π΅ΡΠ΅ ΠΌΠ½ΠΎΠ³ΠΎ "ΡΠ²ΡΡΠ·Π°Π½", Π½ΠΎ ΠΈΠΌΠ°ΡΠ΅ Π΄ΠΎΡΡΠ° Π½ΠΈΡΠΊΠ° ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»Π½ΠΎΡΡ Π² ΡΡΠ°Π²Π½Π΅Π½ΠΈΠ΅ Ρ VM.
- WSL 2 ΠΏΡΠ΅Π΄Π»Π°Π³Π° Ρ ΠΈΠ±ΡΠΈΠ΄Π΅Π½ ΠΏΠΎΠ΄Ρ ΠΎΠ΄ Ρ ΠΎΠ±Π»Π΅ΠΊΡΠ΅Π½ΠΈ VM, Π½Π°ΠΏΡΠ»Π½ΠΎ ΡΠ²ΡΡΠ·Π°Π½ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡ ΠΈ Π²ΠΈΡΠΎΠΊΠ° ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»Π½ΠΎΡΡ.
Π‘ΡΠ°ΡΡΠΈΡΠ°Π½Π΅ Π½Π° Π½ΡΠΊΠΎΠ»ΠΊΠΎ Linux Π·Π° ΡΠ΅ΠΊΡΠ½Π΄ΠΈ
Π’ΡΠΊ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°ΠΌ "wsl --list --all" ΠΈ Π½Π° ΠΌΠΎΡΡΠ° ΡΠΈΡΡΠ΅ΠΌΠ° Π²Π΅ΡΠ΅ ΠΈΠΌΠ° ΡΡΠΈ Linux.
C:Usersscott>wsl --list --all
Π Π°Π·ΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΡ Π½Π° Windows Subsystem for Linux:
Ubuntu-18.04 (ΠΠΎ ΠΏΠΎΠ΄ΡΠ°Π·Π±ΠΈΡΠ°Π½Π΅)
Ubuntu-16.04
PengwinΠΠΎΠ³Π° Π»Π΅ΡΠ½ΠΎ Π΄Π° Π³ΠΈ ΡΡΠ°ΡΡΠΈΡΠ°ΠΌ ΠΈ Π΄Π° Π·Π°Π΄Π°Π²Π°ΠΌ ΠΏΡΠΎΡΠΈΠ»ΠΈ, Π·Π° Π΄Π° ΡΠ΅ ΠΏΠΎΡΠ²ΡΡ Π² ΠΌΠΎΡ Windows Terminal.
Π‘ΡΠ°ΡΡΠΈΡΠ°ΠΉΡΠ΅ 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 Π² ΡΠΊΡΠΈΠΏΡ Π·Π° ΠΊΠΎΠΌΠ°Π½Π΄Π΅Π½ ΡΠ΅Π΄, ΠΊΠΎΠΉΡΠΎ ΠΈΠ·Π²ΠΈΠΊΠ²Π° Windows git creds ΠΌΠ΅Π½ΠΈΠ΄ΠΆΡΡΠ°. ΠΠ΅Π½ΠΈΠ°Π»Π½ΠΎ. Π’ΠΎΠ²Π° Π±ΠΈ Π±ΠΈΠ»ΠΎ Π²ΡΠ·ΠΌΠΎΠΆΠ½ΠΎ Π΅Π΄ΠΈΠ½ΡΡΠ²Π΅Π½ΠΎ ΠΏΡΠΈ ΡΡΠ»ΠΎΠ²ΠΈΠ΅ Π½Π° ΡΠΈΡΡΠ° ΠΈ ΡΡΡΠ½Π° ΠΈΠ½ΡΠ΅Π³ΡΠ°ΡΠΈΡ.
ΠΠΏΠΈΡΠ°ΠΉΡΠ΅, ΠΈΠ½ΡΡΠ°Π»ΠΈΡΠ°ΠΉΡΠ΅ WSL,Β , ΠΈ ΡΡΠ·Π΄Π°ΠΉΡΠ΅Β .
ΠΠ·ΡΠΎΡΠ½ΠΈΠΊ: habr.com
