рдбрдмреНрд▓реНрдпреВрдПрд╕рдПрд▓ (рд▓рд┐рдирдХреНрд╕рд╕рд╛рдареА рд╡рд┐рдВрдбреЛрдЬ рд╕рдмрд╕рд┐рд╕реНрдЯрдо) рд╕рд╣ рдХрд╛рдо рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА рдЫрд╛рди рд▓рд╛рдЗрдлрд╣реЕрдХреНрд╕

рдореА рдбрдмреНрд▓реНрдпреВрдПрд╕рдПрд▓ (рд▓рд┐рдирдХреНрд╕рд╕рд╛рдареА рд╡рд┐рдВрдбреЛрдЬ рд╕рдмрд╕рд┐рд╕реНрдЯрдо) рдордзреНрдпреЗ рдЦреЛрд▓ рдЖрд╣реЗ рдЖрдгрд┐ рдЖрддрд╛ рддреЗ рдбрдмреНрд▓реНрдпреВрдПрд╕рдПрд▓ 2 рдордзреНрдпреЗ рдЙрдкрд▓рдмреНрдз рд╡рд┐рдВрдбреЛрдЬ рдЗрдирд╕рд╛рдЗрдбрд░реНрд╕, рдЦрд░реЛрдЦрд░ рдЙрдкрд▓рдмреНрдз рдкрд░реНрдпрд╛рдп рдПрдХреНрд╕рдкреНрд▓реЛрд░ рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА рд╣реА рдПрдХ рдЙрддреНрддрдо рд╡реЗрд│ рдЖрд╣реЗ. рдорд▓рд╛ рдбрдмреНрд▓реНрдпреВрдПрд╕рдПрд▓рдордзреНрдпреЗ рдЖрдврд│рд▓реЗрд▓реЗ рдПрдХ рдЕрддрд┐рд╢рдп рдордиреЛрд░рдВрдЬрдХ рд╡реИрд╢рд┐рд╖реНрдЯреНрдп рдореНрд╣рдгрдЬреЗ рдЬрдЧрд╛рддреАрд▓ рдбреЗрдЯрд╛ "рдирд┐рд╡реНрд╡рд│" рд╣рд▓рд╡рд┐рдгреНрдпрд╛рдЪреА рдХреНрд╖рдорддрд╛. рдкреВрд░реНрдг рд╡реНрд╣рд░реНрдЪреНрдпреБрдЕрд▓ рдорд╢реАрдирд╕рд╣ рддреБрдореНрд╣рд╛рд▓рд╛ рд╕рд╣рдЬ рдорд┐рд│реВ рд╢рдХрдгрд╛рд░рд╛ рд╣рд╛ рдЕрдиреБрднрд╡ рдирд╛рд╣реА рдЖрдгрд┐ рддреЛ рд▓рд┐рдирдХреНрд╕ рдЖрдгрд┐ рд╡рд┐рдВрдбреЛрдЬрдордзреАрд▓ рдШрдЯреНрдЯ рдПрдХрддреНрд░реАрдХрд░рдгрд╛рд╢реА рдмреЛрд▓рддреЛ.

рдкреАрдирдЯ рдмрдЯрд░ рдЖрдгрд┐ рдЪреЙрдХрд▓реЗрдЯ рдорд┐рдХреНрд╕ рдХрд░рддрд╛рдирд╛ рддреБрдореНрд╣реА рдХрд░реВ рд╢рдХрддрд╛ рдЕрд╢рд╛ рдХрд╛рд╣реА рдорд╕реНрдд рдЧреЛрд╖реНрдЯреАрдВрдмрджреНрджрд▓ рдЦрд╛рд▓реА рдЕрдзрд┐рдХ рдорд╛рд╣рд┐рддреА рдЖрд╣реЗ!

рдбрдмреНрд▓реНрдпреВрдПрд╕рдПрд▓ (рд▓рд┐рдирдХреНрд╕рд╕рд╛рдареА рд╡рд┐рдВрдбреЛрдЬ рд╕рдмрд╕рд┐рд╕реНрдЯрдо) рд╕рд╣ рдХрд╛рдо рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА рдЫрд╛рди рд▓рд╛рдЗрдлрд╣реЕрдХреНрд╕

Linux рд╡рд░реВрди Windows Explorer рд▓рд╛рдБрдЪ рдХрд░рд╛ рдЖрдгрд┐ рддреБрдордЪреНрдпрд╛ рд╡рд┐рддрд░рдгрд╛рдЪреНрдпрд╛ рдлрд╛рдЗрд▓реНрд╕рдордзреНрдпреЗ рдкреНрд░рд╡реЗрд╢ рдХрд░рд╛

рдЬреЗрд╡реНрд╣рд╛ рддреБрдореНрд╣реА WSL/bash рдХрдорд╛рдВрдб рд▓рд╛рдЗрдирдордзреНрдпреЗ рдЕрд╕рддрд╛ рдЖрдгрд┐ рддреБрдордЪреНрдпрд╛ рдлрд╛рдЗрд▓реНрд╕рдордзреНрдпреЗ рджреГрд╖реНрдпрджреГрд╖реНрдЯреНрдпрд╛ рдкреНрд░рд╡реЗрд╢ рдХрд░реВ рдЗрдЪреНрдЫрд┐рдд рдЕрд╕рд╛рд▓, рддреЗрд╡реНрд╣рд╛ рддреБрдореНрд╣реА "explorer.exe" рдЪрд╛рд▓рд╡реВ рд╢рдХрддрд╛ рдЬрд┐рдереЗ рд╕рдзреНрдпрд╛рдЪреА рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдЖрд╣реЗ рдЖрдгрд┐ рддреБрдореНрд╣рд╛рд▓рд╛ рддреБрдордЪреНрдпрд╛ Linux рдлрд╛рдЗрд▓реНрд╕рд╕рд╣ рд╕рд░реНрд╡реНрд╣рд░рджреНрд╡рд╛рд░реЗ рд╡рд┐рддрд░рд┐рдд рдХреЗрд▓реЗрд▓реНрдпрд╛ Windows Explorer рд╡рд┐рдВрдбреЛ рдорд┐рд│реЗрд▓. рд╕реНрдерд╛рдирд┐рдХ рдиреЗрдЯрд╡рд░реНрдХ рдпреЛрдЬрдирд╛9.

рдбрдмреНрд▓реНрдпреВрдПрд╕рдПрд▓ (рд▓рд┐рдирдХреНрд╕рд╕рд╛рдареА рд╡рд┐рдВрдбреЛрдЬ рд╕рдмрд╕рд┐рд╕реНрдЯрдо) рд╕рд╣ рдХрд╛рдо рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА рдЫрд╛рди рд▓рд╛рдЗрдлрд╣реЕрдХреНрд╕

рд╡рд┐рдВрдбреЛрдЬ рд╡рд░реВрди рд░рд┐рдЕрд▓ рд▓рд┐рдирдХреНрд╕ рдХрдорд╛рдВрдбреНрд╕ (CGYWIN рдирд╛рд╣реА) рд╡рд╛рдкрд░рд╛

рдореА рдпрд╛рдмрджреНрджрд▓ рдЖрдзреА рд▓рд┐рд╣рд┐рд▓реЗ рдЖрд╣реЗ, рдкрд░рдВрддреБ рдЖрддрд╛ рдкреЙрд╡рд░рд╢реЗрд▓ рдлрдВрдХреНрд╢рдиреНрд╕рд╕рд╛рдареА рдЙрдкрдирд╛рд╡реЗ рдЖрд╣реЗрдд, рдЬреЗ рддреБрдореНрд╣рд╛рд▓рд╛ рд░рд┐рдЕрд▓ рд▓рд┐рдирдХреНрд╕ рдХрдорд╛рдВрдбреНрд╕ рд╡рд╛рдкрд░рдгреНрдпрд╛рдЪреА рдкрд░рд╡рд╛рдирдЧреА рджреЗрддрд╛рдд рд╡рд┐рдВрдбреЛрдЬрдЪреНрдпрд╛ рдЖрддреВрди.

рддреБрдореНрд╣реА рдХреЛрдгрддреНрдпрд╛рд╣реА рд▓рд┐рдирдХреНрд╕ рдХрдорд╛рдВрдбрд▓рд╛ рдереЗрдЯ 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 рдкрд╛рде Windows рдЪреНрдпрд╛ рдЖрдзреА $PATH рдордзреНрдпреЗ рдЖрд╣реЗ. рддреБрдореНрд╣рд╛рд▓рд╛ рдлрдХреНрдд рд╢реЗрд╡рдЯреА .exe рд╕рд╣ рд╕реНрдкрд╖реНрдЯрдкрдгреЗ рдХреЙрд▓ рдХрд░рд╛рдпрдЪреЗ рдЖрд╣реЗ. "Explorer.exe" рдЕрд╕реЗ рдХрд╛рд░реНрдп рдХрд░рддреЗ. рддреБрдореНрд╣реА notepad.exe рдХрд┐рдВрд╡рд╛ рдЗрддрд░ рдХреЛрдгрддреАрд╣реА рдлрд╛рдИрд▓ рджреЗрдЦреАрд▓ рдмрдирд╡реВ рд╢рдХрддрд╛.

рд╡реНрд╣рд┐рдЬреНрдпреБрдЕрд▓ рд╕реНрдЯреБрдбрд┐рдУ рдХреЛрдб рд▓рд╛рдБрдЪ рдХрд░рд╛ рдЖрдгрд┐ рд╡рд┐рдВрдбреЛрдЬрд╡рд░ рддреБрдордЪреНрдпрд╛ рд▓рд┐рдирдХреНрд╕ рдЕреЕрдкреНрд╕рдордзреНрдпреЗ рдкреНрд░рд╡реЗрд╢ рдХрд░рд╛

WSL рдордзреАрд▓ рдлреЛрд▓реНрдбрд░рдордзреНрдпреЗ рдЕрд╕рддрд╛рдирд╛ рддреБрдореНрд╣реА "рдХреЛрдб" рдЪрд╛рд▓рд╡реВ рд╢рдХрддрд╛ рдЖрдгрд┐ рддреБрдореНрд╣рд╛рд▓рд╛ рдЗрдиреНрд╕реНрдЯреЙрд▓ рдХрд░рдгреНрдпрд╛рд╕ рд╕рд╛рдВрдЧрд┐рддрд▓реЗ рдЬрд╛рдИрд▓ VS рд░рд┐рдореЛрдЯ рд╡рд┐рд╕реНрддрд╛рд░.. рд╣реЗ рдкреНрд░рднрд╛рд╡реАрдкрдгреЗ рд╡реНрд╣рд┐рдЬреНрдпреБрдЕрд▓ рд╕реНрдЯреБрдбрд┐рдУ рдХреЛрдб рдЕрд░реНрдзреНрдпрд╛рдордзреНрдпреЗ рд╡рд┐рднрд╛рдЬрд┐рдд рдХрд░рддреЗ рдЖрдгрд┐ рд╡рд┐рдВрдбреЛрдЬ рдЬрдЧрд╛рдд рд╡реНрд╣реАрдПрд╕ рдХреЛрдб рдХреНрд▓рд╛рдпрдВрдЯрд╕рд╣ рд▓рд┐рдирдХреНрд╕рд╡рд░ "рд╣реЗрдбрд▓реЗрд╕" рд╡реНрд╣реАрдПрд╕ рдХреЛрдб рд╕рд░реНрд╡реНрд╣рд░ рдЪрд╛рд▓рд╡рддреЗ.

рдЖрдкрдг рджреЗрдЦреАрд▓ рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдгреЗ рдЖрд╡рд╢реНрдпрдХ рдЖрд╣реЗ рд╡реНрд╣рд┐рдЬреНрдпреБрдЕрд▓ рд╕реНрдЯреБрдбрд┐рдУ рдХреЛрдб ╨╕ рджреВрд░рд╕реНрде рд╡рд┐рд╕реНрддрд╛рд░ - WSL. рдЗрдЪреНрдЫрд┐рдд рдЕрд╕рд▓реНрдпрд╛рд╕, рд╕реНрдерд╛рдкрд┐рдд рдХрд░рд╛ рд╡рд┐рдВрдбреЛрдЬ рдЯрд░реНрдорд┐рдирд▓рдЪреА рдмреАрдЯрд╛ рдЖрд╡реГрддреНрддреА Windows рд╡рд░ рдЕрдзрд┐рдХ рдЪрд╛рдВрдЧрд▓реНрдпрд╛ рдЯрд░реНрдорд┐рдирд▓ рдЕрдиреБрднрд╡рд╛рд╕рд╛рдареА.

рдпреЗрдереЗ рд╡рд┐рдВрдбреЛрдЬ рдХрдорд╛рдВрдб рд▓рд╛рдЗрди рдмреНрд▓реЙрдЧрд╡рд░реАрд▓ рд▓реЗрдЦрд╛рдВрдЪреА рдПрдХ рдЙрддреНрддрдо рдирд┐рд╡рдб рдЖрд╣реЗ.

рдпреЗрдереЗ WSL 2 рдЪреЗ рдлрд╛рдпрджреЗ рдЖрд╣реЗрдд

  • рд╡реНрд╣рд░реНрдЪреНрдпреБрдЕрд▓ рдорд╢рд┐рдиреНрд╕ рд╕рдВрд╕рд╛рдзрдирд╛рдЪреНрдпрд╛ рджреГрд╖реНрдЯреАрдиреЗ рдЧрд╣рди рдЕрд╕рддрд╛рдд рдЖрдгрд┐ рдЦреВрдк рд╕реНрд╡рддрдВрддреНрд░ рдЕрдиреБрднрд╡ рдирд┐рд░реНрдорд╛рдг рдХрд░рддрд╛рдд.
  • рдореВрд│ рдбрдмреНрд▓реНрдпреВрдПрд╕рдПрд▓ рдЦреВрдк "рдХрдиреЗрдХреНрдЯ рдХреЗрд▓реЗрд▓реЗ" рд╣реЛрддреЗ рдкрд░рдВрддреБ рд╡реНрд╣реАрдПрдордЪреНрдпрд╛ рддреБрд▓рдиреЗрдд рддреНрдпрд╛рдЪреА рдХрд╛рдордЧрд┐рд░реА рдЦреВрдкрдЪ рдЦрд░рд╛рдм рд╣реЛрддреА.
  • WSL 2 рд╣рд▓рдХреЗ VM, рдкреВрд░реНрдгрдкрдгреЗ рдХрдиреЗрдХреНрдЯ рдХреЗрд▓реЗрд▓рд╛ рдЗрдВрдЯрд░рдлреЗрд╕ рдЖрдгрд┐ рдЙрдЪреНрдЪ рдХрд╛рд░реНрдпрдХреНрд╖рдорддреЗрд╕рд╣ рдПрдХ рд╕рдВрдХрд░рд┐рдд рджреГрд╖реНрдЯреАрдХреЛрди рдСрдлрд░ рдХрд░рддреЗ.

рд╕реЗрдХрдВрджрд╛рдд рдПрдХрд╛рдзрд┐рдХ рд▓рд┐рдирдХреНрд╕ рдЪрд╛рд▓рд╡рд╛

рдпреЗрдереЗ рдореА "wsl --list --all" рд╡рд╛рдкрд░рдд рдЖрд╣реЗ рдЖрдгрд┐ рдорд╛рдЭреНрдпрд╛ рд╕рд┐рд╕реНрдЯрдорд╡рд░ рдЖрдзреАрдкрд╛рд╕реВрди рддреАрди рд▓рд┐рдирдХреНрд╕ рдЖрд╣реЗрдд.

C:Usersscott>wsl --list --all
Windows Subsystem for Linux Distributions:
Ubuntu-18.04 (Default)
Ubuntu-16.04
Pengwin

рдореА рддреЗ рд╕рд╣рдЬрдкрдгреЗ рдЪрд╛рд▓рд╡реВ рд╢рдХрддреЛ рдЖрдгрд┐ рдкреНрд░реЛрдлрд╛рдЗрд▓ рджреЗрдЦреАрд▓ рдирд┐рдпреБрдХреНрдд рдХрд░реВ рд╢рдХрддреЛ рдЬреЗрдгреЗрдХрд░реВрди рддреЗ рдорд╛рдЭреНрдпрд╛ Windows рдЯрд░реНрдорд┐рдирд▓рдордзреНрдпреЗ рджрд┐рд╕рддреАрд▓.

рдкреЗрдВрдЧрд╡рд┐рдирд╕рд╣ рд╡рд┐рдВрдбреЛрдЬрд╡рд░ рдПрдХреНрд╕ рд╡рд┐рдВрдбреЛрдЬ рд╕рд░реНрд╡реНрд╣рд░ рдЪрд╛рд▓рд╡рд╛

рдкреЗрдВрдЧрд╡рд┐рди рдПрдХ рд╕рд╛рдиреБрдХреВрд▓ WSL Linux рд╡рд┐рддрд░рдг рдЖрд╣реЗ рдЬреЗ рдЦреВрдк рдЫрд╛рди рдЖрд╣реЗ. рд╡рд░ рдорд┐рд│рд╡реВ рд╢рдХрддрд╛ рд╡рд┐рдВрдбреЛрдЬ рд╕реНрдЯреЛрдЕрд░. рд╕рд╣ рдкреЗрдВрдЧрд╡рд┐рди рдПрдХрддреНрд░ рдХрд░рд╛ X рд╕рд░реНрд╡реНрд╣рд░, рдЙрджрд╛рд╣рд░рдгрд╛рд░реНрде X410, рдЖрдгрд┐ рддреБрдореНрд╣рд╛рд▓рд╛ рдПрдХ рдЕрддрд┐рд╢рдп рдорд╕реНрдд рдЗрдВрдЯрд┐рдЧреНрд░реЗрдЯреЗрдб рд╕рд┐рд╕реНрдЯрдо рдорд┐рд│реЗрд▓.

Windows рд╕рд┐рд╕реНрдЯреАрдо рджрд░рдореНрдпрд╛рди WSL рд╡рд┐рддрд░рдг рд╕рд╣рдЬ рд╣рд▓рд╡рд╛.

рдЕреЕрдирд╛ рдмреЗрдЯреНрд╕ рд╣реЗ рдЙрддреНрддрдо рддрдВрддреНрд░ рд╕рд╛рдЬрд░реЗ рдХрд░рддрд╛рдд, рдЬреНрдпрд╛рджреНрд╡рд╛рд░реЗ рддреБрдореНрд╣реА рддреБрдордЪреЗ рдЖрджрд░реНрд╢ WSL2 рд╡рд┐рддрд░рдг рдПрдХрд╛ рдорд╢реАрдирд╡рд░реВрди рд╕рд╣рдЬрдкрдгреЗ рд╣рд╕реНрддрд╛рдВрддрд░рд┐рдд рдХрд░реВ рд╢рдХрддрд╛ n рдЧрд╛рдбреНрдпрд╛

wsl --export MyDistro ./distro.tar

# ╤А╨░╨╖╨╝╨╡╤Б╤В╨╕╤В╨╡ ╨╡╨│╨╛ ╨│╨┤╨╡-╨╜╨╕╨▒╤Г╨┤╤М, Dropbox, Onedrive, ╨│╨┤╨╡-╤В╨╛ ╨╡╤Й╨╡

mkdir ~/AppData/Local/MyDistro
wsl --import MyDistro ~/AppData/Local/MyDistro ./distro.tar --version 2 

рдЗрддрдХрдВрдЪ. рддреБрдордЪреНрдпрд╛ рд╕рд░реНрд╡ рд╕рд┐рд╕реНрдЯреАрдорд╡рд░ рд╕рдордХреНрд░рдорд┐рдд рдХреЗрд▓реЗрд▓реЗ рдкрд░рд┐рдкреВрд░реНрдг Linux рд╕реЗрдЯрдЕрдк рдорд┐рд│рд╡рд╛.

WSL рдордзреНрдпреЗ Windows Git Credential Provider рд╡рд╛рдкрд░рд╛

рд╡рд░реАрд▓ рд╕рд░реНрд╡ рд╡реИрд╢рд┐рд╖реНрдЯреНрдпреЗ рдХрд│рд╕ рдордзреНрдпреЗ рд╡рд┐рдгрд▓реНрдпрд╛ рдЬрд╛рддреАрд▓ рдЕреЕрдирд╛ рдмреЗрдЯреНрд╕рдЪреНрдпрд╛ рдпрд╛ рдЫрд╛рди рдкреЛрд╕реНрдЯрдордзреНрдпреЗ, рдЬреЗрдереЗ рддреЗ рд╕рдорд╛рдХрд▓рд┐рдд рд╣реЛрддреЗ WSL рдордзреНрдпреЗ Windows Git рдХреНрд░реЗрдбреЗрдиреНрд╢рд┐рдпрд▓ рдкреНрд░рджрд╛рддрд╛, /usr/bin/git-credential-manager рд▓рд╛ рд╢реЗрд▓ рд╕реНрдХреНрд░рд┐рдкреНрдЯрдордзреНрдпреЗ рдмрджрд▓рдгреЗ рдЬреЗ Windows git creds рд╡реНрдпрд╡рд╕реНрдерд╛рдкрдХрд╛рд▓рд╛ рдХреЙрд▓ рдХрд░рддреЗ. рддрд▓реНрд▓рдЦ. рд╣реЗ рдХреЗрд╡рд│ рд╕реНрд╡рдЪреНрдЫ рдЖрдгрд┐ рдШрдЯреНрдЯ рдПрдХрддреНрд░реАрдХрд░рдгрд╛рдореБрд│реЗрдЪ рд╢рдХреНрдп рд╣реЛрдИрд▓.

рд╡рд╛рдкрд░реВрди рдкрд╣рд╛, WSL рд╕реНрдерд╛рдкрд┐рдд рдХрд░рд╛, рд╡рд┐рдВрдбреЛрдЬ рдЯрд░реНрдорд┐рдирд▓, рдЖрдгрд┐ рддрдпрд╛рд░ рдХрд░рд╛ рд╡рд┐рдВрдбреЛрдЬрд╡рд░ рдПрдХ рдЪрдордХрджрд╛рд░ рд▓рд┐рдирдХреНрд╕ рд╡рд╛рддрд╛рд╡рд░рдг..

рд╕реНрддреНрд░реЛрдд: www.habr.com

рдПрдХ рдЯрд┐рдкреНрдкрдгреА рдЬреЛрдбрд╛