Web Analytics
Conecta con nosotros

A Fondo

Por qué los usuarios de Windows deberían retomar la línea de comandos

Publicado el
línea de comandos de PowerShell en Windows 10

Las Interfaces de Línea de Comandos (CLI) suelen ser repudiadas por muchos usuarios de Windows, que las perciben como antiguas, arcaicas y anacrónicas. Esta cultura empezó a asentarse, posiblemente, tras la llegada del kernel NT a los sistemas operativos de escritorio orientados a las masas, más concretamente a partir de Windows 2000 y XP. Sin embargo, desde el lanzamiento de Windows 10, la compañía ha decidido vitaminar la CLI, potenciando un PowerShell que por entonces ya contaba algunos años y desarrollando cosas como WinGet, un gestor de paquetes inspirado en aquellos disponibles para Linux.

Puede parecer que aquellos que emplean la línea de comandos son personas que intentan demostrar algún tipo de superioridad moral, pero nada más lejos de realidad. La razón de por qué la consola sigue siendo muy usada en sectores como la programación es debido a que es más transparente y mucho más rápida que ir golpe de clics, además de ser más eficiente una vez se domina. Esto ha sido una constante desde que las interfaces gráficas existen.

Sin embargo, esto no quiere decir que haya que retroceder 50 años en el tiempo, ya que las interfaces gráficas (GUI) son más fáciles de aprender y superiores en flexibilidad, personalización y la administración de la multitarea. Lo inteligente al final no es enfrentar las GUI con las CLI, sino saber usar la mejor interfaz según las circunstancias.

No hace falta irse por las ramas para encontrar ejemplos en los que el uso de una de las interfaces es más conveniente que la otra. Un oficinista a buen seguro trabajará con una suite ofimática que funcionará mediante una GUI, y es que un software de ese tipo podría ser complejo de manejar con una línea de comandos o una interfaz semigráfica.

Por otro lado, un desarrollador de Ruby on Rails, un framework para la creación de aplicaciones web, verá la línea de comandos como una mejor herramienta gracias a la precisión y la transparencia que ofrece a la hora de realizar ciertas acciones (como el uso de los generadores), si bien es probable que edite el código mediante alguna aplicación gráfica como SublimeText o Visual Studio Code.

¿Sabías que la interfaz de línea de comandos puede ser útil para ti?

La interfaz de línea de comandos es vista desde hace mucho como algo orientado a usuarios avanzados, pero la realidad es que también puede ser muy útil para los usuarios que no tienen profundos conocimentos. Sí, como estás leyendo.

No se trata de aprender a usar una línea de comandos, sino más concretamente de beneficiarse de una de sus principales virtudes: la velocidad. Empleando Linux, vamos a poner un ejemplo de por qué el uso de la línea de comandos puede ser beneficioso para el usuario que no tiene profundos conocimientos de computación.

Desde hace años existen distribuciones Linux que funcionan de forma gráfica y que son muy amigables, pero posiblemente debido a la lenta maduración de las GUI y los automatismos, las personas habituadas a dicho sistema nunca han perdido la costumbre de usar la línea de comandos.

Donde los usuarios de Linux ven más rápido el uso de la línea de comandos es en la configuración inicial del sistema operativo, y para ello vamos a exponer el caso de Fedora Workstation, una de las ediciones de la distribución comunitaria patrocinada por Red Hat. Este sistema puede ser configurado de forma gráfica si se ven los comandos como listas de paquetes, pero por mucho que uno corra con DNFDragora no va alcanzar nunca la velocidad que se obtiene con la terminal.

Aquí ponemos un ejemplo de la instalación del soporte multimedia en Fedora 35 Workstation copiando y pegando el principal comando de instalación:

Instalando el soporte multimedia de Fedora Workstation con la linea de comandos

Y aquí buscando los paquetes a través de DNFDragora, el gestor gráfico de paquetes disponible para el sistema:

Seleccionar los paquetes uno a uno en un gestor gráfico de paquetes de Linux

En el primer caso, el usuario solo tiene que copiar el comando, pegarlo en la consola, pulsar intro y confirmar los cambios, mientras que con el gestor gráfico de paquetes la tarea es más complicada al tener que seleccionar primero la arquitectura y luego introducir al menos parcialmente el nombre de los paquetes, ir seleccionándolos uno a uno, volver a realizar otra búsqueda para seleccionar otra vez, y así sucesivamente hasta tenerlo todo y pulsar después sobre ‘Aplicar’. Si las imágenes no han hablado por sí solas, seguro que la explicación lo ha hecho debido a que la instalación mediante interfaz gráfica es bastante más enrevesada que con la línea de comandos.

Llegados a este punto, posiblemente algunos empiecen a ver que el excesivo apoyo de muchos usuarios de Windows en las GUI les ha vuelto menos eficientes a la hora de realizar ciertas tareas específicas. A esto se suman las graves inconsistencias que al menos ha arrastrado Windows 10, lo que entorpece la navegación entre las opciones avanzadas a aquellos que tienden a usar los sistemas operativos por instinto (como este servidor).

Las interfaces gráficas son más cómodas, pero en un tutorial complejo en formato texto aumentan la posibilidad de que el usuario se equivoque a la hora de lidiar con un menú o una ventana, y eso sin contar los constantes cambios que Microsoft introduce en Windows desde la versión 10, los cuales pueden hacer que los tutoriales acaben obsoletos de un día para otro. Aquí la línea de comandos vence al ofrecer una interfaz más consistente y aparentemente menos cambiante en el tiempo.

Dicho de manera más explícita, los usuarios de Windows, incluso aquellos que no tienen conocimientos avanzados, deberían de tener más tutoriales hechos a base de copiar y pegar comandos y menos de ir fijándose en las ventanas, ya que los tutoriales mediante CLI son más rápidos de ejecutar, más consistentes a nivel de interfaz y en teoría más duraderos en el tiempo.

¿Qué interfaces de línea de comandos existen para Windows?

Microsoft pone a disposición para Windows dos interfaces de línea de comandos: Símbolo del Sistema (más conocido como CMD) y PowerShell.

CMD es un intérprete de línea de comandos disponible para los sistemas operativos OS/2, eComStation, ArcaOS, Windows (familias NT y CE) y ReactOS, aunque es importante tener en cuenta que no todas las implementaciones de CMD funcionan igual. Se trata de un desarrollo bastante veterano al haberse iniciado en el año 1987 y es el sucesor del COMMAND.COM usado por defecto en MS-DOS, Windows 95 y 98, Windows 98 SE y Windows Me.

CMD es mayormente compatible con COMMAND.COM y emplea, al menos básicamente, los mismos comandos internos, así que quien sepa usar la consola de MS-DOS sabrá usar esta interfaz incorporada a Windows NT. Sin embargo, el Símbolo del Sistema ofrece algunas extensiones adicionales, como unos mensajes de error más detallados, soporte para navegar a través del historial de comandos mediante las teclas de cursor superior e inferior, completación de la línea de comandos para rutas de ficheros y carpetas, el tratamiento del carácter caret (^) como uno de escape y el soporte de expansión de variable retardada con ‘SETLOCAL EnableDelayedExpansion’.

A pesar de su gran veteranía y a la existencia de un sucesor, CMD sigue siendo preinstalado en Windows y todavía es muy utilizado como CLI por parte de algunos usuarios del sistema de Microsoft.

CMD o Símbolo del Sistema en Windows 10.

CMD o Símbolo del Sistema en Windows 10.

Por su parte, PowerShell es bastante más reciente que CMD. Habiendo “nacido” en el año 2006, la intención de Microsoft con su creación fue la de aportar un intérprete de comandos orientado a objetos que fuese más moderno para la administración de los sistemas y la automatización de las tareas.

PowerShell tiene una estrecha relación con el framework .NET debido a que el primero es compilado con las herramientas del segundo. PowerShell está orientado a la automatización de las tareas y diseñado no solo para interaccionar estrechamente con Windows, sino también con otros destacados productos de Microsoft como SQL Server, Exchange e IIS.

En resumidas cuentas, PowerShell es un intérprete de línea de comandos de última generación que pretende ajustarse mejor a las demandas actuales a la hora de administrar un sistema operativo y ciertas herramientas, principalmente aquellas que son parte estrecha del gigante de Redmond.

Si bien PowerShell fue exclusivo de Windows durante sus primeros 10 años de existencia, Microsoft tomó en 2016 la decisión de volverlo Open Source y multiplataforma, por lo que desde ese año también está disponible para Linux y macOS. La compañía se ha guardado algunas cartas en la apertura de la tecnología, pero ha mantenido la estrecha relación con .NET incluso más allá de su propio sistema operativo.

Desde que Satya Nadella llegó al puesto de CEO de Microsoft, no es extraño ver a destacados productos de la compañía tener versiones para Linux y macOS. La sorprendente liberación del código de la parte del servidor de .NET fue el pistoletazo de salida para una tendencia que se ha mantenido firme gracias a la gran aceptación que ha tenido, por ejemplo, Visual Studio Code.

PowerShell en Windows 10

PowerShell en Windows 10

Conclusión

Llegados a este punto, uno se plantea si ciertos usuarios de Windows son realmente más modernos cuando se aferran a las interfaces gráficas o si bien se han vuelto menos eficientes a la hora de configurar o arreglar ciertas cosas concretas en sus computadoras.

Muchos tutoriales serían más sencillos, claros, fáciles de seguir y más rápidos de ejecutar si, en lugar de mostrar una gran cantidad de pantallazos, solo se tuviera que copiar una serie de comandos de CMD o PowerShell. Y es más, en realidad los tutoriales en los que la consola es necesaria en Windows nunca han terminado de desaparecer, pero la cultura extendida entre los usuarios del sistema de Microsoft ha terminado haciendo que un alto porcentaje de ellos rechacen de plano las CLI.

¿Deberían los usuarios de Windows recuperar el hábito de usar la línea de comandos? Es obvio que el uso de una CLI para las tareas comunes es absurdo, pero dicha interfaz todavía tiene mucho que decir en nuestros tiempos debido a las ventajas que retiene frente a las GUI.

11 comentarios
  • Sam Burgos

    Pues de hecho en situaciones varias extraño que tanto CMD como PowerShell no tengan alguna que otra funcionalidad que ya traen otras shells (por ejemplo Bash), ahorita de hecho estoy viendo como automatizar el copiar algunos archivos pero sólo los últimos archivos generados por un backup de SQL Server, si bien no digo que con Bash ya lo hubiera logrado (siempre toca «desempolvar» algo de conocimiento de vez en cuando) pero con CMD o PowerShell se me complica muchísimo mas el lograr mi meta

    En conclusión, sí, los usuarios de Windows deben practicar y aprender consola (aunque sea sólo PowerShell) porque al menos es de ayuda

  • Benito Camelas

    Lo que tiene la consola de windows, es ese «misticismo» u «ostracismo» que le confiere el software privativo donde para adquirir los conocimientos has de pasar por caja y por supuesto los que pasan por caja se guardan la información para ellos, con lo tanto se documenta poco o dicha documentación no es accesible al público en general ya que así se evitan «tener competencia» por parte de otras personas.

    Desde luego todos mis respetos a la gente que usa productos microsoft, pero yo me quedo con linux y sus shells donde enseguida puedes encontrar documentación sobre como realizar las tareas en terminal además siempre están bien documentados los comandos con sus man y sus «-h», a ver si en muycomputer os animáis y aún que sea sacar un howto semanal que nos descubra las grandes virtudes de powershell.

    Por cierto, una gestora de terminales bastante recomendable de windows es «windows terminal» la cual te ofrece mediante pestañas varias shells como cmd, powershell y la de wsl:

    https://www.microsoft.com/es-es/p/windows-terminal/9n0dx20hk701

    Desde luego a día de hoy donde hasta cambian el panel de control de sitio, el «cliky-cliky» para administrar un sistema windows va estando de capa caída pues ya no es solo que te muevan las opciones de sitio, si no que ya las relegan a nuevos programas y sin duda una de las ventajas de usar una shell es que sencillamente le dices el comando a ejecutar y con sus parámetros, sin andar a rebuscarlo por 20 sitios y mucho menos repetir los 20 «clickies» para aplicar una configuración similar a varios objetos, cosa que para mí me parece improductiva y una pérdida de tiempo, pero todo un estándar windows.

  • Christian Finnberg

    Hombre, siendo yo un usuario bastante acérrimo de Linux, me parece que algunas ideas de Powershell están interesantes, como el hecho de que se pasen objetos, y no texto, en el pipe de la linea de comandos.

    Y la documentación de Powershell también suele estar bastante bien, con ejemplos variados de uso de cada comando y explicación más o menos detallada de qué hace cada parámetro. Eso si, la documentación está en linea.

  • Christian Finnberg

    Creo que la funcionalidad que comentas no es tanto del shell en si como de utilidades o propiedades del sistema. Cosas como cron en Linux no son propias de bash sino que son una utilidad en sí misma que se usa a través de bash.

    En ese sentido veo más complicado que Windows evolucione hacia un sistema que puedas controlar fácilmente desde la consola. Habría que cambiar bastantes cosas para ello.

    No se los detalles de la tarea que quieres conseguir, pero en principio por lo que comentas me parecería igual de fácil/difícil en Powershell que en Bash.

  • Sele Asuka

    Util es para x cosas (yo a veces uso el speedtest asi :v ) pero en otros escenarios de pereza usarlo.

  • Gregorio Ros

    Ya lo he comentado otras veces, bendije la llegada del modo gráfico, lo veo como una evolución lógica. Ahora bien, uso la consola casi a diario, a pesar de lo dicho anteriormente, tal como comenta Eduardo, reconozco que es práctica y rápida de narices, sobre todo en Linux. No soy un crack de la consola, me limito a la media docena de ordenes mas usadas y a copiar y pegar soluciones para la configuración. También para salir de problemas es muy útil, la posibilidad de por lo menos poder arrancar a modo consola para restaurar un sistema dañado es de tener en cuenta. Para Windows ya no estoy muy ducho, ni se muy bien sus posibilidades, hace treinta años ya desde MSDos soñaba con poder meterle el bash, nunca entendí la razón por la que conociendo las posibilidades que ofrecía no lo tomaban como referencia para el Dos. Dada la limitación del Dos pues es de entender que la gente se las ha ido apañando con el modo gráfico, aunque cada vez que he tenido que modificar algo en el nefasto registro de Windows me ha sentado como una puñalada, con lo fácil que sería tener alguna orden para hacerlo que pudiese copiar y pegar en consola (igual la tiene ya PowerShell, este no lo he tocado), lo de tener que bucear por un interminable laberinto de carpetas crípticas es todo menos fácil e intuitivo.

  • doc

    Bueno la pregunta que me surge es ¿se puede pensar un SO que prescinda de consola? El artículo parece ir referido al usuario medio y ese creo que está perdido, pero vale el esfuerzo de hacerle comprender que la consola no es necesariamente tecnología antigua. Yo agradezco tener la suficiente funcionalidad en la consola como para resolver muchos problemas de usuario medio, en fin, los que la desconocen se lo pierden.

  • Demetrio_Diaz

    Me gusta tener elecciones.

  • Gregorio Ros

    Si, por gustos personales o por necesidad del momento. Ya te digo, a mi no me gusta, pero cuando la necesito esta ahí y hay que ver como se agradece.

  • Mirage

    si bien es cierto que a veces la interfas de linea de cvomandos es más sencilla y rapida para ciertas tareas ya que solo se requeire copiar y pegar comandos, en windows no lo recomiendo. la razón es que muchos usuarios de windows no saben nada de pc, y tienen el peligro de copiar y pegar comandos que terminen dañando el sistema. esto también es un problema en linux, pero el usuario que llega a linux ya esta un peldaño más arriba que el usuario promedio (el mero hecho de crear una usb de arranque y meterte a la bios/UEFI para alterar el orden de arranque, desabillitar secure boot y otros malabares ya es algo que el 90% de los usuarios de windows no te hacen ni soñando weas cosmicas fruto de lamer sapos y comer hongos) por lo tanto es menos probable que un comando malicioso se cuele (y aun así yo he visto pringaos eliminando su partición raiz con sudo rm -r /

  • j0seant

    El fallo de PowerShell es hacerlo dependiente del runtime de .NET, que hace que hasta solo para abrirlo es lento. Aunque parece que en las ultimas versiones abre más rápido. Y otro fallo es que sus comandos son demasiado «verbose», comandos demasiado largos (ya se que se pueden crear alias). Supongo que por esas cosas y alguna más a CMD aun le queda mucha vida ya que muchas veces es más sencillo y rápido hacer lo mismo con CMD..

Lo más leído