- Instalación y gestión de WSL, distros y versiones (WSL 1/2) con comandos clave.
- Buenas prácticas de rendimiento: almacenamiento en WSL, Terminal y editor remoto.
- Integraciones esenciales: Git, Docker, bases de datos, GPU y apps GUI.
Si programas en Windows y quieres disfrutar de las herramientas y flujos de trabajo de Linux sin máquinas virtuales pesadas ni arranque dual, WSL es tu mejor aliado. Con el Subsistema de Windows para Linux podrás instalar distribuciones como Ubuntu, Debian o openSUSE y ejecutar utilidades, shells y servidores como si estuvieran en un Linux nativo, pero integrados con Windows.
En esta guía te explico, paso a paso, cómo configurar un entorno de desarrollo moderno con WSL: instalación rápida, elección de distribución, gestión de versiones de WSL, usuario y contraseña, buenas prácticas de almacenamiento, Terminal, VS Code/Visual Studio, Git, Docker, bases de datos, aceleración por GPU, apps gráficas de Linux y comandos clave. Además, verás cómo personalizar tu shell con Zsh y gestionar Node.js con nvm para trabajar con varias versiones sin dolores de cabeza.
Requisitos previos y comprobación de versión de Windows
WSL funciona de forma nativa en Windows 10 versión 2004 (compilación 19041) o superior y en Windows 11. Si no estás seguro de tu versión, pulsa Windows + R, escribe winver
y confirma que tu compilación es compatible.
Para usar el comando simplificado de instalación wsl --install
es recomendable contar con builds recientes (Windows 10 20262+ o Windows 11 actual). Si te falta alguna actualización, puedes hacerlo desde Configuración o con el Asistente de actualización de Windows.
Si el equipo no permite habilitar WSL 2, activa la virtualización en la BIOS/UEFI y asegúrate de que la característica «Plataforma de máquina virtual» esté disponible en Windows. En equipos que vengan de instalaciones manuales antiguas, quizá debas actualizar el kernel de Linux de WSL.
Instalación ultrarrápida de WSL
La forma más directa es abrir PowerShell o Símbolo del sistema como administrador y ejecutar:
wsl --install
Este comando habilita los componentes de WSL y Plataforma de máquina virtual, descarga el kernel de Linux, establece WSL 2 como predeterminado e instala Ubuntu automáticamente. Es posible que Windows te pida reiniciar para completar la instalación.
Si prefieres otra distribución, puedes especificarla en la instalación con:
wsl --install -d <NombreDeLaDistro>
Para ver el catálogo disponible en línea usa:
wsl --list --online
En equipos más antiguos o si quieres un control fino, tienes la opción de seguir la instalación manual desde las características de Windows o importar un TAR con una distro personalizada. Aun así, para la mayoría de usuarios, el atajo con --install
es la vía más cómoda.
Primer arranque: usuario y contraseña de Linux
Tras la instalación, abre la distro desde el menú Inicio (por defecto Ubuntu) y crea tu usuario y contraseña de Linux. Estos credenciales son independientes de tu cuenta de Windows.
La contraseña se escribe “a ciegas” (no verás nada al teclear), es totalmente normal. Una vez creada, tu cuenta será la predeterminada y tendrá permisos administrativos mediante sudo
.
Recuerda que cada distribución tiene sus propias cuentas. Si instalas, reinstalas o agregas nuevas distros, repetirás este proceso para cada una.
¿Olvidaste la contraseña? Abre PowerShell y entra como root en la distro predeterminada:
wsl -u root
Si necesitas otra distro específica, indica su nombre:
wsl -d Debian -u root
Dentro de la sesión root restablece la clave del usuario con:
passwd <usuario>
Cuando veas el mensaje de contraseña actualizada correctamente, sal con:
exit
Actualización y mantenimiento de paquetes
Windows no actualiza automáticamente los paquetes de tu distro, así que conviene hacerlo de vez en cuando. En Ubuntu/Debian:
sudo apt update && sudo apt upgrade
Mantener el sistema al día te ahorra fallos tontos y problemas de compatibilidad con herramientas de desarrollo. Es una rutina básica recomendable después del primer arranque.
Elegir, añadir y gestionar distribuciones
Puedes instalar distros desde Microsoft Store, con wsl --install -d
o importarlas en formato TAR para escenarios personalizados. WSL no limita el número de distros: usa tantas como necesites.
Para listar distros instaladas y ver su versión de WSL (1 o 2), ejecuta:
wsl -l -v
Si quieres que las nuevas instalaciones usen una versión concreta por defecto:
wsl --set-default-version 2
Para cambiar la versión de una distro concreta:
wsl --set-version <NombreDistro> 2
También puedes elegir qué distro se usa por defecto al invocar wsl
:
wsl -s <NombreDistro>
Y para arrancar una distro específica directamente sin cambiar la predeterminada:
wsl -d <NombreDistro>
Windows Terminal: la experiencia ideal para varias consolas
Windows Terminal aporta pestañas, paneles, aceleración por GPU, Unicode/UTF-8 y personalización de atajos, colores y temas. Si vas a convivir con varios shells (PowerShell, CMD, varias distros WSL, Azure CLI…), te resultará comodísimo.
Cada vez que instales una distro nueva, Windows Terminal la detectará y podrás afinar su perfil a tu gusto. Es la pareja perfecta para WSL si trabajas con múltiples líneas de comandos.
Almacenamiento de archivos y rendimiento
Abre el directorio actual de WSL en el Explorador de archivos con:
explorer.exe .
Regla de oro: guarda los proyectos en el sistema de archivos del SO cuyas herramientas vas a usar. Si trabajas con herramientas Linux (gcc, node, python, etc.) desde la terminal de WSL, guarda en el FS de WSL.
Rutas recomendadas en WSL:
- WSL:
\\wsl$\<NombreDistro>\home\<Usuario>\Proyecto
- Evita:
C:\Users\<Usuario>\Proyecto
o/mnt/c/Users/<Usuario>/Proyecto
si compilas/ejecutas con herramientas Linux por el impacto de rendimiento.
El acceso cruzado entre Windows y Linux existe, pero puede penalizar mucho el rendimiento en tareas intensivas. Ajusta dónde guardas según tu flujo de trabajo.
Editor de código: VS Code y Visual Studio
Visual Studio Code con la extensión Remote Development convierte WSL en un entorno de desarrollo completo. Una vez instalada, desde la terminal de la distro abre tu proyecto con:
code .
Trabajarás “dentro” de la distro con todo el ecosistema de extensiones, depuración y terminal integrado. Además, puedes saltar entre entornos (WSL, SSH o contenedores) en segundos.
Para C++ multiplataforma, Visual Studio 2022 integra proyectos CMake con WSL y conexiones SSH en la misma instancia. Si tu stack es C++ nativo, merece la pena.
Git y gestión de credenciales
Instala Git en la distro y configura nombre y correo:
sudo apt install -y git
git config --global user.name "Tu Nombre"
git config --global user.email "tu@correo.com"
En proyectos híbridos Windows/WSL, apóyate en el Administrador de credenciales de Windows y/o las capacidades integradas de VS Code. Revisa también el manejo de finales de línea (LF/CRLF) y tu .gitignore
para evitar sorpresas.
Contenedores con Docker en WSL 2
Docker Desktop se integra con WSL 2, permitiéndote ejecutar contenedores Linux con rendimiento cercano al nativo. Puedes abrir el proyecto como “Remote – Containers” desde VS Code y desarrollar dentro del contenedor.
Esta configuración facilita equipos con entornos reproducibles y aislar dependencias sin ensuciar la distro base. Ideal para stacks complejos o microservicios.
Bases de datos en WSL
WSL es un entorno perfecto para levantar MySQL, PostgreSQL, MongoDB, Redis, SQLite o incluso SQL Server para Linux. Instálalas desde el gestor de paquetes de tu distro o siguiendo las guías oficiales de cada motor.
Al trabajar la app y la base dentro de WSL reduces latencias y evitas problemas de compatibilidad entre SO. Si necesitas exponer puertos a Windows, podrás conectarte desde clientes nativos sin complicaciones.
Aceleración por GPU y cargas de trabajo exigentes
WSL permite aprovechar la GPU del equipo para acelerar tareas de cómputo, como entrenamiento de modelos de machine learning. Con los drivers adecuados y WSL 2, notarás mejoras claras en rendimiento.
Si tu trabajo implica CUDA, TensorFlow, PyTorch u OpenCL, revisa los requisitos de drivers y versiones. Merece la pena si tu flujo es intensivo en GPU.
Aplicaciones de GUI de Linux en Windows
WSL soporta aplicaciones gráficas de Linux, por lo que puedes abrir editores o utilidades con interfaz directamente en Windows. Es cómodo para herramientas de nicho que solo existen en Linux.
La integración de ventanas es transparente: se comportan como apps de escritorio dentro de Windows. Útil para flujos en los que combinas CLI con utilidades GUI específicas.
Comandos esenciales e interoperabilidad Windows/Linux
Una de las grandes ventajas de WSL es combinar comandos de ambos mundos en una sola línea. Algunos ejemplos útiles:
- Listar con Linux desde PowerShell:
wsl ls -la
- Mezclar Linux y Windows:
wsl ls -la | findstr "git"
odir | wsl grep git
- Abrir herramientas de Windows desde WSL:
notepad.exe .bashrc
- Filtrar IP con utilidades cruzadas:
- En Bash:
ipconfig.exe | grep IPv4 | cut -d: -f2
- En PowerShell con WSL:
ipconfig.exe | wsl grep IPv4 | wsl cut -d: -f2
- En Bash:
Para cambiar de distro al vuelo desde Windows sin alterar la predeterminada, recuerda que wsl -d <NombreDistro>
abre esa distribución puntual. Si quieres salir de una sesión incrustada, escribe exit
.
Montar discos externos o USB en WSL
WSL 2 permite montar unidades externas, USB o particiones Linux. Una vez identificada la ruta, puedes montarla con el comando mount
desde WSL y trabajar con su contenido.
Resulta práctico para copiar datos, analizar discos o reutilizar medios de desarrollo sin salir del entorno. Desmonta cuando termines para evitar bloqueos.
Formas de abrir y alternar tus distribuciones
Puedes lanzar la distro desde el menú Inicio (escribe, por ejemplo, “Ubuntu”), desde PowerShell/CMD tecleando su nombre o con wsl.exe
para abrir la predeterminada. Ajusta el método a lo que te resulte más cómodo.
Para obtener información rápida del estado de WSL, usa wsl [comando]
desde Windows, por ejemplo wsl -l -v
para listar distros y versiones o wsl pwd
para ver la ruta actual montada.
Versiones preliminares y actualización de WSL
Si te gustan las novedades, puedes unirte a Windows Insider (Canal Dev, Beta o Versión preliminar) para recibir funciones recientes de WSL. La estabilidad varía por canal, elige en función de tus necesidades.
Sin cambiar de canal puedes probar la versión previa de WSL con:
wsl --update --pre-release
Consulta las notas de versión de WSL para ver cambios y requisitos de cada build. En entornos de trabajo, valora el riesgo antes de probar previews.
Personaliza tu terminal: Zsh, Oh My Zsh y temas
Para una experiencia más productiva, instala Zsh y Oh My Zsh con temas y plugins que mejoran el autosuggest, el coloreado y el prompt. En Ubuntu/Debian:
sudo apt update && sudo apt install -y zsh curl git
Haz Zsh tu shell por defecto:
chsh -s $(which zsh)
Instala Oh My Zsh (vía curl):
sh -c "$(curl -fsSL https://raw.githubusercontent.com/ohmyzsh/ohmyzsh/master/tools/install.sh)"
Para el tema Powerlevel10k:
git clone --depth=1 https://github.com/romkatv/powerlevel10k.git ${ZSH_CUSTOM:-$HOME/.oh-my-zsh/custom}/themes/powerlevel10k
Actívalo editando ~/.zshrc
y estableciendo:
ZSH_THEME="powerlevel10k/powerlevel10k"
Plugins recomendados: añade en plugins=(...)
de ~/.zshrc
:
- git
- zsh-autosuggestions
git clone https://github.com/zsh-users/zsh-autosuggestions ${ZSH_CUSTOM:-~/.oh-my-zsh/custom}/plugins/zsh-autosuggestions
- zsh-syntax-highlighting
git clone https://github.com/zsh-users/zsh-syntax-highlighting.git ${ZSH_CUSTOM:-~/.oh-my-zsh/custom}/plugins/zsh-syntax-highlighting
Tras guardar cambios en ~/.zshrc
, reinicia la terminal o ejecuta source ~/.zshrc
para aplicar la configuración. Ajusta fuentes y símbolos si el tema lo solicita.
Node.js en WSL 2 con nvm (múltiples versiones)
Para trabajar con varias versiones de Node.js sin conflictos, usa nvm (Node Version Manager). Instala nvm con:
curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.7/install.sh | bash
# Cierra y abre la terminal o:
export NVM_DIR="$HOME/.nvm"
[ -s "$NVM_DIR/nvm.sh" ] && . "$NVM_DIR/nvm.sh"
Instala Node.js (LTS o una versión concreta) y comprueba versiones:
nvm install --lts
node -v
npm -v
Lista e intercambia versiones cuando lo necesites:
nvm ls
nvm install 22
nvm alias default 22
nvm use 22
Con nvm evitas “romper” proyectos al cambiar de versión y mantienes un entorno limpio por cada app. Si usas VS Code, se integrará con la versión activa en la terminal.
Comandos básicos de Bash para orientarte
Un repaso rápido de utilidades comunes te ahorrará tiempo si estás empezando en la línea de comandos:
pwd
: muestra la ruta actual.ls
,ls -a
,ls -l
: lista archivos y opciones.cd
,cd ..
,cd ~
: navega entre directorios.mkdir
ytouch
: crea carpetas y archivos.cat
: muestra el contenido de un archivo.rm
: elimina archivos/carpeta (¡cuidado, no hay papelera!).history
y!número
: revisa y repite comandos anteriores.clear
: limpia la pantalla.
Con estas nociones básicas podrás moverte con solvencia y centrarte en tu proyecto cuanto antes. La práctica diaria es lo que consolida estos atajos.
Diagnóstico y solución de problemas comunes
Si wsl --install
falla, comprueba actualizaciones de Windows, que la virtualización esté habilitada y que puedas activar “Plataforma de máquina virtual”. En escenarios heredados, instala/actualiza el kernel de WSL manualmente.
Si no arranca la distro o se queda colgada, prueba a reiniciar WSL con:
wsl --shutdown
Para incidencias con permisos o rutas entre sistemas, revisa dónde guardas el código y evita trabajar con herramientas Linux sobre /mnt/c
si buscas rendimiento. También ayuda revisar antivirus que puedan interferir.
Con todo lo anterior ya tienes una base sólida para un entorno de desarrollo potente en Windows con alma de Linux, desde la instalación y mantenimiento de WSL hasta la integración con VS Code/Visual Studio, Git, Docker y bases de datos, pasando por la aceleración por GPU, apps gráficas y una terminal afinada con Zsh; a partir de aquí, solo queda adaptar los detalles a tu stack y empezar a producir.
Redactor apasionado del mundo de los bytes y la tecnología en general. Me encanta compartir mis conocimientos a través de la escritura, y eso es lo que haré en este blog, mostrarte todo lo más interesante sobre gadgets, software, hardware, tendencias tecnológicas, y más. Mi objetivo es ayudarte a navegar por el mundo digital de forma sencilla y entretenida.