Definition

Interfaz de línea de comandos o CLI

Una interfaz de línea de comandos (CLI) es una interfaz de usuario (UI) basada en texto que se utiliza para ver y administrar archivos de computadora. Las interfaces de línea de comandos también se denominan interfaces de usuario de línea de comandos, interfaces de usuario de consola e interfaces de usuario de caracteres.

Historia y características de CLI

Antes del mouse, los usuarios interactuaban con un sistema operativo (SO) o una aplicación con un teclado. Los usuarios escribieron comandos en la interfaz de línea de comandos para ejecutar tareas en una computadora.

Normalmente, la interfaz de línea de comandos presenta un cuadro negro con texto blanco. El usuario responde a un mensaje en la interfaz de línea de comandos escribiendo un comando. La salida o respuesta del sistema puede incluir un mensaje, tabla, lista o alguna otra confirmación de una acción del sistema o aplicación.

Hoy en día, la mayoría de los usuarios prefieren la interfaz gráfica de usuario (GUI) que ofrecen los sistemas operativos como Windows, Linux y MacOS. La mayoría de los sistemas actuales basados ​​en Unix ofrecen una interfaz de línea de comandos y una interfaz gráfica de usuario.

El sistema operativo MS-DOS y el shell de comandos del sistema operativo Windows son ejemplos de interfaces de línea de comandos. Además, los lenguajes de programación pueden admitir interfaces de línea de comandos, como Python.

Una explicación de un shell

El software que maneja la interfaz de línea de comandos es el shell, también conocido como intérprete de lenguaje de comandos. Dos shells conocidos son Windows Shell y Bash para Linux y macOS.

Los shells son la capa más externa del sistema operativo y, a menudo, están separados del kernel del sistema operativo subyacente. Un shell funciona como una aplicación y se puede reemplazar. Debido a que el shell está solo una capa por encima del sistema operativo, los usuarios pueden realizar operaciones que no están disponibles en otros tipos de interfaz, como mover archivos dentro de las carpetas del sistema y eliminar archivos bloqueados.

Los shells requieren que los usuarios conozcan la sintaxis de un lenguaje de programación. La mayoría de los shells de línea de comandos guardan secuencias de comandos para su reutilización en un script, que es la base de la automatización básica de la administración de sistemas.

Indicaciones y comandos

Hay cientos de comandos diferentes disponibles en una línea de comandos. El conjunto de comandos puede variar drásticamente entre sistemas operativos o aplicaciones.

La siguiente es una lista de comandos en el marco de automatización y configuración de tareas de Microsoft PowerShell:

  • Get-Date: recupera la fecha y hora actuales.
  • cd: se utiliza para cambiar de directorio.
  • Stop-Process: finaliza uno o más procesos del sistema.

Aunque algunos comandos funcionan solos, otros requieren el uso de argumentos. El argumento sigue al comando y proporciona detalles adicionales o específicos. Por ejemplo, el comando cd le dice al sistema operativo que cambie a un directorio diferente, pero la línea de comando también debe incluir el nombre de la ruta del directorio deseado.

Por ejemplo, un comando completo con un argumento aparece como:

cd\documentos\usuario

Los argumentos utilizados con los comandos también pueden ser extremadamente complejos y granulares. Por ejemplo, la siguiente cadena de línea de comando muestra la sintaxis de PowerShell para recuperar información detallada sobre la configuración de red de una máquina con Windows:

Get-NetIPAddress | Ordenar InterfaceIndex | FT InterfaceIndex, InterfaceAlias, AddressFamily, IPAddress, PrefixLength –Autosize

CLI versus GUI

La interfaz gráfica de usuario es la interfaz de usuario más popular en la actualidad. Una GUI usa ventanas, menús e íconos para ejecutar comandos. Un mouse es la forma más común de navegar a través de una GUI, aunque muchas GUI permiten la navegación y ejecución a través de un teclado.

Un ejemplo de una aplicación basada en GUI es Microsoft Word. Un usuario puede cambiar las opciones de diseños y estilos de página seleccionando el icono correspondiente con un mouse o teclado.

La ventaja de una GUI es que la interfaz muestra visualmente las funciones disponibles. Sin embargo, debido a su simplicidad y facilidad de uso, una GUI no tiene el mismo nivel de funcionalidad y control granular que una interfaz de línea de comandos. Por ejemplo, pueden ser necesarios numerosos clics y movimiento a través de varios cuadros de diálogo en una GUI para lograr el mismo resultado que una sola línea de comando.

Además, las GUI no son compatibles con la creación de scripts o la automatización. Para tareas comunes, un usuario debe repetir cada clic o navegar por cada cuadro de diálogo dentro de la GUI manualmente.

Los administradores que gestionan miles de sistemas o configuraciones de usuario encontrarán una GUI mucho menos eficiente que una CLI. Pero un simple comando CLI puede ajustar fácilmente las configuraciones para un gran grupo de sistemas a la vez.

Los comandos y argumentos también se pueden combinar y guardar y luego ejecutar como un script cada vez que se requiera una acción específica, o un conjunto completo de acciones. La CLI es la herramienta preferida para muchas tareas de administración de sistemas en toda la empresa.

Ventajas y desventajas de CLI

Las ventajas de una interfaz de línea de comandos son:

  • control granular de un sistema operativo o una aplicación;
  • gestión más rápida de una gran cantidad de sistemas operativos;
  • capacidad para almacenar scripts para automatizar tareas habituales; y
  • conocimientos básicos de la interfaz de línea de comandos para ayudar con la resolución de problemas, como problemas de conexión de red.

Las desventajas de una interfaz de línea de comandos son:

  • La GUI es más fácil de usar;
  • curva de aprendizaje más pronunciada asociada con la memorización de comandos y sintaxis y/o argumentos complejos; y
  • diferentes comandos utilizados en diferentes shells.

Este contenido se actualizó por última vez en noviembre 2020

Investigue más sobre Desarrollo de software y aplicaciones