ΠΠ· ΡΡΠΌ Π΄ΡΠ»Π±ΠΎΠΊΠΎ ΠΏΠΎΡΠΎΠΏΠ΅Π½ Π² WSL (ΠΏΠΎΠ΄ΡΠΈΡΡΠ΅ΠΌΠ° Π½Π° Windows Π·Π° Linux) ΠΈ ΡΠ΅Π³Π° ΡΠΎΠ²Π°
ΠΡΠΎΡΠ΅ΡΠ΅ΡΠ΅ ΠΏΠΎΠ²Π΅ΡΠ΅ Π·Π° Π½ΡΠΊΠΎΠΈ Π³ΠΎΡΠΈΠ½ΠΈ Π½Π΅ΡΠ°, ΠΊΠΎΠΈΡΠΎ ΠΌΠΎΠΆΠ΅ΡΠ΅ Π΄Π° Π½Π°ΠΏΡΠ°Π²ΠΈΡΠ΅, ΠΊΠΎΠ³Π°ΡΠΎ ΡΠΌΠ΅ΡΠ²Π°ΡΠ΅ ΡΡΡΡΡΡΠ΅Π½ΠΎ ΠΌΠ°ΡΠ»ΠΎ ΠΈ ΡΠΎΠΊΠΎΠ»Π°Π΄ ΠΏΠΎ-Π΄ΠΎΠ»Ρ!
Π‘ΡΠ°ΡΡΠΈΡΠ°ΠΉΡΠ΅ Windows Explorer ΠΎΡ Linux ΠΈ ΠΎΡΠ²ΠΎΡΠ΅ΡΠ΅ ΡΠ°ΠΉΠ»ΠΎΠ²Π΅ΡΠ΅ Π½Π° Π²Π°ΡΠ°ΡΠ° Π΄ΠΈΡΡΡΠΈΠ±ΡΡΠΈΡ
ΠΠΎΠ³Π°ΡΠΎ ΡΡΠ΅ Π² ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΈΡ ΡΠ΅Π΄ Π½Π° WSL/bash ΠΈ ΠΈΡΠΊΠ°ΡΠ΅ Π΄Π° ΠΎΡΡΡΠ΅ΡΡΠ²ΠΈΡΠ΅ Π²ΠΈΠ·ΡΠ°Π»Π΅Π½ Π΄ΠΎΡΡΡΠΏ Π΄ΠΎ Π²Π°ΡΠΈΡΠ΅ ΡΠ°ΠΉΠ»ΠΎΠ²Π΅, ΠΌΠΎΠΆΠ΅ΡΠ΅ Π΄Π° ΡΡΠ°ΡΡΠΈΡΠ°ΡΠ΅ βexplorer.exe.β ΠΊΡΠ΄Π΅ΡΠΎ Π΅ ΡΠ΅ΠΊΡΡΠ°ΡΠ° Π΄ΠΈΡΠ΅ΠΊΡΠΎΡΠΈΡ ΠΈ ΡΠ΅ ΠΏΠΎΠ»ΡΡΠΈΡΠ΅ ΠΏΡΠΎΠ·ΠΎΡΠ΅Ρ Π½Π° Windows Explorer, ΠΊΡΠ΄Π΅ΡΠΎ Π²Π°ΡΠΈΡΠ΅ Linux ΡΠ°ΠΉΠ»ΠΎΠ²Π΅ ΡΠ΅ Π±ΡΠ΄Π°Ρ Π΄ΠΎΡΡΠ°Π²Π΅Π½ΠΈ Π΄ΠΎ Π²Π°Ρ ΡΡΠ΅Π· ΠΏΠ»Π°Π½ΡΡ Π·Π° Π»ΠΎΠΊΠ°Π»Π½Π° ΠΌΡΠ΅ΠΆΠ° Π½Π° ΡΡΡΠ²ΡΡΠ°9.
ΠΠ·ΠΏΠΎΠ»Π·Π²Π°ΠΉΡΠ΅ ΠΈΡΡΠΈΠ½ΡΠΊΠΈ Linux ΠΊΠΎΠΌΠ°Π½Π΄ΠΈ (Π½Π΅ CGYWIN) ΠΎΡ Windows
ΠΠΈΡΠ°Π» ΡΡΠΌ Π·Π° ΡΠΎΠ²Π° ΠΈ ΠΏΡΠ΅Π΄ΠΈ, Π½ΠΎ ΡΠ΅Π³Π° ΠΈΠΌΠ° ΠΏΡΠ΅Π²Π΄ΠΎΠ½ΠΈΠΌΠΈ Π·Π° ΡΡΠ½ΠΊΡΠΈΠΈ Π½Π° PowerShell,
ΠΠΎΠΆΠ΅ΡΠ΅ Π΄Π° ΠΈΠ·Π²ΠΈΠΊΠ°ΡΠ΅ Π²ΡΡΠΊΠ° ΠΊΠΎΠΌΠ°Π½Π΄Π° Π½Π° 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
ΠΠΎΠΆΠ΅ΡΠ΅ Π΄Π° ΡΡΠ°ΡΡΠΈΡΠ°ΡΠ΅ βcode.β Π΄ΠΎΠΊΠ°ΡΠΎ ΡΡΠ΅ Π² ΠΏΠ°ΠΏΠΊΠ° Π² WSL ΠΈ ΡΠ΅ Π±ΡΠ΄Π΅ΡΠ΅ ΠΏΠΎΠ΄ΠΊΠ°Π½Π΅Π½ΠΈ Π΄Π° ΠΈΠ½ΡΡΠ°Π»ΠΈΡΠ°ΡΠ΅
ΠΠΈΠ΅ ΡΡΡΠΎ ΡΡΡΠ±Π²Π° Π΄Π° ΠΈΠ½ΡΡΠ°Π»ΠΈΡΠ°ΡΠ΅
ΠΡΠΎ ΡΡΡΠ°Ρ ΠΎΡΠ½Π° ΡΠ΅Π»Π΅ΠΊΡΠΈΡ ΠΎΡ ΡΡΠ°ΡΠΈΠΈ ΠΎΡ Π±Π»ΠΎΠ³Π° Π½Π° ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΈΡ ΡΠ΅Π΄ Π½Π° Windows.
- Π§Π°ΡΡΡ 1
ΠΡΠ΅Π½Π΅ΡΠ΅ΡΠ΅ Π²Π°ΡΠ΅ΡΠΎ ΠΈΠ·ΠΆΠΈΠ²ΡΠ²Π°Π½Π΅ ΠΏΡΠΈ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠ° Π½Π° Linux Π½Π° Windows Π½Π° ΡΠ»Π΅Π΄Π²Π°ΡΠΎΡΠΎ Π½ΠΈΠ²ΠΎ Ρ WSL ΠΈ Visual Studio Code Remote. - Π§Π°ΡΡΡ 2
ΠΠ°Π΄ΡΠ»Π±ΠΎΡΠ΅Π½ΠΎ ΡΡΠΊΠΎΠ²ΠΎΠ΄ΡΡΠ²ΠΎ Π·Π° ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠ° Π½Π° Linux Π·Π° Windows Ρ WSL ΠΈ Visual Studio Code - Π§Π°ΡΡΡ 3
Π‘ΡΠ²Π΅ΡΠΈ ΠΈ ΡΡΠΈΠΊΠΎΠ²Π΅ Π·Π° ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠ° Π½Π° Linux Ρ ΠΏΠΎΠΌΠΎΡΡΠ° Π½Π° WSL ΠΈ Visual Studio Code
ΠΡΠΎ ΠΏΡΠ΅Π΄ΠΈΠΌΡΡΠ²Π°ΡΠ° Π½Π° WSL 2
- ΠΠΈΡΡΡΠ°Π»Π½ΠΈΡΠ΅ ΠΌΠ°ΡΠΈΠ½ΠΈ ΠΈΠ·ΠΈΡΠΊΠ²Π°Ρ ΠΌΠ½ΠΎΠ³ΠΎ ΡΠ΅ΡΡΡΡΠΈ ΠΈ ΡΡΠ·Π΄Π°Π²Π°Ρ ΠΌΠ½ΠΎΠ³ΠΎ Π½Π΅Π·Π°Π²ΠΈΡΠΈΠΌΠΎ ΠΈΠ·ΠΆΠΈΠ²ΡΠ²Π°Π½Π΅.
- ΠΡΠΈΠ³ΠΈΠ½Π°Π»Π½ΠΈΡΡ WSL Π±Π΅ΡΠ΅ ΠΌΠ½ΠΎΠ³ΠΎ βΡΠ²ΡΡΠ·Π°Π½β, Π½ΠΎ ΠΈΠΌΠ°ΡΠ΅ Π΄ΠΎΡΡΠ° Π»ΠΎΡΠ° ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»Π½ΠΎΡΡ Π² ΡΡΠ°Π²Π½Π΅Π½ΠΈΠ΅ Ρ VM.
- WSL 2 ΠΏΡΠ΅Π΄Π»Π°Π³Π° Ρ ΠΈΠ±ΡΠΈΠ΄Π΅Π½ ΠΏΠΎΠ΄Ρ ΠΎΠ΄ Ρ Π»Π΅ΠΊΠΈ Π²ΠΈΡΡΡΠ°Π»Π½ΠΈ ΠΌΠ°ΡΠΈΠ½ΠΈ, Π½Π°ΠΏΡΠ»Π½ΠΎ ΡΠ²ΡΡΠ·Π°Π½ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡ ΠΈ Π²ΠΈΡΠΎΠΊΠ° ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»Π½ΠΎΡΡ.
Π‘ΡΠ°ΡΡΠΈΡΠ°ΠΉΡΠ΅ Π½ΡΠΊΠΎΠ»ΠΊΠΎ 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
ΠΠ΅ΡΠ½ΠΎ ΠΏΡΠ΅ΠΌΠ΅ΡΡΠ²Π°ΠΉΡΠ΅ WSL Π΄ΠΈΡΡΡΠΈΠ±ΡΡΠΈΠΈ ΠΌΠ΅ΠΆΠ΄Ρ Windows ΡΠΈΡΡΠ΅ΠΌΠΈ.
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
ΠΡΠΈΡΠΊΠΈ Π³ΠΎΡΠ΅ΠΏΠΎΡΠΎΡΠ΅Π½ΠΈ Ρ
Π°ΡΠ°ΠΊΡΠ΅ΡΠΈΡΡΠΈΠΊΠΈ ΡΠ° Π²ΠΏΠ»Π΅ΡΠ΅Π½ΠΈ Π² ΠΊΡΠ»ΠΌΠΈΠ½Π°ΡΠΈΡΡΠ°
ΠΠΏΠΈΡΠ°ΠΉΡΠ΅, ΠΈΠ½ΡΡΠ°Π»ΠΈΡΠ°ΠΉΡΠ΅ WSL,
ΠΠ·ΡΠΎΡΠ½ΠΈΠΊ: www.habr.com