Línea de comandos


Línea de comandos
Este artículo trata sobre interfaces. Para otros usos de este término, véase emulador de terminal.
Una típica CLI encontrada en las interfaces gráficas de diversos sistemas operativos, para ejecutar aplicaciones a través de un intérprete de comandos.
Aspecto que ofrece una modernizada CLI que incorpora por defecto la versión 4 del entorno de escritorio KDE.

Interfaz de Línea de Comandos (CLI), por su acrónimo en inglés de Command Line Interface (CLI), es un método que permite a las personas 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, aunque suelen utilizarse como sinónimos.

Las CLI pueden emplearse interactívamente, escribiendo instrucciones en alguna especie de entrada de texto, o pueden utilizarse de una forma mucho más automatizada (archivo batch), leyendo comandos 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 diversos hardware, y con diferente funcionalidad.

Por ejemplo, las CLI son parte fundamental de los Shells o Emuladores de Terminal. Aparecen en todos los desktops (Gnome, KDE, 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 DBs (Postgres, MySQL, Oracle), 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 por 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 portables y PDAs (como el iPhone), las CLI no se utilizan, debido a lo complejo que resulta ingresar datos de texto, o por la ausencia total de teclados.

Contenido

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.

Teletipo:

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 los 70s, 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 del Computador Personal en los 80s, 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. Llegaba la era de las GUI.

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 comandos (por lo usual señalizando con un prompt). El usuario teclea una orden y la ejecuta al pasar a la línea siguiente, utilizando la tecla Intro/Enter.

Las órdenes dadas a la CLI son con frecuencia de la forma:

PROMPT>aplicacion [parametros] ficheros o URI...

Al finalizar y enviar la orden con Intro, un modulo Interpretador de Órdenes analiza la secuencia de caractéres 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 como una sola cosa.

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 de CLI

Casi cualquier programa puede diseñarse para ofrecer al usuario alguna clase de intérprete de comandos. Por ejemplo, los juegos de PC en primera persona tienen un intérprete de comandos 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 algún 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 trae una CLI llamada Windows PowerShell, que combina características de las tradicionales shells de Unix con su framework orientado a objetos .NET.

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 virtual con la que el usuario puede interactuar.

Algunas aplicaciones proporcionan tanto una CLI como una GUI. Un ejemplo es el programa de CAD AutoCAD. El paquete científico/ingenieril de computación numérica Matlab no proporciona GUI para algunos cálculos, pero la CLI puede realizar cualquier cálculo. El programa de modelado tridimensional Rhinoceros 3D (que se usa para diseñar las cajas de la mayor parte de los teléfonos portátiles, así como miles de otros productos industriales) proporciona una CLI (cuyo lenguaje, por cierto, es distinto del lenguaje script de Rhino). En algunos entornos informáticos, como la interfaz de usuario de Smalltalk u Oberon, la mayor parte del texto que aparece en la pantalla se puede usar para dar órdenes.

Estándar de Invocación

No existe ninguna normativa real en cuanto al formato de invocación (escritura y ejecución) o a la documentación que las aplicaciones o funciones deben presentar. No obstante, se han acuñado estándares informales al momento de definir formas. El más importante consiste en la utilización de Paréntesis Cuadrados [ ] para indicar parámetros opcionales. Estos pueden anidarse ([..[..]]). Por ejemplo, la documentación de la aplicación cal de POSIX dice que la forma de ejecutarse por medio del CLI es:

cal [[mes] año ]

Esto significa que si se desea ver el año 2012, tendría que escribirse literalmente:

cal 2012

Ejemplos de interacción por CLI

El comando "listar archivos", en diversos ambientes:

Programa o sistema operativo Comando Tipo de programa
Bash ls Shell de Unix
CMD dir Shell de Windows
NewShell list o dir AmigaDOS (Shell de AmigaOS/MorphOS/AROS)
Matlab dir Procesamiento matricial
Quake /dir Juego PC
TACL FILEINFO Shell de Guardián
Python Shell os.listdir('.') Python, lenguaje de alto nivel

Interfaz Textual de Usuario

Artículo principal: TUI (informática)

TUI consiste en una interfaz gráfica hecha enteramente de texto. En ese sentido, CLI y TUI no es lo mismo, aunque ambos usan el mismo periférico.

Consolas v/s CLI v/s TUI v/s TTY v/s Terminal v/s Emulación v/s Shell

Artículo principal: Consolas v/s CLI v/s TUI...

Aunque son cosas distintas, es común utilizar como sinónimos las palabras terminal, consola, shell, etc, para referirse a un solo concepto: el sitio donde se puede utilizar la línea de comandos.

Véase también

Referencias

  1. Exposición de Alan Kay en TED 2007[1]

Enlaces externos


Wikimedia foundation. 2010.

Mira otros diccionarios:

  • Línea de comandos — La línea de comandos es un método de interacción entre un sistema operativo o un programa y el usuario. Este método consiste en elaborar una analogía del modo de funcionamiento de un antiguo teletipo, simulando un diálogo textual entre el usuario …   Enciclopedia Universal

  • Línea de comandos de Windows — Para el software que controla la línea de comandos de Windows, véase cmd.exe. Este artículo o sección necesita referencias que aparezcan en una publicación acreditada, como revistas especializadas, monografías, prensa diaria o páginas de Internet …   Wikipedia Español

  • Línea (desambiguación) — El término línea puede referirse a: En geometría: Línea recta, en geometría euclídea; Línea curva, en geometría euclídea; Línea, una sucesión continua de puntos innumerables e infinitos; En zoología: la línea lateral, un órgano de los peces; En… …   Wikipedia Español

  • Comandos de Aviación — Saltar a navegación, búsqueda Comandos de Aviación es el nombre que identifica a las Fuerzas Especiales de la Fuerza Aérea de Chile; el origen de estos efectivos se remonta al año 1946, fecha en la cual se comisionan al U.S. Army 15 efectivos de… …   Wikipedia Español

  • Comandos linux — Anexo:Comandos linux Saltar a navegación, búsqueda Los comandos linux son una parte muy importante cuando se desea entrar en la administración y programación de este sistema operativo. Existe una inmensa cantidad de comandos ya sean para ayuda,… …   Wikipedia Español

  • Comandos de Aviación de Chile — Los Comandos de Aviación es el nombre que identifica a las Fuerzas Especiales de la Fuerza Aérea de Chile; el origen de estos efectivos se remonta al año 1946, fecha en la cual se comisionan al U.S. Army 15 efectivos de la Fuerza Aérea de Chile… …   Wikipedia Español

  • Línea Amalgam — La línea Amalgam (Amalgama) fue una serie de cómics producidos en conjunto entre las dos grandes editoras estadounidenses, DC Comics y Marvel Comics. Dichas publicaciones presentaban nuevos personajes que eran amalgamas de personajes de las dos… …   Wikipedia Español

  • Intérprete de comandos — Para el programa que simula el funcionamiento de un terminal, véase Emulador de terminal. Para el tipo de interfaz de usuario, véase Línea de comandos. Un intérprete de órdenes o de comandos, es un programa informático que tiene la capacidad de… …   Wikipedia Español

  • Nueva línea — En informática, nueva línea es un carácter especial, o secuencia de caracteres, que indica el final de una línea de texto y el paso a la siguiente. Se le llama así porque el carácter a la derecha del nueva línea aparecerá en la línea de debajo de …   Wikipedia Español

  • Anexo:Comandos linux — Este artículo o sección sobre informática necesita ser wikificado con un formato acorde a las convenciones de estilo. Por favor, edítalo para que las cumpla. Mientras tanto, no elimines este aviso puesto el 8 de septiembre de 2010. También puedes …   Wikipedia Español