Interfaz de línea de comandos

Una interfaz de línea de comandos (CLI) es un medio de interactuar con un programa de computadora donde el usuario (o cliente) emite comandos al programa en forma de líneas de texto sucesivas (líneas de comando). El programa que maneja la interfaz se llama intérprete de línea de comandos o procesador de línea de comandos.

La mayoría de los sistemas operativos implementan una interfaz de línea de comandos en un shell para acceso interactivo a las funciones o servicios del sistema operativo. Dicho acceso se proporcionó principalmente a los usuarios mediante terminales de computadora a partir de mediados de la década de 1960, y continuó utilizándose durante las décadas de 1970 y 1980 en VAX / VMS, sistemas Unix y sistemas de computadoras personales, incluidos MS-DOS, CP / M y Apple DOS.

Hoy en día, muchos usuarios finales rara vez, si es que alguna vez, usan interfaces de línea de comandos y en su lugar confían en interfaces gráficas de usuario e interacciones guiadas por menús. Sin embargo, muchos desarrolladores de software administradores de sistemas y usuarios avanzados aún dependen en gran medida de las interfaces de línea de comandos para realizar tareas de manera más eficiente, configurar su máquina o acceder a programas y características de programas que no están disponibles a través de una interfaz gráfica.

Las alternativas a la interfaz de línea de comandos incluyen, entre otros, menús de interfaz de usuario de texto (por ejemplo, IBM AIX SMIT), métodos abreviados de teclado y varias otras metáforas de escritorio centradas en el puntero (generalmente controladas con un mouse). Ejemplos de esto incluyen las versiones 1, 2, 3, 3.1 y 3.11 de Microsoft Windows (un shell del sistema operativo que se ejecuta en DOS), DosShell y PowerPanel de Mouse Systems. Las interfaces de línea de comando a menudo se implementan en dispositivos terminales que también son capaces de interfaces de usuario de texto orientadas a la pantalla que utilizan el direccionamiento del cursor para colocar símbolos en una pantalla de visualización.

Los programas con interfaces de línea de comandos son generalmente más fáciles de automatizar mediante secuencias de comandos.

Muchos sistemas de software implementan interfaces de línea de comando para control y operación. Esto incluye lenguajes de programación, como Tcl / Tk y PHP, así como muchos programas de utilidad, como la utilidad de compresión WinZip y el Protocolo de transferencia de archivos (FTP) y los clientes SSH / Telnet.

Captura de pantalla de CommandShell de Apple Computer en A / UX 3.0.1

En comparación con una interfaz gráfica de usuario, una interfaz de línea de comandos requiere menos recursos del sistema para implementar. Dado que las opciones para los comandos se dan en unos pocos caracteres en cada línea de comando, un usuario experimentado encuentra las opciones más fáciles de acceder. [Cita requerida] La automatización de las tareas repetitivas se simplifica mediante la edición de líneas y los mecanismos de historial para almacenar secuencias de uso frecuente; Esto puede extenderse a un lenguaje de script que puede tomar parámetros y opciones variables. Se puede mantener un historial de línea de comandos, lo que permite la revisión o repetición de comandos.

Un sistema de línea de comandos puede requerir manuales en papel o en línea para referencia del usuario, aunque a menudo una opción de "ayuda" proporciona una revisión concisa de las opciones de un comando. El entorno de línea de comandos puede no proporcionar las mejoras gráficas, como diferentes fuentes o ventanas de edición extendidas que se encuentran en una GUI. Puede ser difícil para un nuevo usuario familiarizarse con todos los comandos y opciones disponibles, en comparación con los menús desplegables de una interfaz gráfica de usuario, sin referencias repetidas a los manuales.

Interfaces de línea de comandos del sistema operativo

Las interfaces de línea de comandos del sistema operativo (SO) suelen ser programas distintos suministrados con el sistema operativo. Un programa que implementa dicha interfaz de texto a menudo se denomina intérprete de línea de comandos, procesador de comandos o shell.

Los ejemplos de intérpretes de línea de comandos incluyen el lenguaje de comandos DIGITAL (DCL) de DEC en OpenVMS y RSX-11, los diversos shells de Unix (sh, ksh, csh, tcsh, bash, etc.), CCP de CP / M, COMMAND.COM de DOS, así como los programas OS / 2 y Windows CMD.EXE, estos últimos grupos se basan en gran medida en las CLI RSX-11 y RSTS de DEC. En la mayoría de los sistemas operativos, es posible reemplazar el programa shell predeterminado con alternativas; Los ejemplos incluyen 4DOS para DOS, 4OS2 para OS / 2 y 4NT / Take Command para Windows.

Aunque el término 'shell' se usa a menudo para describir un intérprete de línea de comandos, estrictamente hablando, un 'shell' puede ser cualquier programa que constituya la interfaz de usuario, incluidos los totalmente orientados gráficamente. Por ejemplo, la GUI predeterminada de Windows es un programa de shell llamado EXPLORER.EXE, como se define en la línea SHELL = EXPLORER.EXE en el archivo de configuración WIN.INI. Estos programas son shells, pero no son CLI.

Interfaces de línea de comando de aplicación
Los programas de aplicación (a diferencia de los sistemas operativos) también pueden tener interfaces de línea de comandos.

Un programa de aplicación puede admitir ninguno, ninguno o todos estos tres tipos principales de mecanismos de interfaz de línea de comandos:

  • Parámetros: la mayoría de los sistemas operativos admiten un medio para pasar información adicional a un programa cuando se inicia. Cuando se inicia un programa desde un shell de línea de comandos del sistema operativo, el texto adicional proporcionado junto con el nombre del programa se pasa al programa iniciado.
  • Sesiones de línea de comandos interactivas: después del inicio, un programa puede proporcionar a un operador un medio independiente para ingresar comandos en forma de texto.
  • Comunicación entre procesos: la mayoría de los sistemas operativos admiten medios de comunicación entre procesos (por ejemplo, flujos estándar o canalizaciones con nombre). Las líneas de comando de los procesos del cliente pueden redirigirse a un programa CLI mediante uno de estos métodos.
    Algunas aplicaciones solo admiten una CLI, presentando una solicitud de CLI al usuario y actuando sobre las líneas de comando a medida que se ingresan. Otros programas admiten tanto una CLI como una GUI. En algunos casos, una GUI es simplemente un contenedor alrededor de un archivo ejecutable CLI separado. En otros casos, un programa puede proporcionar una CLI como alternativa opcional a su GUI. Las CLI y las GUI a menudo admiten diferentes funcionalidades. Por ejemplo, todas las características de MATLAB, un programa informático de análisis numérico, están disponibles a través de la CLI, mientras que la GUI de MATLAB expone solo un subconjunto de características.

Los primeros juegos de Sierra, como los primeros tres juegos de King's Quest (1984–1986), usaban comandos desde una línea de comando interna para mover al personaje en la ventana gráfica.

¿Fue útil la respuesta?