Interfaz de línea de comandos
La interfaz de línea de comandos o interfaz de línea de órdenes (en inglés, command-line interface, CLI) es
un método que permite a los usuarios dar
instrucciones a algún programa informático por medio de una línea de texto
simple. Debe notarse que los conceptos de CLI, shell y emulador de terminal no son lo mismo
ya que CLI es un métodomientras
que shell y emulador de terminal
son programas informaticos. Sin embargo los tres suelen
utilizarse como sinónimos.
Las CLI pueden emplearse interactivamente, escribiendo
instrucciones en alguna especie de entrada de texto, o pueden utilizarse de
una forma mucho más automatizada (archivo batch), leyendo órdenes
desde un archivo de scripts.
Esta interfaz existe casi desde los comienzos de la
computación, superada en antigüedad solo por las tarjetas
perforadas y mecanismos similares. Existen para diversos
programas y sistemas operativos, para diverso hardware,
y con distinta funcionalidad.
Por ejemplo, las CLI son parte fundamental de los shells o emuladores de terminal. Aparecen en todas
las interfaces de escritorio (GNOME, KDE, Microsoft
Windows) como un método para ejecutar aplicaciones rápidamente.
Aparecen como interfaz de lenguajes interpretados tales
como Java, Python, Ruby o Perl. También se utilizan
en aplicaciones cliente-servidor, en gestores de
bases de datos, en clientes FTP, etc. Las CLI son un elemento
fundamental de aplicaciones de ingeniería tan importantes como MATLAB y AutoCAD.
La contraparte de CLI es la interfaz gráfica de usuario (GUI) que
ofrece una estética mejorada y una mayor simplificación, a costa de un mayor
consumo de recursos computacionales, y, en general, de una reducción de la
funcionalidad alcanzable. Asimismo aparece el problema de una mayor vulnerabilidad dada su complejidad.
Las CLI son usadas por muchos programadores y
administradores de sistemas como herramienta primaria de trabajo, especialmente
en sistemas operativos basados en Unix; en entornos
científicos y de ingeniería, y un subconjunto más pequeño de usuarios
domésticos avanzados.
En dispositivos portátiles y PDA, las CLI no se
utilizan, debido a lo complejo que resulta ingresar datos de texto, o por la
ausencia total de teclados.
Historia
En los primeros años de las computadoras, y durante la
era de los computadores denominados mainframes,
el control de la ejecución de los programas se hacía desde lugares especiales
(normalmente ubicados cerca del computador en salas con aire acondicionado),
donde el administrador manipulaba directamente la máquina.
Se escribía la orden en el teclado y se recibía la
respuesta impresa en papel. Estos sistemas basados en teletipos dieron origen a
la primera forma eficiente de interactuar con computadores: líneas de texto
simple.
Con el advenimiento del sistema operativo Unix a inicios de la
década de 1970, el uso de la línea de comandos se convirtió en un estándar. Se
canonizaron las reglas de ejecución basadas en tuberías, filtrado de archivos
utilizando comodines, y todas aquellas funcionalidades que
permitían las nacientes interfaces de texto. Los sistemas operativos
que vendrían (CP/M, DOS) adoptarían como
propias aquellas cualidades.
Con la popularización de la computadora personal en la década de
1980, las aplicaciones entraron a un nuevo escenario donde ya no se tenía que
compartir los recursos del sistema con otros usuarios. Ahora cada usuario
contaba con su propia máquina, con la que interactuaba de una forma mucho más
personalizada. Apple y
luego Microsoft lanzaron
exitosamente al mercado sistemas que explotaban todos los conceptos visuales
que habían sido desarrollados por Alan Kay y
su equipo del PARC, es decir, una interfaz gráfica para
controlar al computador por medio de un ratón.
Hasta la actualidad las GUI permanecen como la interfaz
dominante y las CLI como interfaz secundaria. No obstante, el mismo Dr. Alan
Kay ha señalado que «es necesario desarrollar un nuevo tipo de interfaz» para
optimizar la relación entre humanos y computadores.1
Funcionamiento
Esquema de elementos involucrados en
una línea de órdenes.
En su forma más simple, una CLI consiste en un espacio
donde se pueden escribir órdenes (por lo general, señalizado con un prompt).
El usuario teclea una orden y la ejecuta al pasar a la línea siguiente,
utilizando la tecla Entrar.
Las órdenes dadas a la CLI son con frecuencia de la
forma:
PROMPT>aplicación [parametros]
ficheros o URI...
Al finalizar y enviar la orden con la tecla Entrar, un
módulo interpretador de órdenes analiza la secuencia de caracteres recibida y,
si la sintaxis de la orden es correcta, ejecuta la orden dentro del contexto
del programa o del sistema operativo donde se encuentra. Esta forma de trabajo
es secuencial, y equivale a un tipo de programación paso
a paso.
El usuario percibe el procesamiento de sus instrucciones
en forma de acción. Si al usuario se le envía esta información de procesamiento
en forma de texto simple, entonces se le llama salida estándar o «stdout». El usuario
también puede recibir un informe textual de errores en un canal especializado
llamado «stderr». Casi todos los shells implementan
la visualización de «stdout» y «stderr» al mismo dispositivo, en la mayoría de los casos la
pantalla.
También es posible usar scripts,
es decir, archivos con instrucciones guardadas como si se estuviesen
escribiendo en el momento. En caso de error, la ejecución del script puede abortarse. De esta
forma, la línea de comandos puede utilizarse sin siquiera tener que lidiar con
el prompt, ni estando presente frente al monitor o teclado.
Implementaciones
Casi cualquier programa puede diseñarse para ofrecer al
usuario alguna clase de intérprete de instrucciones. Por ejemplo, algunos videojuegos para PC en primera persona tienen un intérprete de órdenes incorporado, conocido comúnmente como
«consola» (no confundir con Videoconsola),
utilizado para diagnóstico y labores administrativas. Quake, Unreal Tournament, Ragnarok
Online o Battlefield son
algunos ejemplos. A veces la consola es el único medio
para reparar problemas.
Cuando se trata de un programa que interactúa con
el kernel de un sistema operativo se
le llama con frecuencia shell. Algunos ejemplos son los diversas shell de
Unix (ksh, csh, tcsh, Bourne Shell,
etc.), el histórico CP/M, y el command.com de DOS, estos dos últimos fuertemente
basados en las CLI de RSTS y RSX-11, sistemas operativos del PDP-11 de DEC. El sistema operativo Windows Vista prometía
una CLI llamada Windows PowerShell, que combinaba características de las tradicionales shells de
Unix con su frameworkorientado a objetos .NET. Este desarrollo no fue integrado por
defecto en el sistema operativo, en especial debido a sus riesgos de seguridad
iniciales.2
Las implementanciones de lenguajes
interpretados suelen ofrecer
también un ambiente de trabajo basado en CLI. En estos ambientes se crea una
instancia de la máquina virtualcon la que el usuario puede interactuar.
Glosario:
Rhinoceros 3D: Rhinoceros es un software de Dibujo Asistido por Computadora (CAD) que permite hacer modelos tridimensionales ( 3D ) con mucha facilidad ya que es muy poderoso y amigable.
Windows PowerShell: Es una interfaz de consola (CLI) con posibilidad de escritura y unión de comandos por medio de instrucciones (scripts en inglés). Es mucho más rica e interactiva que sus predecesores, desde DOS hasta Windows 7.
Stdout: Es un concepto típico de los sistemas operativos Unix.
Portátiles: Que es fácil de mover y transportar de un lugar a otro por ser manejable y de pequeño tamaño.
Fundamentales: Que sirve de fundamento o de base.
Programación: Conjunto de programas que se retransmiten por radio o televisión.
Videojuegos: Es una aplicación interactiva orientada al entretenimiento que, a través de ciertos mandos o controles, permite simular experiencias en la pantalla de un televisor, una computadora u otro dispositivo electrónico.
Interfaz: Dispositivo capaz de transformar las señales generadas por un aparato en señales comprensibles por otro.
Parámetros: Elemento o dato importante desde el que se examina un tema, cuestión o asunto.
Stdout: Es un concepto típico de los sistemas operativos Unix.
Portátiles: Que es fácil de mover y transportar de un lugar a otro por ser manejable y de pequeño tamaño.
Fundamentales: Que sirve de fundamento o de base.
Programación: Conjunto de programas que se retransmiten por radio o televisión.
Videojuegos: Es una aplicación interactiva orientada al entretenimiento que, a través de ciertos mandos o controles, permite simular experiencias en la pantalla de un televisor, una computadora u otro dispositivo electrónico.
Interfaz: Dispositivo capaz de transformar las señales generadas por un aparato en señales comprensibles por otro.
Parámetros: Elemento o dato importante desde el que se examina un tema, cuestión o asunto.
AutoCAD: Es un software del tipo CAD ( Computer Aided Design) que en castellano significa diseño asistido por computadora, y que fue creado por una empresa norteamericana especializada en este rubro llamada Autodesk.
No hay comentarios:
Publicar un comentario