¿Es Windows un buen sistema para los geeks de la línea de comandos?

La reciente llegada oficial del comando sudo a Windows 11 ha reforzado la apuesta de Microsoft por las interfaces de líneas de comandos.

La reciente llegada oficial del comando sudo a Windows 11, aunque su implementación no tenga en realidad relación con la disponible para Linux y otros sistemas tipo Unix, ha reforzado la apuesta de Microsoft por las interfaces de líneas de comandos. Esto posiblemente choque un poco a los más veteranos, que vieron cómo la compañía intentó dar el mínimo protagonismo a dicha interfaz cuando NT llegó oficialmente a los entornos domésticos con Windows XP (sí, antes estuvo Windows 2000, pero este sistema estuvo dirigido oficialmente a empresas).

Windows, sea adrede o no, terminó asentando entre sus usuarios una fuerte cultura de rechazo de las interfaces de líneas de comandos, las cuales eran percibidas como viejas, obsoletas y difíciles. Sin embargo, y a pesar del presunto empecinamiento de Microsoft o sus usuarios, la realidad es que la línea de comandos ha resistido muy bien el paso del tiempo, no solo por el entusiasmo que profesan hacia ella muchos usuarios de Linux y sistemas Unix y tipo Unix, sino también porque tiene ventajas objetivas frente a las interfaces gráficas.

Entre las ventajas de la línea de comandos frente a las interfaces gráficas están una mayor velocidad de uso (una vez se domina), un mayor control de las acciones que se ejecutan, un consumo de recursos menor y repetibilidad mediante la utilización de scripts. Si la comparativa la hacemos con Windows 10 o Windows 11, hay otro aspecto en el que la línea de comandos se muestra superior: la consistencia.

Las dos últimas versiones del sistema operativo de Microsoft, aunque hayan mejorado en ese frente con el paso de los años, han llegado a tener graves problemas de consistencia que llegaban a hacer difícil la orientación, ya que cada ventana tenía un diseño diferente de la anterior. Esto es algo que raras veces ocurre con interfaces de líneas de comandos debido a que estas suelen estar diseñadas para ser bastante consistentes, por lo que al final su uso puede resultar hasta más cómodo para la realización de ciertas tareas avanzadas.

La recuperación de protagonismo de la interfaz de línea de comandos (CLI) en Windows tiene dos aparentes puntuales: la expansión de PowerShell, que es un desarrollo más veterano de lo que aparenta, y sobre todo WSL, el subsistema de Windows para Linux que permite ejecutar distribuciones Linux dentro de Windows. Si bien Linux ha mejorado mucho en cuanto a su manejo a través de interfaces gráficas, entre sus usuarios sigue existiendo una fuerte cultura ligada a la línea de comandos y muchas herramientas para desarrollo de software, administración o dirigidas a ciertas tareas avanzadas siguen apoyándose en la CLI.

La emergencia de PowerShell y WSL y el hecho de que CMD siga siendo una herramienta popular han hecho que Microsoft tuviera que proporcionar alguna interfaz que permitiera cierta centralización. Aquí es donde entra Windows Terminal, que se ha convertido en la consola predeterminada de Windows 11 gracias a las facilidades que ofrece para acceder a las distintas interfaces que uno puede tener dentro del sistema.

Windows, por su trayectoria, puede dar la sensación de que no es un sistema operativo hecho para los geeks de la línea de comandos, pero en realidad es todo lo contrario. Es más, incluso hay diversas aplicaciones de terceros que pueden hacer las delicias de aquellos que prefieran utilizar o incluso trabajar con una terminal, y es que, a la hora de la verdad, la CLI y la interfaz gráfica son complementarias, cosa que queda en evidencia en aplicaciones como Visual Studio Code.

Sin más dilación, voy a mencionar algunas aplicaciones de terminal que hay para Windows, las cuales deberían ser compatibles con las versiones 10 y 11 del sistema.

Cmder

Cmder es una de las aplicaciones más populares de su categoría de entre las que soportan Windows. Es portable, por lo que en lugar de un instalador .exe o .msi, el usuario se encontrará con un fichero ZIP que puede descomprimir donde quiera. Está escrita con C++ y PowerShell, se basa en el también emulador de terminal ConEmu y es de código abierto al estar publicada bajo la permisiva licencia MIT.

Cmder, que por defecto se apoya en CMD, permite habilitar de manera fácil interfaces de PowerShell, Bash y para WSL, así que se puede decir que, al menos de partida, puede cubrir las necesidades de los usuarios de Windows más avanzados. Las distintas terminales abiertas por el usuario son gestionadas mediante pestañas que se pueden renombrar e incluye las típicas opciones de este tipo de aplicaciones, las cuales suelen permitir cambiar la tipografía de las letras y la modificación de los colores.

Una característica interesante es el modo Quake, que permite ocultar y mostrar la aplicación como en los clásicos videojuegos de Id Software, pero su correcto funcionamiento puede requerir de cierta mano por parte del usuario.

ConEmu

Ya que he mencionado a ConEmu, qué menos que continuar la lista con esta aplicación. Esta aplicación de terminal sí cuenta con un instalador "clásico" en formato .exe y también es de código abierto, pero emplea la licencia BSD de tres cláusulas en lugar de la MIT (las licencias BSD también son permisivas, por si alguien lo pregunta).

Como este software es padre (o madre, según se vea) de otro, lo normal es que comparta muchas características, así que el usuario se encontrará en el primer inicio con la selección del idioma, el esquema de color, la opción de habilitar desde el primer momento el modo Quake y la posibilidad de elegir entre la interfaces PowerShell, Bash y WSL, además de ser compatible con PuTTY y Cygwin. Sin embargo, las pestañas se encuentran por defecto en la parte superior de la ventana en lugar de la inferior.

Otras posibilidades interesantes son la capacidad de poner en funcionamiento aplicaciones gráficas; el soporte para múltiples pestañas para consolas, visualizadores, paneles y editores; y las múltiples opciones que pone a disposición para personalizar la aplicación.

La suma de sus virtudes y características han hecho que ConEmu sea una herramienta popular entre los programadores.

Console Z

Console Z es otra aplicación portable que básicamente es un envoltorio para CMD, aunque también es capaz de soportar otros intérpretes de líneas de comandos como Bash y 4NT. Aquí nos encontramos con una aplicación relativamente vitaminada a nivel de interfaz que soporta pestañas y división tanto vertical como horizontal.

Otras características interesantes de Console Z son la agrupación de vistas, la posibilidad de hacer zoom con Ctrl más girar la rueda del ratón, una animación de consola al estilo Quake, renderización de la fuente tipográfica monoespaciada de manera estricta, opacidad configurable del color de fondo del texto y fragmentos de código.

Esta aplicación gráfica de terminal no es tan potente como las anteriores, pero puede ser suficiente para aquellos que no salgan del clásico CMD.

Hyper

Y aquí otra aplicación gráfica de terminal de código abierto, pero Hyper tiene la peculiaridad de estar construida con el controvertido framework Electron. Esto ya deja entrever que estamos ante una webapp, pero gracias a eso es capaz de ofrecer soporte multiplataforma para Windows, Linux y macOS. Por si alguien lo pregunta, su código fuente está publicado bajo la licencia MIT.

Los responsables de Hyper dicen que "el objetivo del proyecto es crear una experiencia hermosa y extensible para los usuarios de la interfaz de línea de comandos, basada en estándares web abiertos. Al principio, nos centraremos principalmente en la velocidad, la estabilidad y el desarrollo de la API correcta para los autores de extensiones. En el futuro, anticipamos que la comunidad presentará adiciones innovadoras para mejorar lo que podría ser la interfaz de productividad más simple, potente y mejor probada".

Por ahora se trata de una aplicación que requiere de tener ciertos conocimientos avanzados y de programación, ya que su configuración se hace modificando un fichero de texto en lugar de lidiar con una ventana de formulario. De entre sus características sobresale el hecho de que sus extensiones están disponibles en npm, por lo que tiene una estrecha relación tecnológica con Node.js.

Fluent Terminal

Fluent Terminal es una aplicación que se basa en Universal Windows Platform (UWP) y tecnologías web. Su código fuente está publicado bajo la licencia GPLv3, por lo que puede ser definido como software libre de línea dura, y es posible obtenerla tanto descargándola de la sección de lanzamientos de su repositorio de GitHub como desde la Microsoft Store.

Fluent Terminal es una aplicación que está algo más lograda que otras de la lista a nivel estético y permite acceder CMD, PowerShell y WSL mediante la apertura de nuevas pestañas y/o nuevas ventanas. Otras cosas interesantes son el soporte integrado para SSH; configuración de temas y la apariencia, la importación y exportación de temas; función de búsqueda; la configuración de perfiles de la shell para poder cambiar entre ellas rápidamente; una extensión para VSCode; y un buen acabado estético de su ventana de opciones, la cual sigue las líneas de diseño de los Windows modernos.

Tabby

Tabby se define a sí misma como "una terminal para la era moderna" y es otra que está publicada como código abierto bajo la licencia MIT y que ofrece soporte multiplataforma al abarcar Windows, Linux y macOS. Un detalle interesante es que el instalador para Windows pregunta en el primer paso si la aplicación estará disponible solo para el usuario en ejecución o para todos, lo que supone un punto a su favor en términos de privacidad.

Se trata de un emulador de terminal que intenta poner el foco en el soporte multiplataforma. Cuenta con un cliente de SSH integrado, soporte completo para Unicode, transferencia de ficheros a través de SSH vía SFTP y Zmodem, atajos de teclado totalmente configurables, un contenedor integrado para la configuración y la configuración secreta de SSH, soporte opcional de modo Quake y soporte para PowerShell, PS Core, WSL, Git-Bash, Cygwin, Cmder y CMD.

Como vemos, Tabby es una aplicación fuertemente centrada en la personalización, algo que ha podido heredar de ciertas corrientes que tienen mucha fuerza en los mundos de Linux y los sistemas operativos tipo Unix.

Conclusión

Como vemos, Windows es un sistema operativo totalmente apto para los geeks de la línea de comandos, incluso la propia Microsoft ha impulsado esa faceta con el mencionado Windows Terminal, una aplicación que da acceso a todos los intérpretes presentes en el sistema, a WSL y que para colmo está publicada como código abierto, por lo que está bastante alineada con las tendencias que hay dentro de un segmento que siempre ha estado muy ligado al mundo de Unix y al código abierto.