LÃnea de comandos
De Wikipedia, la enciclopedia libre
Intérprete de órdenes, Intérprete de mandatos, Intérprete de lÃnea de mandatos, Intérprete de comandos, Terminal, Consola, Shell ó su acronimo en idioma inglés CLI por Command line interface, es un programa informático que actúa como Interfaz de usuario para comunicar al usuario con el sistema operativo mediante una ventana que espera ordenes escritas por el usuario en el teclado (por ej. PRINT CARTA.TXT), los interpreta y los entrega al sistema operativo para su ejecución. La respuesta del sistema operativo es mostrada al usuario en la misma ventana. A continuación, El programa shell queda esperando más instrucciones. Se interactúa con la información de la manera más sencilla posible, sin gráficas, solo el texto crudo.
Por extensión también se llama Intérprete de comandos a algunas interfaces de programas (mayores) que comunican al usuario con el software o al Cliente (informática) de un Servidor, como por ejemplo, bancos de datos (MySQL, Oracle) u otros programas (openSSL, FTP) etc.
Dada la importancia de esta herramienta, existe ya desde los comienzos de la computación. Existen para diversos sistemas operativos, diversos hardware, con diferente funcionalidad. Suelen incorporar caracterÃsticas tales como control de procesos, redirección de entrada/salida, listado y lectura de ficheros, protección, comunicaciones y un lenguaje de órdenes para escribir programas por lotes o (scripts o guiónes).
Su contraparte es la Interfaz gráfica de usuario que ofrece una estética mejorada a costa de mayor consumo de recursos computacionales, una mayor vulnerabilidad por complejidad y, en general, una reducción en la funcionalidad ofrecida.
Tabla de contenidos |
[editar] Historia
En los primeros años de las computadoras, durante la era de los mainframes (grandes ordenadores en tamaño aunque con capacidades de cálculo muy inferiores a los ordenadores actuales), el control de la ejecución de los programas se hacÃa desde lugares especiales (normalmente ubicados cerca del ordenador en salas con aire acondicionado), donde el administrador manipulaba directa y completamente la máquina.
Cuando se comenzó a ampliar el número de personas que usaban los computadores, se comenzó a usar tarjetas perforadas para hacer la máquina más accequible a los usuarios. Pero aún con ello permanecÃa la separación temporal entre la programación y la ejecución de un programa ya que desde que se iniciaba la resolución de un problema, hasta que se recibÃa la respuesta proporcionada por el ordenador en "papel pijama" transcurrÃa casi una semana...
Esta forma de utilizar los ordenadores fue cambiando cuando se conectaron teletipos y luego teclados con un tubo de rayos catódicos (monitores) a las computadoras. A esa combinación se le llamó terminal: cada programador se podÃa conectar directamente con el computador. Con ello comenzaron a aparecer programas que ofrecÃan a través de órdenes, realizar operaciones que se repetÃan continuamente, tales como "imprimir un archivo", "listar todos los archivos", "mostrar el contenido de tal archivo", etc. Debe señalarse que no existÃan aún normas o standards relativas a estos aparatos periféricos y que cada terminal tenÃa sus propias normas de funcionamiento, en general incompatible con otras máquinas.
Esto terminó siendo reemplazado por terminales más inteligentes o conexiones de red que permitÃan acceso remoto, protegidos mediante contraseñas (passwords).
Tras el uso masivo de interfaces gráficas (GUI), comenzaron a extenderse el uso programas que, dentro de un ambiente gráfico, emulan un terminal en una ventana.
Como herramienta primaria de trabajo, las CLI son usadas ampliamente 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.
Las CLI son parte integral de varias aplicaciones como interfaz alternativa y/o paralela a las GUI. En la actualidad, las lÃneas de órdenes permanecen como un importante (y a veces único) medio para interactuar con programas.
[editar] Funcionamiento
En su forma más simple, una CLI es una ventana que muestra un prompt, señalizando su disposición a recibir mandatos, el usuario teclea una orden en el teclado e ingresa la orden normalmente con la tecla Intro/Enter.
Las órdenes dadas a la CLI son con frecuencia de la forma:
PROMPT>comando_haz_algo [opciones] [a_estos_ficheros]
Al ingresar el mandato con 'Intro', un programa interpretador de mandatos analiza la secuencia de caractéres ingresada y, si la sintaxis del mandato es correcta, ejecuta el mandato recurriendo para ello a las funciones que ofrece el sistema operativo o el programa que representa, un gestor de banco de datos, una sesión de FTP, etc. La respuesta al usuario es escrita en el monitor.
Esa forma de trabajo es interactiva, es decir usuario y máquina se comunican en forma sucesiva.
Pero no solo se puede trabajar interactivamente con el CLI, también es posible usar scripts ó guión, es decir, archivos conteniendo instrucciones guardadas 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 ni estando presente frente al monitor o teclado.
Comparada con un ambiente gráfico la CLI consume menos recursos del CPU y de la tarjeta gráfica, es más rápida y más fácil de utilizar a traves de una red de computadores.
[editar] Interfaz de usuario de texto
Para competir con la Interfaz gráfica de usuario (GUI, Graphic User Interface por sus siglas en inglés), algunas lÃneas de comando hacen uso exhaustivo de toda la pantalla, con todos los colores o tonos y posibilidades de posicionamiento que ofrece el periférico, ver por ejemplo lo navegadores Lynx y W3m, el particionador de discos "cfdisk", etc. El administrador de archivos Midnight Commander es un ejemplo de optimización, pues su funcionalidad no deja nada que desear comparado con un administrador de ficheros gráfico, pero solo necesita una ventana de texto para su funcionamiento. Se ha acuñado el término Interfaz de usuario de texto (TUI text user interface por sus siglas en inglés), para referirse a las interfaces que usan solo el modo texto, pero exhaustivamente, para su funcionamiento. Los programas que usan TUI pueden tener menús, ventanas y cursores del mouse, pero todo representado con texto ASCII. (Para su programación en ambiente GNU/Linux ver Ncurses). En ese sentido CLI y TUI, no es lo mismo, aunque ambos usan el mismo periférico.
[editar] Implementaciones de CLI
Es posible que un sistema operativo tenga varios intérpretes de comandos, es más, la visión lógica de un sistema operativo cambia según el intérprete de comandos usado. Ejemplo: Win32 sobre Windows o POSIX sobre LINUX.
Casi cualquier programa puede diseñarse para ofrecer al usuario alguna clase de Intérprete de comandos. Por ejemplo, casi todos los juegos de PC en primera persona tienen un Intérprete de comandos incorporada, utilizada para diagnostico y labores administrativas.
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 las 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 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 computadora personal se suele incluir una interfaz de lÃneas de comandos, aveces como único medio para realizar ciertas tareas. Quake, Unreal Tournament o Battlefield son sólo algunos ejemplos. Generalmente en estos ambientes los comandos empiezan con un "/" (slash).
[editar] Ejemplo
El comando "listar archivos", en diversos sistemas operativos:
| Programa o sistema operativo | Comando | Tipo de programa |
|---|---|---|
| CMD | dir | Shell de Windows |
| Shell de UNIX | ls | Shell de Unix |
| Matlab | dir | Procesamiento matricial |
| Quake | /dir | Juego PC |
| TACL | FILEINFO | Shell de Guardian |
[editar] Nomenclatura: Consolas v/s CLI v/s TUI v/s TTY v/s Terminal v/s Emulación v/s Shell
Pocos términos usados en computación han sufrido tantos avatares a través del progreso técnico tan intensamente como el de Intérprete de mandatos.
Históricamente la consola era un terminal de datos (es decir un dispositivo fÃsico), 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 aún vigentes bajo ese tipo de formato (como Telnet). Ejemplos de estos programas son HyperTerminal, Xterm, PuTTY, y SSH.
Con el desarrollo de los GUI, los sistemas 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 aún mejor, 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 a veces 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.
Por ejemplo, si conectamos un teclado y un monitor a un PC y lo hacemos arrancar con GNU/Linux en modo texto, la mayorÃa de los usuarios dirá que tiene una shell. Si desde esa shell se arranca el modo gráfico KDE del mismo PC, la pantalla se iluminará con trasfondos y botones. Si se abre una ventana con el programa xterm, se le llamará consola. Si en esa consola ejecutamos SSH y nos comunicamos a través de la red con un computador remoto, diremos que tenemos un terminal abierto. En los tres casos trabajaremos con una Shell, digamos Bash y las diferencias de funcionalidad son mÃnimas.
[editar] La interfaz gráfica de usuario
Con el uso de monitores como periférico y la masificación del uso del PC, los sistemas operativos Apple (1984) y MS Windows (1985) ofrecieron a los usuarios una interfaces gráficas de usuario (GUI) logrando un rotundo éxito económico. GNU/Linux posee varias, entre ellas KDE y Gnome. Pero a pesar de la vistosa apariencia de las GUI, la CLI no ha podido ser reemplazada donde se necesita precisión, economÃa y versatilidad.
[editar] Véase también
- Emulador de terminal Uso del terminal como interfaz de acceso remoto
- Terminal de computadora Historia de los terminales
- Interfaz de usuario
- Interfaz gráfica de usuario
- Escritorio remoto
- Bash, el intérprete de órdenes estándar de GNU/Linux
- Servidor
- Cliente (informática)
- VT100
