Llinia d'órdenes

La **llinia d'órdenes** (, **CLI**) ye un métodu que dexa a los usuarios dar instrucciones a dalgún programa informáticu per mediu d'una llinia de testu simple. Tien De notase que los conceutos de CLI, *[[Shell (informática)|shell]]* y emulador de terminal nun son lo mesmo yá que *CLI ye un <o>[[Metodología|método]]</o>* ente que *shell y emulador de terminal son <o>programes informáticos</o>.* Sicasí los trés suelen utilizase como sinónimos.

Les CLI pueden emplegase interactivamente, escribiendo instrucciones en dalguna especie de Cursor (informática)#Cursor de testu entrada de testu, o pueden utilizase d'una forma muncho más automatizada (archivu ''batch''), lleendo órdenes dende un archivu de *[[script]]s*.

Esta interfaz esiste casi dende los empiezos de la computación, superada n'antigüedá solo poles tarxetes furaes y mecanismos similares. Esisten pa diversos programes y sistemes operativos, pa diversu *[[hardware]]*, y con distinta funcionalidad.

Por casu, les CLI son parte fundamental de los *shells* o emuladores de terminal. Apaecen en toles interfaces d'escritoriu (GNOME, KDE, Microsoft Windows) como un métodu pa executar aplicaciones rápido. Apaecen como interfaz de llinguaxes interpretaos tales como Java, Python, Ruby o Perl. Tamién s'utilicen n'aplicaciones vecera-servidor, en xestores de bases de datos, en veceros FTP, etc. Les CLI son un elementu fundamental d'aplicaciones d'inxeniería tan importantes como MATLAB y AutoCAD.

La contraparte de CLI ye la interfaz gráfica d'usuariu (GUI) qu'ufierta una estética ameyorada y una mayor simplificación, a cuenta de un mayor consumu de recursos computacionales, y, polo xeneral, d'un amenorgamientu de la funcionalidad algamable. Coles mesmes apaez el problema d'una mayor vulnerabilidá dada la so complexidá.

Les CLI son usaes por munchos programadores y alministradores de sistemes como ferramienta primario de trabayu, especialmente en sistemes operativos basaos en Unix; en redolaes científiques y d'inxeniería, y un subconxuntu más pequeñu d'usuarios domésticos avanzaos.

En dispositivos portátiles y PDA, les CLI nun s'utilicen, por cuenta de lo complexo que resulta ingresar datos de testu, o pola ausencia total de teclaos.

## Historia
Nos primeros años de los ordenadores, y mientres la era de los ordenadores denominaos *[[mainframes]]*, el control de la execución de los programes facer dende llugares especiales (de normal allugaos cerca del ordenador en sales con aire acondicionáu), onde l'alministrador manipoliaba direutamente la máquina.

Escribíase la orde nel tecláu y recibíase la respuesta impresa en papel. Estos sistemes basaos en teletipos dieron orixe a la primer forma eficiente d'interactuar con ordenadores: llinies de testu simple.

Col advenimiento del sistema operativu Unix a entamos de la década de 1970, l'usu de la llinia d'órdenes convirtióse nun estándar. Canonizáronse les regles d'execución basaes en tuberíes, peneráu d'archivos utilizando comodinos, y toes aquelles funcionalidades que dexaben les nacientes interfaces de testu. Los sistemes operativos que vendríen (CP/M, DOS) adoptaríen como propies aquelles cualidaes.

Cola popularización de la ordenador personal na década de 1980, les aplicaciones entraron a un nuevu escenariu onde yá non se tenía que compartir los recursos del sistema con otros usuarios. Agora cada usuariu cuntaba cola so propia máquina, cola qu'interactuaba d'una forma muncho más personalizada. Apple y depués Microsoft llanzaron exitosamente al mercáu sistemes qu'esplotaben tolos conceutos visuales que fueren desenvueltos por Alan Kay y el so equipu del PARC, esto ye, una interfaz gráfica pa controlar al ordenador per mediu d'un ratón.

Hasta l'actualidá les GUI permanecen como la interfaz dominante y les CLI como interfaz secundaria. Sicasí, el mesmu Dr. Alan Kay señaló que «ye necesariu desenvolver un nuevu tipu de interfaz» pa optimizar la rellación ente humanos y ordenadores.

## Funcionamientu

Na so forma más simple, una CLI consiste nun espaciu onde pueden escribise órdenes (polo xeneral, señalizáu con un *[[prompt]]*). L'usuariu teclea una orde y executar al pasar a la llinia siguiente, utilizando la tecla Entrar.

Les órdenes daes a la CLI son con frecuencia de la forma:

`PROMPT>aplicación [parametros] ficheros o URI...`

Al rematar y unviar la orde cola tecla Entrar, un módulu interpretador d'órdenes analiza la secuencia de calteres recibida y, si la sintaxis de la orde ye correuta, executa la orde dientro del contestu del programa o del sistema operativu onde s'atopa. Esta forma de trabayu ye secuencial, y equival a un tipu de programación pasu a pasu.

L'usuariu percibe'l procesamientu de les sos instrucciones en forma d'aición. Si al usuariu únviase-y esta información de procesamientu en forma de testu simple, entós llámase-y salida estándar o «stdout». L'usuariu tamién puede recibir un informe testual d'errores nuna canal especializada llamáu «stderr». Casi tolos ''shells'' implementen la visualización de «stdout» y «stderr» al mesmu dispositivu, na mayoría de los casos la pantalla.

Tamién ye posible usar *[[script]]s*, esto ye, archivos con instrucciones guardaes como si tuvieren escribiéndose nel momentu. En casu d'error, la execución del *script* puede albortase. D'esta forma, la llinia de comandos puede utilizase ensin siquier tener que trepar col prompt, nin tando presente frente al monitor o tecláu.

## Implementaciones
Casi cualquier programa puede diseñase pa ufiertar al usuariu dalguna clase d'intérprete d'instrucciones. Por casu, dalgunos videoxuegos para PC en primer persona tienen un intérprete d'órdenes incorporáu, conocíu comúnmente como «consola» (nun confundir con Videoconsola), utilizáu pa diagnósticu y llabores alministrativos. ''Quake'', ''Unreal Tournament'', *[[Ragnarok Online]]* o ''Battlefield'' son dellos exemplos. Dacuando la consola ye l'únicu mediu pa reparar problemes.

Cuando se trata d'un programa que interactúa col ''kernel'' d'un sistema operativu llámase-y con frecuencia *shell*. Dellos exemplos son los diverses *shell* de Unix (ksh, csh, tcsh, Bourne Shell, etc.), l'históricu CP/M, y el command.com de DOS, estos dos últimos fuertemente basaos nes CLI de RSTS y RSX-11, sistemes operativos del PDP-11 de DEC. El sistema operativu Windows Vista prometía una *CLI* llamada Windows PowerShell, que combinaba carauterístiques de les tradicionales *shells* de Unix col so framework empobináu a oxetos .NET. Esti desenvolvimientu nun foi integráu por defectu nel sistema operativu, cuantimás por cuenta de los sos riesgos de seguridá iniciales.

Les implementanciones de llinguaxes interpretaos suelen ufiertar tamién un ambiente de trabayu basáu en CLI. Nestos ambientes créase una instancia de la máquina virtual cola que l'usuariu puede interactuar.

Delles aplicaciones apurren tantu una CLI como una GUI. Un exemplu ye'l programa de CAD AutoCAD. El paquete científicu/ingenieril de computación numbérica Matlab nun apurre GUI pa dellos cálculos, pero la CLI puede realizar cualquier cálculu. El programa de modeláu tridimensional Rhinoceros 3D (que s'usa pa diseñar les caxes de la mayor parte de los teléfonos portátiles, según miles d'otros productos industriales) apurre una CLI (que'l so llinguaxe, a éstes ye distintu del llinguaxe *scripts* de Rhino). En delles redolaes informátiques, como la interfaz d'usuariu de Smalltalk o Oberon, la mayor parte del testu qu'apaez na pantalla puede usase pa dar órdenes.

## Estándar de invocación
Nun esiste nenguna normativa obligatoria en cuanto al formatu de invocación (escritura y execución) o a la documentación que les aplicaciones o funciones tienen de presentar. Sicasí, acuñáronse estándares informales al momentu de definir formes. El más importante consiste nel usu de corchetes **[ ]** pa indicar parámetros opcionales. Estos pueden añerase ([..[..]]). Por casu, la documentación de l'aplicación cal de POSIX diz que la forma d'executase per mediu del CLI ye:

:`cal [[mes] añu ]`

Esto significa que si se desea ver l'añu 2012, tendría qu'escribise lliteralmente:
:`cal 2012`

## Exemplos d'interaición
La instrucción pa listar archivos, en diverses redolaes:

## Interfaz testual d'usuariu

Una interfaz testual d'usuariu consiste nuna interfaz gráfica fecha dafechu de testu. Nun ye lo mesmo qu'un CLI, anque dambos usen el mesmu periféricu.

## Ver tamién
* Interfaz d'usuariu
* Prompt

## Referencies

## Bibliografía
* 

## Enllaces esternos
* Entendiendo lo que son 'los d'una llinia'.