WSL (рд▓рд┐рдирдХреНрд╕рдХрд╛ рд▓рд╛рдЧрд┐ рд╡рд┐рдиреНрдбреЛрдЬ рд╕рдмрд╕рд┐рд╕реНрдЯрдо) рд╕рдБрдЧ рдХрд╛рдо рдЧрд░реНрдирдХрд╛ рд▓рд╛рдЧрд┐ рдХреВрд▓ рд▓рд╛рдЗрдлрд╣реНрдпрд╛рдХрд╣рд░реВ

рдо WSL рдорд╛ рдЧрд╣рд┐рд░реЛ рдЫреБ (рд▓рд┐рдирдХреНрд╕рдХреЛ рд▓рд╛рдЧрд┐ рд╡рд┐рдиреНрдбреЛрдЬ рд╕рдмрд╕рд┐рд╕реНрдЯрдо) рд░ рдЕрдм рддреНрдпреЛ WSL2 рдорд╛ рдЙрдкрд▓рдмреНрдз рд╡рд┐рдиреНрдбреЛрдЬ рдЗрдиреНрдиреНрдбрд░рд╣рд░реВ, рдпреЛ рд╡рд╛рд╕реНрддрд╡рдореИ рдЙрдкрд▓рдмреНрдз рд╡рд┐рдХрд▓реНрдкрд╣рд░реВ рдЕрдиреНрд╡реЗрд╖рдг рдЧрд░реНрдирдХреЛ рд▓рд╛рдЧрд┐ рдЙрддреНрдХреГрд╖реНрдЯ рд╕рдордп рд╣реЛред рдореИрд▓реЗ WSL рдорд╛ рдлреЗрд▓рд╛ рдкрд╛рд░реЗрдХреЛ рдПрдХ рдзреЗрд░реИ рдЪрд╛рдЦрд▓рд╛рдЧреНрджреЛ рд╕реБрд╡рд┐рдзрд╛ рднрдиреЗрдХреЛ "рд╡рд┐рд╢реБрджреНрдз" рд╕рдВрд╕рд╛рд░рд╣рд░реВ рдмреАрдЪ рдбрд╛рдЯрд╛ рд╕рд╛рд░реНрди рд╕рдХреНрдиреЗ рдХреНрд╖рдорддрд╛ рд╣реЛред рдпреЛ рдПрдХ рдЕрдиреБрднрд╡ рд╣реЛрдЗрди рдЬреБрди рддрдкрд╛рдЗрдБ рд╕рдЬрд┐рд▓реИ рд╕рдВрдЧ рдкреВрд░реНрдг рднрд░реНрдЪреБрдЕрд▓ рдореЗрд╢рд┐рдирд╣рд░реБ рд╕рдВрдЧ рдкреНрд░рд╛рдкреНрдд рдЧрд░реНрди рд╕рдХреНрдиреБрд╣реБрдиреНрдЫ, рд░ рдпрд╕рд▓реЗ рд▓рд┐рдирдХреНрд╕ рд░ рд╡рд┐рдиреНрдбреЛрдЬ рдмреАрдЪрдХреЛ рдХрдбрд╛ рдПрдХреАрдХрд░рдгрдорд╛ рдмреЛрд▓реНрдЫред

рдкреАрдирдЯ рдмрдЯрд░ рд░ рдЪрдХрд▓реЗрдЯ рдорд┐рд╕рд╛рдЙрдБрджрд╛ рддрдкрд╛рдИрдВрд▓реЗ рдЧрд░реНрди рд╕рдХреНрдиреЗ рдХреЗрд╣реА рд░рд╛рдореНрд░рд╛ рдЪреАрдЬрд╣рд░реВрдХреЛ рдмрд╛рд░реЗрдорд╛ рддрд▓ рдердк рдЬрд╛рдирдХрд╛рд░реА рдЫ!

WSL (рд▓рд┐рдирдХреНрд╕рдХрд╛ рд▓рд╛рдЧрд┐ рд╡рд┐рдиреНрдбреЛрдЬ рд╕рдмрд╕рд┐рд╕реНрдЯрдо) рд╕рдБрдЧ рдХрд╛рдо рдЧрд░реНрдирдХрд╛ рд▓рд╛рдЧрд┐ рдХреВрд▓ рд▓рд╛рдЗрдлрд╣реНрдпрд╛рдХрд╣рд░реВ

рд▓рд┐рдирдХреНрд╕рдмрд╛рдЯ рд╡рд┐рдиреНрдбреЛрдЬ рдПрдХреНрд╕рдкреНрд▓реЛрд░рд░ рд╕реБрд░реБ рдЧрд░реНрдиреБрд╣реЛрд╕реН рд░ рддрдкрд╛рдИрдВрдХреЛ рд╡рд┐рддрд░рдгрдХреЛ рдлрд╛рдЗрд▓рд╣рд░реВ рдкрд╣реБрдБрдЪ рдЧрд░реНрдиреБрд╣реЛрд╕реН

рдЬрдм рддрдкрд╛рдЗрдБ WSL/bash рдХрдорд╛рдгреНрдб рд▓рд╛рдЗрдирдорд╛ рд╣реБрдиреБрд╣реБрдиреНрдЫ рд░ рддрдкрд╛рдЗрдБрдХрд╛ рдлрд╛рдЗрд▓рд╣рд░реВ рджреГрд╢реНрдп рд░реВрдкрдорд╛ рдкрд╣реБрдБрдЪ рдЧрд░реНрди рдЪрд╛рд╣рдиреБрд╣реБрдиреНрдЫ рднрдиреЗ, рддрдкрд╛рдЗрдБ "explorer.exe" рдЪрд▓рд╛рдЙрди рд╕рдХреНрдиреБрд╣реБрдиреНрдЫ рдЬрд╣рд╛рдБ рд╣рд╛рд▓рдХреЛ рдбрд╛рдЗрд░реЗрдХреНрдЯрд░реА рдЫ рд░ рддрдкрд╛рдЗрдБрд▓реЗ рддрдкрд╛рдЗрдБрдХреЛ рд▓рд┐рдирдХреНрд╕ рдлрд╛рдЗрд▓рд╣рд░реВ рд╕рд░реНрднрд░ рдорд╛рд░реНрдлрдд рддрдкрд╛рдЗрдБрд▓рд╛рдИ рдбреЗрд▓рд┐рднрд░ рдЧрд░реЗрдХреЛ Windows Explorer рд╡рд┐рдиреНрдбреЛ рдкреНрд░рд╛рдкреНрдд рдЧрд░реНрдиреБрд╣реБрдиреЗрдЫред рд╕реНрдерд╛рдиреАрдп рдиреЗрдЯрд╡рд░реНрдХ рдпреЛрдЬрдирд╛ 9ред

WSL (рд▓рд┐рдирдХреНрд╕рдХрд╛ рд▓рд╛рдЧрд┐ рд╡рд┐рдиреНрдбреЛрдЬ рд╕рдмрд╕рд┐рд╕реНрдЯрдо) рд╕рдБрдЧ рдХрд╛рдо рдЧрд░реНрдирдХрд╛ рд▓рд╛рдЧрд┐ рдХреВрд▓ рд▓рд╛рдЗрдлрд╣реНрдпрд╛рдХрд╣рд░реВ

Windows рдмрд╛рдЯ рд╡рд╛рд╕реНрддрд╡рд┐рдХ рд▓рд┐рдирдХреНрд╕ рдЖрджреЗрд╢рд╣рд░реВ (CGYWIN рд╣реЛрдЗрди) рдкреНрд░рдпреЛрдЧ рдЧрд░реНрдиреБрд╣реЛрд╕реН

рдореИрд▓реЗ рдпрд╕ рдмрд╛рд░реЗ рдкрд╣рд┐рд▓реЗ рд▓реЗрдЦреЗрдХреЛ рдЫреБ, рддрд░ рдЕрдм рддреНрдпрд╣рд╛рдБ PowerShell рдкреНрд░рдХрд╛рд░реНрдпрд╣рд░реВрдХреЛ рд▓рд╛рдЧрд┐ рдЙрдкрдирд╛рдорд╣рд░реВ рдЫрдиреН, рдЬрд╕рд▓реЗ рддрдкрд╛рдИрдВрд▓рд╛рдИ рд╡рд╛рд╕реНрддрд╡рд┐рдХ рд▓рд┐рдирдХреНрд╕ рдЖрджреЗрд╢рд╣рд░реВ рдкреНрд░рдпреЛрдЧ рдЧрд░реНрди рдЕрдиреБрдорддрд┐ рджрд┐рдиреНрдЫ рд╡рд┐рдиреНрдбреЛрдЬ рднрд┐рддреНрд░рдмрд╛рдЯред

рддрдкрд╛рдИрд▓реЗ рдХреБрдиреИ рдкрдирд┐ рд▓рд┐рдирдХреНрд╕ рдХрдорд╛рдгреНрдбрд▓рд╛рдИ 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...

рд╡рд┐рдиреНрдбреЛрдЬ рдПрдХреНрдЬрд┐рдХреНрдпреВрдЯреЗрдмрд▓рд╣рд░реВ WSL/Linux рдмрд╛рдЯ рдХрд▓ рдЧрд░реНрди/рдЪрд▓рд╛рдЙрди рд╕рдХрд┐рдиреНрдЫ рдХрд┐рдирдХрд┐ рд╡рд┐рдиреНрдбреЛрдЬ рдкрде рд╡рд┐рдиреНрдбреЛрдЬ рдЕрдШрд┐ $PATH рдорд╛ рдЫред рддрдкрд╛рдИрдВрд▓реЗ рдЧрд░реНрдиреБрдкрд░реНрдиреЗ рднрдиреЗрдХреЛ рдЕрдиреНрддрдорд╛ .exe рд╕рдБрдЧ рд╕реНрдкрд╖реНрдЯ рд░реВрдкрдорд╛ рдХрд▓ рдЧрд░реНрдиреБ рд╣реЛред рдпрд╕рд░реА "Explorer.exe" рдХрд╛рдо рдЧрд░реНрджрдЫред рддрдкрд╛рдИрдВ notepad.exe рд╡рд╛ рдХреБрдиреИ рдЕрдиреНрдп рдлрд╛рдЗрд▓ рдкрдирд┐ рдмрдирд╛рдЙрди рд╕рдХреНрдиреБрд╣реБрдиреНрдЫред

рднрд┐рдЬреБрдЕрд▓ рд╕реНрдЯреБрдбрд┐рдпреЛ рдХреЛрдб рд▓рдиреНрдЪ рдЧрд░реНрдиреБрд╣реЛрд╕реН рд░ рд╡рд┐рдиреНрдбреЛрдЬрдорд╛ рдиреЗрдЯрд┐рдн рд░реВрдкрдорд╛ рддрдкрд╛рдИрдВрдХреЛ рд▓рд┐рдирдХреНрд╕ рдПрдкрд╣рд░реВ рдкрд╣реБрдБрдЪ рдЧрд░реНрдиреБрд╣реЛрд╕реН

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

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

рдпрд╣рд╛рдБ Windows Command Line рдмреНрд▓рдЧрдмрд╛рдЯ рд▓реЗрдЦрд╣рд░реВрдХреЛ рдЙрддреНрдХреГрд╖реНрдЯ рдЪрдпрди рдЫред

рдпрд╣рд╛рдБ WSL 2 рдХреЛ рдлрд╛рдЗрджрд╛рд╣рд░реВ рдЫрдиреН

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

рд╕реЗрдХреЗрдиреНрдбрдорд╛ рдзреЗрд░реИ рд▓рд┐рдирдХреНрд╕рд╣рд░реВ рдЪрд▓рд╛рдЙрдиреБрд╣реЛрд╕реН

рдпрд╣рд╛рдБ рдо "wsl --list --all" рдкреНрд░рдпреЛрдЧ рдЧрд░реНрджреИрдЫреБ рд░ рдорд╕рдБрдЧ рдкрд╣рд┐рд▓реЗ рдиреИ рдореЗрд░реЛ рдкреНрд░рдгрд╛рд▓реАрдорд╛ рддреАрди рд▓рд┐рдирдХреНрд╕рд╣рд░реВ рдЫрдиреНред

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

рдо рддрд┐рдиреАрд╣рд░реВрд▓рд╛рдИ рд╕рдЬрд┐рд▓реИ рдЪрд▓рд╛рдЙрди рд╕рдХреНрдЫреБ рд░ рдкреНрд░реЛрдлрд╛рдЗрд▓рд╣рд░реВ рдЕрд╕рд╛рдЗрди рдЧрд░реНрди рд╕рдХреНрдЫреБ рддрд╛рдХрд┐ рддрд┐рдиреАрд╣рд░реВ рдореЗрд░реЛ рд╡рд┐рдиреНрдбреЛрдЬ рдЯрд░реНрдорд┐рдирд▓рдорд╛ рджреЗрдЦрд╛ рдкрд░реНрдЫрдиреНред

Pengwin рд╕рдБрдЧ Windows рдорд╛ X Windows Server рдЪрд▓рд╛рдЙрдиреБрд╣реЛрд╕реН

рдкреЗрдиреНрдЧреНрд╡рд┐рди рдПрдХ рдЕрдиреБрдХреВрд▓рди WSL рд▓рд┐рдирдХреНрд╕ рд╡рд┐рддрд░рдг рдзреЗрд░реИ рд░рд╛рдореНрд░реЛ рдЫред рдорд╛ рдкреНрд░рд╛рдкреНрдд рдЧрд░реНрди рд╕рдХреНрдиреБрд╣реБрдиреНрдЫ рд╡рд┐рдиреНрдбреЛрдЬ рд╕реНрдЯреЛрд░ред Pengwin рд╕рдБрдЧ рдЬреЛрдбреНрдиреБрд╣реЛрд╕реН X рд╕рд░реНрднрд░, рдЙрджрд╛рд╣рд░рдг рдХреЛ рд▓рд╛рдЧреА X410, рд░ рддрдкрд╛рдЗрдБ рдПрдХ рдзреЗрд░реИ рд░рд╛рдореНрд░реЛ рдПрдХреАрдХреГрдд рдкреНрд░рдгрд╛рд▓реА рдкрд╛рдЙрдиреБрд╣реБрдиреНрдЫред

рд╕рдЬрд┐рд▓реИрд╕рдБрдЧ рд╡рд┐рдиреНрдбреЛрдЬ рдкреНрд░рдгрд╛рд▓реАрд╣рд░реВ рдмреАрдЪ WSL рд╡рд┐рддрд░рдгрд╣рд░реВ рд╕рд╛рд░реНрдиреБрд╣реЛрд╕реНред

Ana Betts рд▓реЗ рдпреЛ рдорд╣рд╛рди рдкреНрд░рд╡рд┐рдзрд┐ рдордирд╛рдЙрдБрдЫ, рдЬрд╕рдХреЛ рд╕рд╛рде рддрдкрд╛рдИрд▓реЗ рдЖрдлреНрдиреЛ рдЖрджрд░реНрд╢ WSL2 рд╡рд┐рддрд░рдг рд╕рдЬрд┐рд▓реИрд╕рдБрдЧ рдПрдЙрдЯрд╛ рдореЗрд╕рд┐рдирдмрд╛рдЯ рд╕реНрдерд╛рдирд╛рдиреНрддрд░рдг рдЧрд░реНрди рд╕рдХреНрдиреБрд╣реБрдиреНрдЫ n рдореЗрд╢рд┐рдирд╣рд░реБред

wsl --export MyDistro ./distro.tar

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

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

рдпрддрд┐ рдиреИред рдЙрддреНрддрдо рд▓рд┐рдирдХреНрд╕ рд╕реЗрдЯрдЕрдк рдкреНрд░рд╛рдкреНрдд рдЧрд░реНрдиреБрд╣реЛрд╕реН, рддрдкрд╛рдЗрдБрдХрд╛ рд╕рдмреИ рдкреНрд░рдгрд╛рд▓реАрд╣рд░реВрдорд╛ рд╕рд┐рдВрдХред

WSL рднрд┐рддреНрд░ Windows Git рдкреНрд░рдорд╛рдг рдкреНрд░рджрд╛рдпрдХ рдкреНрд░рдпреЛрдЧ рдЧрд░реНрдиреБрд╣реЛрд╕реН

рдорд╛рдерд┐рдХрд╛ рд╕рдмреИ рд╕реБрд╡рд┐рдзрд╛рд╣рд░реВ рдкрд░рд┐рдгрддрд┐рдорд╛ рдмреБрдиреЗрдХрд╛ рдЫрдиреН Ana Betts рдмрд╛рдЯ рдпрд╕ рд╕реБрдиреНрджрд░ рдкреЛрд╕реНрдЯрдорд╛, рдЬрд╣рд╛рдБ рдпреЛ рдПрдХреАрдХреГрдд рд╣реБрдиреНрдЫ WSL рдорд╛ Windows Git рдкреНрд░рдорд╛рдг рдкреНрд░рджрд╛рдпрдХ, /usr/bin/git-credential-manager рд▓рд╛рдИ рд╢реЗрд▓ рд╕реНрдХреНрд░рд┐рдкреНрдЯрдорд╛ рдкрд░рд┐рдгрдд рдЧрд░реНрджреИ рдЬрд╕рд▓реЗ Windows git creds рдкреНрд░рдмрдиреНрдзрдХрд▓рд╛рдИ рдХрд▓ рдЧрд░реНрдЫред рд╢рд╛рдирджрд╛рд░ред рдпреЛ рд╕реНрд╡рдЪреНрдЫ рд░ рдЪреБрд╕реНрдд рдПрдХреАрдХрд░рдгрдмрд╛рдЯ рдорд╛рддреНрд░ рд╕рдореНрднрд╡ рд╣реБрдиреЗрдЫред

рдпрд╕рд▓рд╛рдИ рдкреНрд░рдпрд╛рд╕ рдЧрд░реНрдиреБрд╣реЛрд╕реН, WSL рд╕реНрдерд╛рдкрдирд╛ рдЧрд░реНрдиреБрд╣реЛрд╕реН, рд╡рд┐рдиреНрдбреЛрдЬ рдЯрд░реНрдорд┐рдирд▓, рд░ рд╕рд┐рд░реНрдЬрдирд╛ рдЧрд░реНрдиреБрд╣реЛрд╕реН Windows рдорд╛ рдПрдХ рд╢рд╛рдирджрд╛рд░ рд▓рд┐рдирдХреНрд╕ рд╡рд╛рддрд╛рд╡рд░рдгред.

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

рдПрдХ рдЯрд┐рдкреНрдкрдгреА рдердкреНрди