43

4 cosas que tal vez no sabías sobre WSL

8688Puntos

hace 2 años

En este blog te presentaré algunas cosas que tal vez no conocías de WSL (Windows Subsystem for Linux) que pueden mejorar tu flujo de desarrollo o que te pueden impulsar a probar WSL. Así podrás desbloquear todos los superpoderes que traen las herramientas de desarrollo de Linux con la comodidad de mantenerte en Windows, sin necesidad de máquinas virtuales o arranques duales.

En este blog podrás encontrar las siguientes secciones:

  1. Una breve introducción sobre WSL.
  2. Cómo configurar Windows Terminal con WSL
  3. Cómo personalizar la apariencia de nuestra terminal
  4. Cómo correr aplicaciones gráficas de Linux directamente en Windows
  5. Cómo importar distros no oficialmente soportadas o personalizadas, o cómo crear y exportar imágenes con todas nuestras configuraciones y archivos si queremos hacer backups, movernos entre computadores o compartir nuestro ecosistema de desarrollo de una forma mucho más fácil

Me podrías recordar, ¿qué es eso de WSL?

WSL (Windows Subsystem for Linux) es la respuesta de Microsoft para hacer de Windows un ecosistema más amigable para desarrolladores. Esto lo hace al integrar el kernel de Linux dentro de Windows; lo cual nos permite correr la mayoría de aplicaciones, así como herramientas de terminal que funcionan en un entorno de GNU/Linux directamente sobre Windows 10 o posteriores.

Tal vez has oído que un desarrollador “serio” usa Linux o Mac. O tal vez que si te quieres dedicar a la seguridad, debes usar sí o sí Kali Linux. Pero, usas Windows porque tiene más juegos, tiene mejores aplicaciones de escritorio, se te hace muy complicado cambiar de sistema operativo o porque simplemente estás feliz con Windows. Por suerte, con WSL puedes tener lo mejor de dos mundos.

Pero esto probablemente ya lo sabes si has completado nuestro curso de prework de Windows o leíste este otro gran blog de nuestro profe Retax Master dónde nos explica por qué deberías usar WSL.

Si aún no tienes WSL, pero ya te convenciste de que al menos le quieres dar una oportunidad y quieres instalarlo, puedes seguir este tutorial de la documentación oficial de Microsoft donde tendrá todos los pasos actualizados (TL; DR: en el buscador de Windows abre PowerShell con permisos de administrador y escribe wsl --install) .

Configura la Windows Terminal con WSL

Windows Terminal es una aplicación moderna desarrollada por Microsoft que permite correr múltiples Shells de línea de comandos como CMD, PowerShell, Bash, WSL, entre otros.

Si no lo tienes instalado, puedes seguir la documentación oficial. Esta tendrá todos los pasos actualizados al día.

La forma en que Windows Terminal permite correr múltiples Shells es mediante un sistema de pestañas (similares a un navegador web) y perfiles. Cada perfil es un conjunto de configuraciones personalizables que te permite elegir la Shell de línea de comandos a correr, su apariencia, su comportamiento inicial, entre otros.

1.png
Así se ve el sistema de pestañas de Windows Terminal

2.png
Cuando se abre una nueva pestaña, se puede elegir el perfil deseado.

Cuando instalas una nueva distribución de Linux en WSL, esta se agregará automáticamente como un perfil nuevo en Windows Terminal.

De igual forma, se pueden agregar nuevos perfiles en caso de que quieras agregar una distribución de forma personalizada o quieras duplicar un perfil de una distribución para tener comportamientos distintos según las necesidades.

3.png

Personaliza tu terminal a tu gusto

A la hora de personalizar nuestra terminal existen muchas opciones. Por ejemplo, puedes seguir un tutorial de nuestro blog donde se dan algunos buenos tips sobre cómo personalizar nuestra terminal.

Adicional a eso, si usas Windows Terminal, puedes entrar al apartado de configuración de perfiles y ajustar distintos parámetros como se ve en la imagen a continuación
4.png
Opciones de configuración de un perfil en Windows Terminal.

Una de las opciones más llamativos es ajustar la apariencia de nuestra terminal. Para esto, existen una gran cantidad de configuraciones y temas que la comunidad ha creado, que se pueden usar como base para crear nuestras propias configuraciones.

Puedes consultar estas páginas para ver distintos temas y copiarlos:

Cuando encuentres uno que te guste, copia el JSON que te ofrece la página, abre la pestaña de configuración de la terminal y dale clic sobre el siguiente botón

5.png

Esto te abrirá un archivo de configuración en formato JSON en tu editor de código predefinido, allí busca la propiedad schemas y pega el JSON copiado anteriormente:

6.png

Luego, entras al apartado de apariencia del perfil que quieras modificar y seleccionas el nombre del nuevo tema que agregaste:

7.png

Corre aplicaciones gráficas de Linux

Aunque en general los desarrolladores se pueden sentir identificados con esta imagen

8.png

Hay ocasiones donde es necesario correr aplicaciones con una interfaz gráfica y hasta hace relativamente poco, esta era una de las principales debilidades de WSL, ya que funcionaba solo sobre la consola. Pero ya no es el caso y ahora, si tienes Windows 11, puedes correr cualquier aplicación con interfaz gráfica. Inclusive aplicaciones optimizadas para uso de tarjetas gráficas como lo son aplicaciones que corren modelos de inteligencia artificial.

Esto ya viene activado de forma predeterminada y tan solo requiere instalar cualquier aplicación que use interfaz gráfica y correrla.

Si tienes alguna duda, puedes consultar la documentación oficial para el uso de aplicaciones gráficas o la documentación oficial para aplicaciones que aprovechan la aceleración de GPU.

Por ejemplo, con esta nueva funcionalidad es posible correr aplicaciones tan complejas como el simulador de LGSVL. Este es un motor de simulación de alta fidelidad que se utiliza para realizar diversas simulaciones de vehículos autónomos. Este requiere claramente de una interfaz gráfica y corre modelos de IA para controlar cada vehículo autónomo de la simulación.

9.png
Captura al correr el simulador en una ambiente con WSL con los scripts de este repo que es producto de una investigación de la que hice parte en el verano de 2021 para la Universidad de California.

Importa y exporta imágenes con todas tus configuraciones y archivos

La CLI (Command Line Interface) de WSL ofrece dos flags no muy conocidos --import y --export. Esta es tal vez la funcionalidad menos conocida de todas. Aunque las demás aparecen de forma clara en la documentación oficial, de esta solo se hace mención como una forma para importar distros de Linux que no están oficialmente soportadas en la tienda de Microsoft.

“Distros” es una forma de llamar a las distintas distribuciones de Linux como Debian, Ubuntu, CentOS, etc.

Estos flags, como puedes tal vez imaginar por sus nombres, nos permiten importar y exportar distribuciones como archivos .tar.

¿Cómo usar el flag --export?

Podemos usar el flag --export para crear un backup de nuestras distribuciones. Este respaldará todos nuestros archivos y configuraciones. Este comando recibe dos parámetros: el nombre de la distribución a exportar y el path donde se guardará la imagen final.

Para conocer el nombre de nuestras distribuciones, podemos usar el comando wsl --list. Al correrlo se verá algo así:

10.png

Si queremos, por ejemplo, exportar nuestra distribución predeterminada (Ubuntu) y guardarla en una carpeta llamada backups, podríamos usar un comando como wsl --export Ubuntu backups\ubuntu.tar.

Esto nos abre la oportunidad de tener copias de seguridad que nos sirven en distintos escenarios: antes de intentar algún cambio disruptivo en nuestra distro, si queremos compartir todo nuestro ambiente de desarrollo con alguien más, si cambiamos de computador o planeamos formatearlo, etc.

¿Cómo usar el flag --import?

Para importar archivos .tar que hayamos creado como backup o como una distro personalizada, usamos el flag--import. Este recibe tres parámetros:

  • El nombre de la nueva distribución
  • El path dónde guardaremos los archivos de la distribución
  • El path del archivo .tar a importar

Siguiendo el ejemplo anterior, si quisiéramos importar el archivo generado al exportar nuestra distro predeterminada en una carpeta llamada WSL/ en el disco duro C, usaríamos un comando como el siguiente wsl --import Ubuntu C:\WSL\ubuntu .\backups\ubuntu.tar

¿Cómo sigo aprendiendo?

Hemos aprendido algunos trucos sobre WSL:

  • Cómo integrarlo con Windows Terminal
  • Personalizar su apariencia
  • Sacarle el máximo provecho con aplicaciones con GUI y aceleración de GPU
  • Crear e importar imágenes de nuestras distros que nos pueden servir como copias de seguridad

Recuerda que en Platzi Nunca Paramos de Aprender y aún tenemos mucho más que compartirte. Aprovecha nuestros cursos para profundizar sobre cómo tener un ambiente virtualizado de Linux dentro de tu computador con Windows, aprendiendo a manejar la terminal con nuestro Curso de Introducción a la Terminal y Línea de Comandos y, luego, con el Curso de Administración de Servidores Linux.

También puedes visitar el blog oficial de Microsoft sobre WSL, donde puedes aprender a mayor profundidad otras características que tiene y cómo funciona de fondo.

Juan José
Juan José
Juanjo

8688Puntos

hace 2 años

Todas sus entradas
Escribe tu comentario
+ 2
Ordenar por:
1
5465Puntos

Hola, Juanjo! A mi no me queda muy claro como conviven el sistema operativo de linux y windows en mi computador. No se si al ser dos contextos diferentes y WSL siendo una maquina virtual, tengo acceso a toda la información de mi computadora desde ambos Sistemas Operativos. Se que desde la terminal, cuando abro Ubuntu, puedo dirigirme al directorio mnt/c y ya ingreso a la raíz del Sistemas Operativo de Windows, por lo cual puedo accerder a todos mis archivos. Ahora bien, yo tengo todos los programas en Windows porque ahí los instale. Usar Ubuntu amerita descargar ahora todo en ambos Sistemas Operativos?. Por ejemplo, yo descargue VSCode en Windows hace meses y nunca lo he descargado en Ubuntu, pero esto no impide que abra archivos desde Ubuntu en VSCode. Sin embargo, las extensiones que descargue en Windows no las tengo cuando ingreso con Ubuntu.

La verdad estoy super enredado y me encantaría que alguien me oriente con esto!!

1
13758Puntos

Gracias por la informacion, no sabia que se podian tener varias distribuciones de linux al tiempo.

Pero el hecho de tenerlas no recagaria mucho el PC??

3
8688Puntos
2 años

Más que todo te podría consumir disco duro; a menos que corras procesos en varias distros al mismo tiempo, lo cual te consumiría memoria y CPU.

1
7895Puntos

Gran publicación, me pareció sorprendente el tema de uso de interfaces y gráficas, genial que ahora WSL soporte esto. Ojalá sirva pronto también para Windows 10.

1
21352Puntos

Excelente información, gracias!

1
12702Puntos

Excelente post, muchas gracias 😁, ojala implemente lo del uso de la interfaz grafica en win10 🙃🤣

1
54091Puntos

Que buen post!