Instalando “Terminal” y subsistema Linux en Windows 11

jpinodev

Juan Pino Contreras

Posted on July 29, 2024

Instalando “Terminal” y subsistema Linux en Windows 11

Una Terminal nos proporciona una interfaz de linea de comandos (CLI) donde el usuario escribe comandos o instrucciones en texto que serán interpretados por el sistema operativo.

En 2019 Windows lanza “Terminal”, una aplicación que que busca modernizar el uso de la consola de comandos, permitiendo al usuario abrir múltiples pestañas con diferentes shells (cmd, PowerShell, WSL), modificar la interfaz (UI) y mejorando el rendimiento y compatibilidad con funcionalidades modernas como compatibilidad con UTF-8 y emojis 😜y la integración estrecha de WSL, Azure Cloud Shell, entre otras herramientas de desarrollo.

Esta guía se basa principalmente en las enseñanzas del docente Eric Maxwell de Programadores Chile.

Preparando el equipo para acercarse al modo Semi-Dios

Tocar el cielo no es tan fácil, por lo que debemos prepararnos física y mentalmente para esto. Lo mismo ocurre con los equipos. Es probable que tu equipo no venga con esta configuración lista por lo que te dejo estas indicaciones.

Activando WSL

En inicio escribe “Activar o desactivar las características de Windows”, y habilitaremos las opciones Hyper-v, Subsistema de Windows para Linux y Windows PowerShell 2.0

Image description

También lo puedes activar ejecutando este comando:

dism.exe /online /enable-feature /featurename:Microsoft-Windows-Subsystem-Linux /all /norestart

Habilitar o permitir virtualizacion en la Bios

Es probable que la Bios de tu equipo tampoco esté habilitada para virtualizar un sistema tan poderoso y omnipresente como Linux, por lo que te invito a informarte sobre la versión de tu placa o la marca y modelo de tu equipo y buscar: “cómo ingresar a la Bios para habilitar la opción de “virtualizacion” en mi equipo {marca} {modelo} sin que explote, se queme la casa, mi familia se disuelva y terminar en la cárcel por pirómano”

En tu Bios la puedes encontrar literalmente como “virtualización” o “VTX” en alguna pestaña de “avanzado”👌. Si está deshabilitada, habilítala 😒

Instalemos Windows Terminal ^^

Windows nos recomienda instalar desde Microsoft Store para asegurarnos que tendremos la ultima versión y actualizaciones automáticas. Es miy probable que ya tengas instalado Terminal en tu sistema windows 11, si no es así sigue estos pasos.

Desde Microsoft Store:

En el menú de inicio de Windows puedes buscar Microsoft Store, luego buscas “Terminal” y ya la puedes instalar. EZ-PZ

Image description

⚠️Pon especial atención en escoger la versión regular, ya que existen otras versiones que están en etapa de prueba o de acceso anticipado.

Image description

👽Dato freak: La versión CAN por ejemplo es la versión Canary, éste tipo de versiones siempre están sujetas a errores. El nombre Canary, o Canario en español, viene de la técnica que se usaba en las minas subterráneas de entrar a la excavación con un canario, si el canario muere significa que hay una fuga de gas. 🐦🪦

Desde la terminal (PowerShell o CMD):

Si eres curioso y quieres comenzar a usar y acostumbrarte a la terminal desde ya, abre tu terminal CMD o PowerShell desde inicio o con Windows + R

Image description

Ejecutamos el siguiente comando:

winget install --id Microsoft.WindowsTerminal -e

Image description

Qué estamos haciendo con ese comando?

  • winget, es el gestor de paquetes de Windows.
  • Acción install para instalar un paquete.
  • Especificamos el identificador exacto del paquete Microsoft.WindowsTerminal para asegurarse de que el paquete correcto sea instalado.
  • Utiliza la opción -e para realizar una coincidencia exacta del identificador del paquete.

Una vez instalada la Terminal podremos abrirla desde inicio de Windows.

Image description

Notarás que por defecto abre una terminal PowerShell en una pestaña y puedes abrir otras terminales, todo esto se puede configurar.

Pero antes instalemos el 🎉Subsistema de Linux para Windows🎈

Instalando WSL Ubuntu 22.04

Windows Subsystem for Linux permite ejecutar distribuciones de Linux nativamente en Windows, sin necesidad de una máquina virtual, proporcionando una interfaz de línea de comandos completa y lo más importante: compatibilidad con herramientas de desarrollo de Linux.

Al igual que Windows Terminal, podemos instalar un subsistema Linux desde la store de Microsoft y desde la terminal.

Puedes instalar diferentes distros de Linux. Si buscas “wsl” en la Microsoft Store podrás ver Ubuntu, Debian, Fedora, Arch, Alma, Suse, entre otros. Ubuntu es sugerida como la mejor distro para tomarle el gusto a ese pedazo de cielo de Linux, ya que su principal propósito es mejorar la experiencia de usuario, además de tener una gran comunidad y documentación extensa.

🤓Tips del Dev: Al momento de escoger y aprender cualquier tecnología es importante tener en cuenta estos dos últimos puntos, ya que una gran comunidad y amplia documentación significa que los problemas que nos vayamos a encontrar a futuro es muy probable que estén resueltos o documentados.

Esto mismo debemos considerar al momento de escoger una versión de un sistema o aplicación. Si escogemos la última versión , es muy probable que nos encontremos con errores o bugs no documentados, por otro lado si escogemos una versión muy antigua o “legacy” es muy probable que ya no se le preste soporte o no sea compatible con las últimas tecnologías.

Considerando estos datazos del dev y teniendo en cuenta que estamos dando el primer acercamiento al mundo Linux, vamos a instalar el subsitema Ubuntu, en su versión 22.04 LTS (Long Term Support), ya que a la fecha de hoy, Julio 2024, es la version intermedia mejor evaluada y más estable.

Desde Micrsofot Store:

En el menú inicio de Windows, ingresar a Microsoft Store y buscar Ubuntu, escoger la versión Ubuntu 24.04 LTS e instalar ^^.

Image description

Desde la terminal (PowerShell o CMD):

Abrir nuestra nueva Terminal con PowerShell o abrir una nueva pestaña con CMD.

Primero visualizaremos las versiones disponibles con el siguiente comando:
wsl --list --online

Image description

Es importante saber el nombre exacto que tiene la distro, si ingresamos un carácter o espacio que no corresponde nos indicara un error ya que no encuentra esa distro.

wsl --install Ubuntu-22.04

Nota que no especificamos LTS ya que de por sí la versión 22.04 está definida como LTS.

Una vez instalada nos abrirá una nueva ventana con la Terminal ejecutando el subsitema Linux Ubuntu.

Documentación wsl

⚠️Atención! Evita ingresar Unix username, ya que al hacerlo no seremos usuario Root. En los sistemas Linux el usuario root tiene permisos modo dios, es decir podemos hacer y deshacer sin pedir permisos ni forzando el sistema. Activa tu modo dios cerrando la ventana y reabriendo la Terminal.

Image description
🚫🙅‍♂️🙅🙅‍♀️🚫
Cierra esto 👆

Configurando Subsistema Ubuntu Linux 22.04_AllInOne_FullActivate_God_mode-NoFaKe_noKeyNeeded

Si lo hiciste todo bien, ya eres el Dios de tu sistema y podrás ver esta belleza ✨:

Image description

Pero como en gustos no hay nada escrito, vamos a meter mano y a configurar nuestra terminal.

Lo primero, configuraremos Ubuntu como terminal predeterminada, para que al abrir la terminal lo primero que veamos sea literal la cara de Dios. Para esto haz click derecho en la barra de pestañas y selecciona “configuración”

Image description

Se nos abrirá una nueva pestaña de configuración donde al lado izquierdo podremos ver un menú de opciones y posibilidades a configurar. Aquí escogemos la primera opción “inicio” y luego en “Perfil predeterminado” seleccionamos nuestro sistema Ubuntu 22.04.3 LTS

Image description

Vamos a personalizar la UI.

Existen varias formas de personalizar nuestra terminal ya sea de forma manual o modificando el json que contiene esta config. “Con Ctrl + Mayus (shift) + , ” podemos ingresar al json.

Otra forma es seleccionando la opcion “Valores predeterminados”, ahi podremos definir un icono personalizado para la terminal, cambiar el titulo de la pestaña y definir la ejecucion como administrador.

Image description

Aquí viene lo bueno: En la sección de Configuración adicional, opción -Apariencia podremos:

  • Modificar la combinación de colores
  • La fuente y tamaño de la fuente
  • Activar estilo retro
  • Luminosidad del texto
  • Forma del cursor
  • Imagen de fondo
  • Opacidad
  • Margen o espaciado

Puedes ir cambiando estos valores, guardar e ir visualizando los cambios en una nueva terminal en otra ventana. (para abrir otra terminal en una nueva ventana haz mayus (shift)+ click en el icono de la terminal en inicio o en la barra de inicio). Te sugiero ejecutar “htop”, donde podrás visualizar los recursos de tu sistema con varios colores destacados y asi podras definir tu configuración y previsualizar si se verá cool 🤓

Image description
Para salir de htop haz click en quit, presiona F10 o con “ctr + c”

Posibles errores

Es importante que verifiques los primeros pasos, configurar la Bios y habilitar el sistema wsl.

Si obtuviste este error:

Image description

Como puedes ver, el error comienza indicando WslRegisterDistribution failed y nos dá un código, esto nos da una pista, hay un problema con registro de wsl.

Esto se debe a la versión de wsl, que por defecto viene asignada la versión 2. Como indiqué anteriormente en esta guía, usar la ultima versión por lo general no es muy beneficioso, y este es el caso.

Lo que un buen mortal semi-dios haría, sería copiar el error y buscarlo en google, los más amateurs se irían de cabeza a Chatgpt. En estos casos, Chatgpt puede que no nos ayude mucho ya que hay muchas variables en juego para resolver este error, para empezar, la documentación. Leyendo la documentación de WSL (aka biblia) sobre lo que estamos usando y poniendo toda nuestra fé (y de la cual se alimenta principalmente el chat ) veremos que existe un wsl1 y un wsl2. ¿Había una versión de wsl? al parecer sí, siendo wsl2 la ultima, lo más actualizado, lo mejor que le ha pasado al mundo, en la documentación se compara como superior en contraste a la version wsl1 y es cierto, tiene muchas mejoras, peeero no siempre lo ultimo es lo mejor.

Este problema en mi caso se resolvió con este comando que establece la version wsl1 como default.

wsl --set-default-version 1
Enter fullscreen mode Exit fullscreen mode

De momento me ha funcionado bien, pero debemos considerar updatear a la versión 2 en algún momento, que de seguro traerá la solución a este problema.

Si no te convence wsl1, puedes intentar volver a la versión 2 y luego hacer update.

wsl --update
Enter fullscreen mode Exit fullscreen mode

Si aun así sigues recibiendo el mismo error, prueba actualizando los registros o seguir buscando de otra forma o en otro idioma, como indiqué más arriba, hay una gran conunidad, más de alguien tuvo el mismo problema y ya lo resolvió de alguna forma, si tu lo resolviste de una forma diferente documentalo 😉

En los errores está el aprendizaje, instala, desinstala, reinicia, updatea, upgradea, invierte el orden de los pasos y equivócate, luego acaricia a tu mascota, toma café, camina y avanza.

Cuando veas a un dev concentrado, con las pupilas dilatadas y moviendo las manitas como loco en el teclado, es porque esta resolviendo un problema, y lograr resolver ese problema es la mejor parte de este rubro, dopamina de la buena.. no como esos burdos likes 🫢

El siguiente paso es aprender a usar la terminal, saber cómo se estructura una instrucción, configurar ssh key, instalar zsh, instalar vim, pm2, abrir/cerrar puertos, conectarnos a un vps, en resumen: cómo controlar tanto poder sin morir en el intento. Stay tuned 🐟

💖 💪 🙅 🚩
jpinodev
Juan Pino Contreras

Posted on July 29, 2024

Join Our Newsletter. No Spam, Only the good stuff.

Sign up to receive the latest update from our blog.

Related