Guía para principiantes: cómo usar WSL en Windows 11

Era usuario de Ubuntu y Mac, pero hace dos años volví a Windows. ¿Por qué? Bueno, por los altos precios de las MacBooks 😢 y porque en mi empresa me asignaron una máquina con Windows 11 Pro.
Sin embargo, como desarrollador frontend, la mayor parte de mi código y mis aplicaciones se ejecutan en servidores Linux con .Net Core, Node o Docker. Así que usar Linux debería ser una buena opción, ¿verdad?
¿Cómo puedo usar Linux si tengo una máquina con Windows?
En el pasado, usaba VMware o VirtualBox con alguna distribución de Linux, configuraba un arranque dual (dual-boot) o usaba otra máquina con Linux para mis experimentos. Sin embargo, Canonical y Microsoft trabajaron juntos para crear WSL (y WSL2), lo que simplifica llevar Linux a los usuarios de Windows. Elimina la complejidad, facilita la colaboración entre sistemas operativos y permite una integración sencilla entre el host de Windows y Linux, aprovechando los recursos de la máquina.
El objetivo es dar a los desarrolladores frontend que usan Windows y WSL una base clara para entender Linux.
Instalar WSL
Primero, asegúrate de tener la versión de Windows Pro. Luego, abre la terminal y ejecuta el comando wsl --install para instalar WSL en tu Windows.
wsl --installPor defecto, instala la distribución Ubuntu Linux. Una vez completada la instalación, nuestra terminal cambia automáticamente al entorno de Ubuntu y nos pide crear un usuario y una contraseña.
Luego, abre la terminal y escribe wsl para pasar al entorno de Ubuntu. Sin embargo, Ubuntu no es la única opción. Para ver todas las distribuciones disponibles en línea, usa el comando wsl --list --online.
C:\Users\DPAREDES>wsl --list --online
The following is a list of valid distributions that can be installed.
Install using 'wsl.exe --install <Distro>'.
NAME FRIENDLY NAME
Ubuntu Ubuntu
Debian Debian GNU/Linux
kali-linux Kali Linux Rolling
Ubuntu-18.04 Ubuntu 18.04 LTS
Ubuntu-20.04 Ubuntu 20.04 LTS
Ubuntu-22.04 Ubuntu 22.04 LTS
OracleLinux_7_9 Oracle Linux 7.9
OracleLinux_8_7 Oracle Linux 8.7
OracleLinux_9_1 Oracle Linux 9.1
openSUSE-Leap-15.5 openSUSE Leap 15.5
SUSE-Linux-Enterprise-Server-15-SP4 SUSE Linux Enterprise Server 15 SP4
SUSE-Linux-Enterprise-15-SP5 SUSE Linux Enterprise 15 SP5
openSUSE-Tumbleweed openSUSE TumbleweedPara instalar una distro específica, podemos ejecutar el comando wsl --install -d Ubuntu:
wsl --install -d UbuntuO ver todas las distros instaladas en tu máquina con el comando wsl --list:
C:\Users\DPAREDES>wsl --list
Windows Subsystem for Linux Distributions:
rancher-desktop-data (Default)
rancher-desktop
UbuntuPuedes eliminar una distro usando el comando wsl --unregister Ubuntu. Si tienes varias distros, puedes especificar cuál iniciar con wsl -d seguido del nombre de la distro, por ejemplo:
wsl -d UbuntuSi quieres configurar Ubuntu como tu distro por defecto, ejecuta el comando
wsl -s Ubuntu
Bien, ya tenemos Linux listo en nuestra máquina, pero ¿cómo empezamos a trabajar con él?
Conceptos básicos de WSL
Dentro de WSL ya tenemos Linux listo, así que podemos instalar paquetes como Nginx para ejecutar un servidor web local.
sudo apt install nginxDespués de instalarlo, podemos editar el archivo HTML por defecto ubicado en /var/www/html/index.nginx-debian.html.

Podemos editar el archivo index.nginx-debian.html usando nano. Nginx se ejecuta en el puerto 80, por lo que podemos acceder a él mediante la URL http://localhost.

También podemos instalar NVM y la versión más reciente de Angular CLI. Primero, instalamos el gestor de versiones Node Version Manager (NVM) ejecutando el comando:
curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.40.3/install.sh | bashUna vez instalado, instalamos la versión lts con el comando nvm install --lts:
dany@INNO-D0H:~$ nvm install --lts
Installing latest LTS version.
Downloading and installing node v20.11.1...
Downloading https://nodejs.org/dist/v20.11.1/node-v20.11.1-linux-x64.tar.xz...
############################################################# 100.0%
Computing checksum with sha256sum
Checksums matched!
Now using node v20.11.1 (npm v10.2.4)
dany@INNO-D0H:~$ nvm use v20.11.1
dany@INNO-D0H:~$ npm install -g @angular/cliCon Angular CLI listo, creamos una nueva aplicación y accedemos a ella desde nuestra máquina local:
dany@INNO-D0H:~$ ng new lab
dany@INNO-D0H:~$ cd lab/
dany@INNO-D0H:~/lab$ ls
README.md package-lock.json tsconfig.app.json
angular.json package.json tsconfig.json
node_modules src tsconfig.spec.json
dany@INNO-D0H:~/lab$ ng serve
⠏ Building...
Initial chunk files | Names | Raw size
polyfills.js | polyfills | 83.60 kB |
main.js | main | 22.08 kB |
styles.css | styles | 95 bytes |
| Initial total | 105.78 kB
Application bundle generation complete. [0.772 seconds]
Watch mode enabled. Watching for file changes...
➜ Local: http://localhost:4200/
➜ press h + enter to show helpDespués de ejecutar ng serve, accede a la aplicación abriendo http://localhost:4200 en tu navegador.

¿Cómo acceder a los archivos de WSL en Windows?
Cuando ejecutamos WSL, Ubuntu opera en el mismo entorno que nuestra terminal. Pero, ¿cómo accedemos a los archivos de Ubuntu desde Windows?
En el Explorador de archivos de Windows, escribe \\wsl$ y se mostrarán todas las distribuciones de WSL instaladas.

Esto parece bastante directo, pero ¿qué pasa si quiero acceder a mi sistema Windows desde Ubuntu?
Usando el comando ln, creamos un enlace entre Linux y nuestro directorio home:
dany@INNO-D0H:~$ ln -s /mnt/c/Users/DPAREDES/Desktop/projects/ ~/projectsCuando volvemos al directorio home, podemos ver el enlace a la carpeta de proyectos, por ejemplo:
dany@INNO-D0H:~$ cd
dany@INNO-D0H:~$ ls
lab projects
dany@INNO-D0H:~$ cd projects
dany@INNO-D0H:~/projects$ ls
articles challenge-frontend-master lab projectsOtra forma de acceder a los archivos es usando la extensión de WSL en VS Code.

Revisa el tutorial completo en https://code.visualstudio.com/docs/remote/wsl-tutorial

Si como yo eres fan de WebStorm, también tiene soporte: 👇🏼
Resumen
Aprendimos cómo usar WSL para combinar lo mejor de Linux y la simplicidad de Windows. WSL simplifica enormemente la creación de un entorno de pruebas para experimentar con nuestros proyectos y probar en un entorno Linux real. Es mucho más fácil que instalar VMware o VirtualBox, y puedes ejecutar todo el software de Linux desde Windows.
Si quieres aprender más, revisa los siguientes enlaces:
Reflections on career, soft skills, productivity, and the human side of programming.
Artículos Relacionados
Compartir este artículo
Si esta guía te resultó útil, compártela con tu equipo o con otros desarrolladores.
Software real. Lecciones reales.
Comparto las lecciones que aprendí por las malas, para que puedas evitarlas o estar preparado cuando ocurran.
Únete a 13,800+ desarrolladores y lectores.
Cero spam. Cancela tu suscripción en cualquier momento.