Línea de comandos
De Wikipedia, la enciclopedia libre
Una Interfaz de Línea de Comandos (o CLI, por sus iniciales en inglés) es un método para manipular con instrucciones escritas al programa que subyace debajo. Se interactúa con la información de la manera más simple posible, sin gráficas ni nada más que el texto crudo. Las órdenes se escriben como líneas de texto (de ahí el nombre), y, si los programas responden, generalmente lo hacen poniendo información en las líneas siguientes.
Casi cualquier programa puede diseñarse para ofrecer al usuario alguna clase de CLI. Por ejemplo, casi todos los juegos de PC en primera persona tienen una interfaz de línea de comandos incorporada, utilizada para diagnostico y labores administrativas.
Como herramienta primaria de trabajo, las líneas de comandos son principalmente usadas por programadores y administradores de sistemas, especialmente en sistemas operativos basados en Unix; en entornos científicos y de ingeniería; y por un subconjunto más pequeño de usuarios domésticos avanzados.
Tabla de contenidos |
[editar] Historia
Las líneas de comandos se originaron cuando se conectaron teletipos a computadoras, en los años 50. En términos de acción inmediata y respuesta, supusieron un avance sobre el uso de tarjetas perforadas.
Con el uso de monitores como interfaces, las CLI comenzaron a evolucionar hacia interfaces gráficas de usuario (GUI), como las provistas por Microsoft Windows, Mac OS y el X Window System. El rol de principal interfaz de usuario les fue definitivamente quitado cuando Microsoft, en respuesta al éxito del lanzamiento del Macintosh OS de Apple en 1984, presentó Windows al año siguiente. Empezaba la era de las ventanas.
Entonces se acuñó el término Interfaz de Texto (TUI), para referirse a las interfaces que no usaban más que el modo texto para su funcionamiento. Los programas que usan TUI pueden tener menús, ventanas y cursores del ratón, pero todo representado con texto ASCII. CLI y TUI, no es lo mismo.
Eventualmente las CLI emigraron de las shells y se transformaron en parte integral de varias aplicaciones como interfaz alternativa y/o paralela a las GUI. En la actualidad, las líneas de comando permanecen como un importante (y aveces único) medio para interactuar con programas.
[editar] Funcionamiento
En su forma más simple, una CLI muestra un prompt, el usuario teclea una orden en el teclado y finaliza la orden (normalmente con la tecla Intro/Enter), y la computadora ejecuta la orden, proporcionando una salida de texto.
Las órdenes dadas a la CLI son con frecuencia de la forma: haz_algo [de_esta_forma] [a_estos_ficheros]
Pero no solo se puede trabajar interactivamente con el CLI, también es posible usar scripts, es decir, archivos conteniendo instrucciones guardas como si se estuviesen escribiendo en el momento. De esta forma, la línea de comandos puede utilizarse sin siquiera tener que lidiar con lo primitivo del método.
[editar] Implementaciones de CLI
Los programas que usan CLI para interactuar con el kernel de algún sistema operativo se llaman con frecuencia Intérprete de comandos o shell. Algunos ejemplos son las diversas shells de Unix (sh, ksh, csh, tcsh, bash, etc.), el histórico CP/M, y el command.com de DOS, estos dos últimos fuertemente basados en las CLI de RSTS y RSX de DEC. El próximo sistema operativo de Microsoft, Windows Vista, aceptará una nueva interfaz de línea de órdenes llamada MSH (Microsoft Shell, nombre en código Monad), que espera combinar características de las shells de Unix tradicionales con su marco de trabajo orientado a objetos .NET.
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ía de los teléfonos portátiles, así como miles de otros productos industriales) proporciona una CLI (cuyo lenguaje, por cierto, es distinto del lenguaje de script de Rhino). En algunos entornos informáticos, como la interfaz de usuario de Smalltalk u Oberon, la mayoría del texto que aparece en la pantalla se puede usar para dar órdenes.
El los juegos tridimensionales o simuladores para PC se suele incluir una interfaz de líneas de comandos, aveces como único medio para realizar ciertas tareas. Quake, Unreal Tournament o Battlefield son solo algunos ejemplos. Generalmente en estos ambientes los comandos empiezan con un "/" (slash).
[editar] Ejemplo
El comando "listar archivos", bajo diversos programas:
Programa | Comando | Tipo de programa |
---|---|---|
CMD | dir | Shell de Windows |
Bash | ls | Shell de Unix/Linux |
Matlab | dir | Procesamiento matricial |
Quake | /dir | Juego PC |
[editar] Consolas v/s CLI v/s TUI v/s TTY
Históricamente la consola era un terminal de datos (hardware), pero como dichos aparatos ya casi no existen, la palabra pasó a utilizarse como sinónimo de "pantalla del CLI". La expresión consola se utiliza más comúnmente en juegos de PC para referirse a la ventana donde se pueden ingresar comandos.
Por otro lado, un emulador de terminal (o TTY) es un programa que permite imitar aquellos viejos terminales, para acceder a diversos servicios aun vigentes bajo ese tipo de formato (como Telnet). Ejemplos de estos programas son HyperTerminal, Xterm, PuTTY, y SSH.
Para añadir mas a la confusión del tema, los sistema de ventanas proveen alguna clase de emulación para el modo texto, para ejecutar correctamente programas que utilizan TUI (como el Midnight Commander de Linux). De esta forma, tanto los shells de Unixes (bajo X Windows) como los antiguos programas de DOS (bajo MS Windows) son ejecutados con este emulador del modo texto. Y lo que es aun peor, algunos importantes programas (como Bash), actúan también como emuladores de terminal. De esta manera, las expresiones emulador de texto, consola y terminal acaban aveces usándose como sinónimos.
Es común mezclar las tres cosas para referirse a un solo concepto: el sitio donde se puede usar la interfaz de líneas de comando.
[editar] Véase también
- Interfaz gráfica de usuario
- Interfaz de usuario de texto
- Bash, el intérprete de órdenes estándar de GNU/Linux
- MSH - Microsoft Command Shell
- En el principio fue la línea de órdenes, un ensayo de Neal Stephenson