He publicado varias veces sobre el Subsistema de Windows para Linux que le permite ejecutar Linux en Windows 10 sin una VM. Consulte mi YouTube sobre la edición de código y archivos en el subsistema de Windows para Linux en Windows 10. Solo hay una regla. Puede meterse con archivos de Windows desde Linux, pero no puede meterse con archivos de Linux desde Windows. De lo contrario, vuélvete loco y disfruta. Estas son algunas de mis publicaciones anteriores que deberías revisar:
- El año de Linux en el escritorio (Windows):consejos y trucos de WSL
- Configuración de un entorno de desarrollo brillante dentro de Linux en Windows 10
- Instalación de Fish Shell en Ubuntu en Windows 10
- Escribir y depurar aplicaciones Linux C++ desde Visual Studio usando el "Subsistema de Windows para Linux"
- Ubuntu ahora en la tienda de Windows:actualizaciones de Linux en Windows 10 y consejos importantes
WSL es bastante fantástico, aunque su acceso al disco es más lento que el Linux nativo, lo uso todos los días. Si desea configurar Linux en su máquina con Windows 10, simplemente enciéndalo, luego diríjase a la tienda de Windows y busque "Linux".
Puede activar Linux en Windows 10 escribiendo "Características de Windows" y marcando "Subsistema de Windows para Linux". Luego obtenga un Linux de la tienda de Windows.
Si prefiere usar PowerShell y hacerlo en una sola línea, simplemente hágalo desde un aviso de administrador de PowerShell:
Enable-WindowsOptionalFeature -Online -FeatureName Microsoft-Windows-Subsystem-Linux
Luego ve a buscar uno (¡o más!) de estos en la Tienda:
- Ubuntu
- Abrir SUSE
- SLES
- Kali Linux
- Debian GNU/Linux
Cuando está en un shell de Windows como PowerShell o CMD, es posible que desee ejecutar Linux y/o saltar cómodamente entre shells. Puedes hacerlo de varias maneras. La forma mejor y recomendada es ejecutar "wsl.exe", ya que iniciará su distribución predeterminada. También puede simplemente escribir el nombre de la distribución. Entonces puedo escribir "ubuntu" y entrar allí directamente.
Puede escribir "bash", pero no se recomienda si ha cambiado de caparazón. Si ha configurado zsh o fish y escribe bash, seguirá intentando ejecutar bash.
Aquí escribí wslconfig y pueden ver que tengo Ubuntu y Debian instalados, con Ubuntu como predeterminado cuando escribo "wsl".
C:\Users\scott>wslconfig /list
Windows Subsystem for Linux Distributions:
Ubuntu-18.04 (Default)
Debian
Ahora que sé cómo ejecutar wsl desde cualquier lugar, incluso puedo canalizar cosas dentro y fuera de Linux desde el exterior. Por ejemplo, aquí estoy en cmd.exe pero estoy llamando comandos en Linux, que salen, luego vuelven a entrar, etc. ¡Puedes mezclar y combinar como quieras!
C:\dev>type hello.sh
echo Hello
C:\dev>wsl cat /mnt/c/dev/hello.sh | wsl fromdos | wsl /bin/sh
Hello
Esto significa que incluso cuando estoy en CMD o PowerShell, puedo usar los comandos de Linux que me resulten convenientes o familiares. Por ejemplo, aquí estoy canalizando un archivo de registro de Windows Update en un comando de Linux sha1sum. Tenga en cuenta el uso de - para aceptar la entrada estándar, ¡aunque esa entrada sea de Windows!
C:\Users\scott\Desktop>type WindowsUpdate.log | wsl sha1sum -
3b48adce8f6c9cb816e8845d824dacc0440ca1b8 -
Dulce. Hay una serie de buenas técnicas avanzadas si desea que sus instalaciones de WSL sean más inteligentes Y se configuren automáticamente. Puede crear un archivo en /etc/wsl.conf para afectar su DNS, metadatos y montaje de conducción.
Cuando está en un shell de WSL, su unidad de Windows (su unidad principal) está en /mnt/c. Así que aquí está mi escritorio de Windows visto desde WSL:
La mayor parte de mi trabajo de desarrollo está en /mnt/d/github, por ejemplo. De esa manera puedo usar VS Code desde Windows pero ejecutar Node/Ruby/Go/Whatever desde WSL.
Guardo mis archivos en mi unidad de Windows, los edito en VS Code, pero ejecuto las cosas en WSL. Nuevamente, nunca use las utilidades de Windows para acceder y/o editar archivos en el subsistema WSL/Linux. Además, siempre sea consciente de su situación CR/LF, y sea realmente consciente si va a ejecutar git tanto en Windows como en WSL.
Aquí está VS Code en la parte superior, WSL/Ubuntu ejecutando Node en la parte inferior y la aplicación de nodo local ejecutándose en Edge en Windows en la parte inferior derecha. Estamos compartiendo sistemas de archivos y espacio de puerto de red:
Incluso puede compartir variables de entorno entre WSL y Windows con una variable de entorno especial llamada WSLENV. Esto es bastante avanzado pero súper poderoso. Lea esto cuidadosamente. Haces una variable de entorno que es una lista de nombres de otras variables que quieres traducir entre entornos .
Eso significa que puedes hacer algo como esto. Estoy en WSL y tengo una variable de entorno que apunta a una ubicación en el sistema de archivos. Necesito que sea correcto en ambos mundos.
scott@IRONHEART:/mnt/d$ export MYLINUXPATH=/mnt/d/github/expresstest
scott@IRONHEART:/mnt/d$ export WSLENV=MYLINUXPATH/p
scott@IRONHEART:/mnt/d$ cmd.exe
D:\>echo %MYLINUXPATH%
D:\github\expresstest
Lea eso cuidadosamente. Es impresionante y es muy configurable.
Hay muchos usuarios de WSL y muchos han reunido excelentes listas de recursos como Awesome-WSL de Hayden.
También vale la pena señalar que WSL es solo ahora una consola entre la que puede elegir. Hay PowerShell, CMD.exe y media docena de Linux. Incluso puede crear su propia distribución de Linux personalizada para su empresa si lo desea. Y hay todo un mundo de consolas de terceros que se ubican encima de/reemplazan conhost.exe para que pueda tener consolas con pestañas, fuentes geniales, las que se basan en tecnología web, ¡lo que sea! Incluso puede elegir WSL/bash como shell predeterminado en Visual Studio Code si lo desea con Ctrl+~.
Espero que esto te ayude a empezar con Linux en Windows. ¿Qué me perdí? Suena apagado en los comentarios.
Patrocinador :Obtenga una vista previa del último JetBrains Rider con su Explorador de ensamblados, submódulos de Git, inyecciones de lenguaje SQL, generador de perfiles de rendimiento integrado y compatibilidad con Unity más avanzada.