De Wikipedia, la enciclopedia libre
Saltar a navegación Saltar a búsqueda

Captura de pantalla de una sesión Bash de muestra en GNOME Terminal 3, Fedora 15
Captura de pantalla de Windows PowerShell 1.0, que se ejecuta en Windows Vista

Una interfaz de línea de comandos ( CLI ) procesa los comandos de un programa de computadora en forma de líneas de texto. El programa que maneja la interfaz se llama intérprete de línea de comandos o procesador de línea de comandos . Los sistemas operativos implementan una interfaz de línea de comandos en un shell para el acceso interactivo a las funciones o servicios del sistema operativo. Este acceso se proporcionó principalmente a los usuarios mediante terminales de computadora a partir de mediados de la década de 1960, y continuó usándose durante las décadas de 1970 y 1980 en VAX / VMS , sistemas Unix y sistemas de computadoras personales, incluidos DOS , CP / My Apple DOS .

Hoy en día, muchos usuarios confían en las interfaces gráficas de usuario y las interacciones basadas en menús. Sin embargo, es posible que algunas tareas de programación y mantenimiento no tengan una interfaz gráfica de usuario y aún utilicen una línea de comandos.

Las alternativas a la interfaz de línea de comandos incluyen menús de interfaz de usuario basados ​​en texto (por ejemplo, IBM AIX SMIT ), atajos de teclado y varias metáforas de escritorio centradas en el puntero (generalmente controladas con un mouse ). Ejemplos de esto incluyen Microsoft Windows, DOS Shell y Mouse Systems PowerPanel. Las interfaces de línea de comandos a menudo se implementan en dispositivos terminales que también son capaces de interfaces de usuario basadas en texto orientadas a la pantalla que utilizan el direccionamiento del cursor para colocar símbolos en una pantalla de visualización.

Los programas con interfaces de línea de comandos son generalmente más fáciles de automatizar mediante secuencias de comandos .

Muchos sistemas de software implementan interfaces de línea de comandos para control y operación. Esto incluye entornos de programación y programas de utilidad.

Comparación con las interfaces gráficas de usuario [ editar ]

Una interfaz gráfica de usuario con iconos y ventanas ( GEM 1.1 Desktop )

En comparación con una interfaz gráfica de usuario, una interfaz de línea de comandos requiere menos recursos del sistema para implementar. Dado que las opciones de los comandos se dan en unos pocos caracteres en cada línea de comando, un usuario experimentado a menudo puede encontrar las opciones más fáciles de acceder. La automatización de tareas repetitivas se simplifica mediante la edición de líneas y los mecanismos de historial para almacenar secuencias de uso frecuente; esto puede extenderse a un lenguaje de scripting que puede tomar parámetros y opciones variables. Se puede mantener un historial de la línea de comandos, lo que permite revisar o repetir los comandos.

Un sistema de línea de comandos puede requerir manuales impresos o en línea para la referencia del usuario, aunque a menudo una opción de "ayuda" proporciona una revisión concisa de las opciones de un comando. Es posible que el entorno de la línea de comandos no proporcione mejoras gráficas como fuentes diferentes o ventanas de edición extendidas que se encuentran en una GUI. Puede resultar difícil para un nuevo usuario familiarizarse con todos los comandos y opciones disponibles, en comparación con los iconos y menús desplegables de una interfaz gráfica de usuario, sin una referencia repetida a los manuales.

Tipos [ editar ]

Interfaces de línea de comandos del sistema operativo [ editar ]

CommandShell de Apple Computer en A / UX 3.0.1

Las interfaces de línea de comandos del sistema operativo (SO) suelen ser programas distintos que se suministran con el sistema operativo. Un programa que implementa dicha interfaz de texto a menudo se denomina intérprete de línea de comandos, procesador de comandos o shell .

Ejemplos de intérpretes de línea de comandos incluyen de DEC Comando lenguaje digital (DCL) en Open VMS y RSX-11 , los distintos comandos Unix ( sh , ksh , csh , tcsh , zsh , golpe , etc.), CP / M 's PCC , DOS ' COMMAND.COM , así como el OS / 2 de las ventanas y CMD.EXE programas, los últimos grupos se basan en gran medida de la DEC RSX-11 y RSTSCLI. En la mayoría de los sistemas operativos, es posible reemplazar el programa de shell predeterminado con alternativas; los ejemplos incluyen 4DOS para DOS, 4OS2 para OS / 2 y 4NT / Take Command para Windows.

Aunque el término 'shell' se usa a menudo para describir un intérprete de línea de comandos, estrictamente hablando, un 'shell' puede ser cualquier programa que constituya la interfaz de usuario, incluidos los totalmente orientados gráficamente. Por ejemplo, la GUI de Windows predeterminada es un programa de shell llamado EXPLORER.EXE , como se define en la línea SHELL = EXPLORER.EXE en el archivo de configuración WIN.INI. Estos programas son shells, pero no CLI.

Interfaces de línea de comandos de la aplicación [ editar ]

GUI de GNU Octave con interfaz de línea de comandos

Los programas de aplicación (a diferencia de los sistemas operativos) también pueden tener interfaces de línea de comandos.

Un programa de aplicación puede admitir ninguno, ninguno o todos estos tres tipos principales de mecanismos de interfaz de línea de comandos:

  • Parámetros : la mayoría de los sistemas operativos admiten un medio para pasar información adicional a un programa cuando se inicia. Cuando se inicia un programa desde un shell de línea de comandos del sistema operativo, el texto adicional proporcionado junto con el nombre del programa se pasa al programa iniciado.
  • Sesiones de línea de comandos interactivas : después del lanzamiento, un programa puede proporcionar al operador un medio independiente para ingresar comandos en forma de texto.
  • Comunicación entre procesos : la mayoría de los sistemas operativos admiten medios de comunicación entre procesos (por ejemplo, flujos estándar o canalizaciones con nombre ). Las líneas de comando de los procesos del cliente pueden redirigirse a un programa CLI mediante uno de estos métodos.

Algunas aplicaciones solo admiten una CLI, presentando un indicador de CLI al usuario y actuando sobre las líneas de comando a medida que se ingresan. Otros programas admiten tanto una CLI como una GUI. En algunos casos, una GUI es simplemente una envoltura de un archivo ejecutable CLI separado . En otros casos, un programa puede proporcionar una CLI como alternativa opcional a su GUI. Las CLI y las GUI a menudo admiten diferentes funcionalidades. Por ejemplo, todas las funciones de MATLAB , un programa informático de análisis numérico , están disponibles a través de la CLI, mientras que la GUI de MATLAB expone solo un subconjunto de funciones.

Los primeros juegos de Sierra, como los tres primeros juegos de King's Quest (1984-1986), usaban comandos de una línea de comandos interna para mover al personaje en la ventana gráfica.

Historia [ editar ]

La interfaz de línea de comandos evolucionó a partir de una forma de diálogo que alguna vez llevaron a cabo los humanos a través de máquinas de teletipo (TTY), en el que los operadores humanos intercambiaban información de forma remota, generalmente una línea de texto a la vez. Los primeros sistemas informáticos utilizaban a menudo máquinas de teletipo como medio de interacción con un operador humano. La computadora se convirtió en un extremo del modelo de teletipo de persona a persona. Entonces, en lugar de que un humano se comunique con otro humano a través de una teleimpresora, un humano se comunicó con una computadora.

La teleimpresora mecánica fue reemplazada por una "tty de vidrio" , un teclado y una pantalla que emulaban la teleimpresora. Los terminales "inteligentes" permitían funciones adicionales, como el movimiento del cursor sobre toda la pantalla o la edición local de datos en el terminal para su transmisión a la computadora. A medida que la revolución de las microcomputadoras reemplazó a la tradicional arquitectura de tiempo compartido (minicomputadora + terminales) , los terminales de hardware fueron reemplazados por emuladores de terminal  (software de PC que interpretaba las señales de terminal enviadas a través de los puertos serie de la PC). Por lo general, estos se usaban para conectar las nuevas PC de una organización con sus mini o mainframe existentes, o para conectar una PC a otra. Algunas de estas PC estaban ejecutando el software Bulletin Board System .

Las primeras CLI del sistema operativo se implementaron como parte de los programas de monitorización residentes y no se podían reemplazar fácilmente. La primera implementación del shell como componente reemplazable fue parte del sistema operativo de tiempo compartido Multics . [1] En 1964, el miembro del personal del Centro de Computación del MIT , Louis Pouzin, desarrolló la herramienta RUNCOM para ejecutar scripts de comandos y, al mismo tiempo, permitir la sustitución de argumentos. [2] Pouzin acuñó el término " shell " para describir la técnica de usar comandos como un lenguaje de programación, y escribió un artículo sobre cómo implementar la idea en el sistema operativo Multics . [3] Pouzin regresó a su Francia natal en 1965, y Glenda Schroeder desarrolló el primer proyectil Multics. [2]

Interacción del shell Bourne en la versión 7 de Unix

El primer caparazón de Unix , el caparazón V6 , fue desarrollado por Ken Thompson en 1971 en Bell Labs y se inspiró en el caparazón Multics de Schroeder. [4] [5] El shell Bourne se introdujo en 1977 como reemplazo del shell V6. Aunque se utiliza como un intérprete de comandos interactivo, también fue pensado como un lenguaje de secuencias de comandos y contiene la mayoría de las características que se consideran comúnmente para producir programas estructurados. El shell Bourne condujo al desarrollo del shell KornShell (ksh), el shell Almquist (ash) y el popular shell Bourne-again (o Bash). [5]

Los primeros microordenadores se basaban en una interfaz de línea de comandos como CP / M , DOS o AppleSoft BASIC . Durante las décadas de 1980 y 1990, la introducción de Apple Macintosh y Microsoft Windows en las PC vio la interfaz de línea de comandos como la interfaz de usuario principal reemplazada por la interfaz gráfica de usuario . La línea de comando permaneció disponible como una interfaz de usuario alternativa, que a menudo utilizan los administradores del sistema y otros usuarios avanzados para la administración del sistema, la programación de computadoras y el procesamiento por lotes .

En noviembre de 2006, Microsoft lanzó la versión 1.0 de Windows PowerShell (anteriormente llamado Monad ), que combinaba características de los shells tradicionales de Unix con su .NET Framework patentado orientado a objetos . MinGW y Cygwin son paquetes de código abierto para Windows que ofrecen una CLI similar a Unix. Microsoft proporciona la implementación de ksh de MKS Inc. MKS Korn shell para Windows a través de su complemento Servicios para UNIX .

Desde 2001, el sistema operativo Macintosh macOS se ha basado en un sistema operativo similar a Unix llamado Darwin . En estas computadoras, los usuarios pueden acceder a una interfaz de línea de comandos similar a Unix ejecutando el programa emulador de terminal llamado Terminal , que se encuentra en la subcarpeta Utilidades de la carpeta Aplicaciones, o iniciando sesión remotamente en la máquina usando ssh . Z shell es el shell predeterminado para macOS; También se proporcionan bash , tcsh y KornShell . Antes de macOS Catalina , bash era el predeterminado.

Uso [ editar ]

Una CLI se utiliza siempre que se pueda introducir un amplio vocabulario de comandos o consultas, junto con una amplia (o arbitraria) gama de opciones, más rápidamente como texto que con una GUI pura. Este suele ser el caso de los shells de comandos del sistema operativo . Los sistemas con recursos insuficientes también utilizan CLI para admitir una interfaz gráfica de usuario. Algunos sistemas de lenguaje informático (como Python , Forth , LISP , Rexx y muchos dialectos de BASIC ) proporcionan un modo de línea de comandos interactivo para permitir una evaluación rápida del código.

Las CLI suelen ser utilizadas por programadores y administradores de sistemas, en entornos de ingeniería y científicos, y por usuarios de computadoras personales técnicamente avanzados. Las CLI también son populares entre las personas con discapacidades visuales, ya que los comandos y las respuestas se pueden mostrar mediante pantallas Braille actualizables .

Anatomía de una CLI de shell [ editar ]

El patrón general de una interfaz de línea de comandos del sistema operativo [6] [7] es:

Símbolo del comando param1 param2 param3 ... paramN
  • Aviso : generado por el programa para proporcionar contexto al cliente.
  • Comando: proporcionado por el cliente. Los comandos suelen ser una de tres clases:
    1. Los comandos internos son reconocidos y procesados ​​por el propio intérprete de línea de comandos y no dependen de ningún archivo ejecutable externo.
    2. Los comandos incluidos ejecutan archivos ejecutables separados que generalmente se consideran parte del entorno operativo y siempre se incluyen con el sistema operativo.
    3. Los comandos externos ejecutan archivos ejecutables que no forman parte del sistema operativo básico, pero que son agregados por otras partes para aplicaciones y propósitos específicos.
  • param1… paramN: parámetros opcionales proporcionados por el cliente. El formato y el significado de los parámetros depende del comando emitido. En el caso de los comandos Incluidos o Externos, los valores de los parámetros se entregan al programa (especificado por el Comando) a medida que lo inicia el SO. Los parámetros pueden ser argumentos u opciones .

En este ejemplo, los delimitadores entre los elementos de la línea de comandos son caracteres de espacio en blanco y el delimitador de final de línea es el delimitador de nueva línea . Esta es una convención ampliamente utilizada (pero no universal) para interfaces de línea de comandos.

Generalmente, se puede considerar que una CLI consta de sintaxis y semántica . La sintaxis es la gramática que deben seguir todos los comandos. En el caso de los sistemas operativos , DOS y Unix definen cada uno su propio conjunto de reglas que todos los comandos deben seguir. En el caso de los sistemas integrados , cada proveedor, como Nortel , Juniper Networks o Cisco Systems , define su propio conjunto de reglas patentado al que se ajustan todos los comandos de su CLI. Estas reglas también dictan cómo un usuario navega a través del sistema de comandos. La semántica definir qué tipo de operaciones son posibles, sobre qué tipo de datos se pueden realizar estas operaciones y cómo la gramática representa estas operaciones y datos: el significado simbólico en la sintaxis.

Dos CLI diferentes pueden estar de acuerdo en la sintaxis o la semántica, pero solo cuando están de acuerdo en ambas pueden considerarse lo suficientemente similares para permitir a los usuarios usar ambas CLI sin necesidad de aprender nada, así como para permitir la reutilización de scripts. .

Una CLI simple mostrará un mensaje, aceptará una "línea de comando" escrita por el usuario terminada con la tecla Intro , luego ejecutará el comando especificado y proporcionará una visualización textual de resultados o mensajes de error. Las CLI avanzadas validarán, interpretarán y expandirán los parámetros de la línea de comando antes de ejecutar el comando especificado y, opcionalmente, capturarán o redireccionarán su salida.

A diferencia de un botón o elemento de menú en una GUI, una línea de comando suele ser autodocumentada, indicando exactamente lo que el usuario quiere que se haga. Además, las líneas de comando generalmente incluyen muchos valores predeterminados que se pueden cambiar para personalizar los resultados. Se pueden guardar líneas de comando útiles asignando una cadena de caracteres o alias para representar el comando completo, o se pueden agrupar varios comandos para realizar una secuencia más compleja, por ejemplo, compilar el programa, instalarlo y ejecutarlo, creando una sola entidad , llamado procedimiento de comando o script que en sí mismo puede tratarse como un comando. Estas ventajas significan que un usuario debe descifrar un comando complejo o una serie de comandos solo una vez, porque se pueden guardar para volver a utilizarlos.

Los comandos dados a un shell CLI suelen tener una de las siguientes formas:

  • doSomething how toFiles
  • doSomething how sourceFile destinationFile
  • doSomething how < inputFile > outputFile
  • doSomething how | doSomething how | doSomething how > outputFile

where doSomething es, en efecto, un verbo , cómo un adverbio (por ejemplo, si el comando debe ejecutarse "prolijamente" o "silenciosamente") y toFiles un objeto u objetos (típicamente uno o más archivos) sobre los cuales el comando debería actuar. El >en el tercer ejemplo es un operador de redirección , que le dice al intérprete de la línea de comandos que envíe la salida del comando no a su propia salida estándar (la pantalla) sino al archivo nombrado. Esto sobrescribirá el archivo. El uso >>redirigirá la salida y la agregará al archivo. Otro operador de redirección es la barra vertical ( |), que crea una canalización donde la salida de un comando se convierte en la entrada del siguiente comando.

CLI y protección de recursos [ editar ]

Se puede modificar el conjunto de comandos disponibles modificando las rutas que aparecen en la variable de entorno PATH . En Unix, los comandos también deben marcarse como archivos ejecutables . Los directorios de la variable de ruta se buscan en el orden en que se dan. Al reordenar la ruta, se puede ejecutar, por ejemplo, \ OS2 \ MDOS \ E.EXE en lugar de \ OS2 \ E.EXE, cuando el valor predeterminado es el opuesto. El cambio de nombre de los ejecutables también funciona: la gente suele cambiar el nombre de su editor favorito a EDITAR, por ejemplo.

La línea de comando permite restringir los comandos disponibles, como el acceso a comandos internos avanzados. El CMD.EXE de Windows hace esto. A menudo, los programas shareware limitarán el rango de comandos, incluida la impresión de un comando "su administrador ha desactivado la ejecución de archivos por lotes" desde el indicador.

Algunas CLI, como las de los enrutadores de red , tienen una jerarquía de modos , con un conjunto diferente de comandos admitidos en cada modo. El conjunto de comandos se agrupa por asociación con seguridad, sistema, interfaz, etc. En estos sistemas, el usuario puede atravesar una serie de submodos. Por ejemplo, si la CLI tiene dos modos llamados interfaz y sistema , el usuario puede usar la interfaz de comando para ingresar al modo de interfaz. En este punto, es posible que no se pueda acceder a los comandos del modo de sistema hasta que el usuario salga del modo de interfaz y entre en el modo de sistema.

Símbolo del sistema [ editar ]

Indicación de un BBC Micro después del encendido o restablecimiento completo

Un símbolo del sistema (o simplemente un símbolo del sistema ) es una secuencia de (uno o más) caracteres que se utilizan en una interfaz de línea de comandos para indicar que están listos para aceptar comandos. Literalmente pide al usuario que actúe. Un mensaje normalmente termina con uno de los personajes $, %, #, [8] [9] : , >o -[10] y con frecuencia incluye otra información, tal como el camino de la corriente de directorio de trabajo y el nombre de host .

En muchos sistemas Unix y derivados , el indicador normalmente termina en $o %si el usuario es un usuario normal, pero en #si el usuario es un superusuario ("root" en la terminología de Unix).

Los usuarios finales a menudo pueden modificar las indicaciones. Dependiendo del entorno, pueden incluir colores, caracteres especiales y otros elementos (como variables y funciones para el tiempo actual, usuario, número de shell o directorio de trabajo) para, por ejemplo, hacer que el mensaje sea más informativo o visualmente agradable. para distinguir sesiones en varias máquinas, o para indicar el nivel actual de anidamiento de comandos. En algunos sistemas, se pueden usar tokens especiales en la definición del indicador para hacer que el intérprete de la línea de comandos llame a programas externos mientras se muestra el indicador.

En COMMAND.COM de DOS y en cmd.exe de Windows NT, los usuarios pueden modificar el indicador emitiendo un PROMPTcomando o cambiando directamente el valor de la %PROMPT% variable de entorno correspondiente . Por defecto de la mayoría de los sistemas modernos, el C:\>estilo se obtiene, por ejemplo, con PROMPT $P$G. El valor predeterminado de los sistemas DOS más antiguos C>se obtiene simplemente PROMPT, aunque en algunos sistemas esto produce el C:\>estilo más nuevo , a menos que se utilice en unidades de disquete A: o B :; en esos sistemas PROMPT $N$Gse puede utilizar para anular el valor predeterminado automático y cambiar explícitamente al estilo anterior.

Muchos sistemas Unix cuentan con la $PS1variable (Prompt String 1), [11] aunque otras variables también pueden afectar el prompt (dependiendo del shell utilizado). En el shell de bash , un indicador de la forma:

[ hora ] usuario @ host: work_dir $

se puede configurar emitiendo el comando

exportar  PS1 = '[\ t] \ u @ \ H: \ W $'

En zsh, la $RPROMPTvariable controla un "indicador" opcional en el lado derecho de la pantalla. No es un mensaje real en el sentido de que la ubicación de la entrada de texto no cambia. Se utiliza para mostrar información en la misma línea que la solicitud, pero justificada a la derecha.

En el sistema operativo RISC, el símbolo del sistema es un *símbolo y, por lo tanto, los comandos CLI (SO) se denominan a menudo "comandos estrella". [12] También se puede acceder a los mismos comandos desde otras líneas de comando (como la línea de comando BBC BASIC ), precediendo el comando con a *.

Argumentos [ editar ]

Una línea de comandos de MS-DOS, que ilustra el análisis sintáctico en comandos y argumentos.

Un argumento o parámetro de la línea de comandos es un elemento de información que se proporciona a un programa cuando se inicia. Un programa puede tener muchos argumentos en la línea de comandos que identifican fuentes o destinos de información, o que alteran el funcionamiento del programa.

Cuando un procesador de comandos está activo, normalmente se invoca un programa escribiendo su nombre seguido de los argumentos de la línea de comandos (si los hay). Por ejemplo, en entornos Unix y similares a Unix , un ejemplo de un argumento de línea de comandos es:

rm file.s

"file.s" es un argumento de línea de comandos que le dice al programa rm que elimine el archivo "file.s".

Algunos lenguajes de programación, como C , C ++ y Java , permiten que un programa interprete los argumentos de la línea de comandos manipulándolos como parámetros de cadena en la función principal . Otros lenguajes, como Python , exponen la API (funcionalidad) específica del sistema operativo a través del sys módulo y, en particular, sys.argvpara los "argumentos de la línea de comandos".

En los sistemas operativos similares a Unix , un solo guión usado en lugar de un nombre de archivo es un valor especial que especifica que un programa debe manejar datos provenientes de la entrada estándar o enviar datos a la salida estándar .

Opción de línea de comandos [ editar ]

Una opción de línea de comandos o simplemente una opción (también conocida como bandera o conmutador ) modifica la operación de un comando; el efecto está determinado por el programa del comando. Las opciones siguen al nombre del comando en la línea de comandos, separadas por espacios. No siempre se requiere un espacio antes de la primera opción, como Dir/?y DIR /?en DOS, que tienen el mismo efecto [10] de enumerar las opciones disponibles del comando DIR, mientras que dir --help(en muchas versiones de Unix) requiere que la opción esté precedida por en al menos un espacio (y distingue entre mayúsculas y minúsculas).

El formato de las opciones varía ampliamente entre los sistemas operativos. En la mayoría de los casos, la sintaxis es por convención en lugar de un requisito del sistema operativo; toda la línea de comandos es simplemente una cadena que se pasa a un programa, que puede procesarla de la forma que desee el programador, siempre que el intérprete pueda decir dónde termina el nombre del comando y comienzan sus argumentos y opciones.

Algunas muestras representativas de opciones de línea de comandos, todas relacionadas con la lista de archivos en un directorio, para ilustrar algunas convenciones:

Comandos abreviados [ editar ]

En Multics , las opciones de la línea de comandos y las palabras clave del subsistema pueden abreviarse. Esta idea parece derivar del lenguaje de programación PL / I , con sus palabras clave abreviadas (por ejemplo, STRG para STRINGRANGE y DCL para DECLARE). Por ejemplo, en el subsistema "foro" de Multics, el parámetro -long_subject puede abreviarse -lgsj . También es común que los comandos de Multics sean abreviados, por lo general corresponden a las letras iniciales de las palabras que se encadenan con guiones bajos para formar los nombres de los comandos, como el uso de did para delete_iacl_dir .

En algunos otros sistemas, las abreviaturas son automáticas, como permitir suficientes primeros caracteres del nombre de un comando para identificarlo de manera única ( SUcomo una abreviatura de SUPERUSER), mientras que otros pueden tener algunas abreviaturas específicas preprogramadas (por ejemplo, MDpara MKDIRen COMMAND.COM) o definido por el usuario mediante secuencias de comandos por lotes y alias (por ejemplo, alias md mkdiren tcsh ).

Convenciones de opciones en DOS, Windows, OS / 2 [ editar ]

En DOS, OS / 2 y Windows, diferentes programas llamados desde su COMMAND.COM o CMD.EXE (o sus comandos internos) pueden usar una sintaxis diferente dentro del mismo sistema operativo. Por ejemplo:

  • Las opciones pueden ser indicados por cualquiera de los caracteres "switch": /, -o bien pueden ser permitidos. Vea abajo.
  • Pueden o no distinguir entre mayúsculas y minúsculas .
  • A veces, las opciones y sus argumentos se ejecutan juntos, a veces separados por espacios en blanco y, a veces, por un carácter, normalmente :o =; por lo tanto Prog -fFilename, Prog -f Filename, Prog -f:Filename, Prog -f=Filename.
  • Algunos programas permiten combinar opciones de un solo carácter; [10] otros no. El cambio -fApuede significar lo mismo que -f -A, [10] o puede ser incorrecto, o incluso puede ser un parámetro válido pero diferente.

En DOS , OS / 2 y Windows , la barra inclinada ( /) es más frecuente, aunque a veces también se utiliza el guión menos. En muchas versiones de DOS (MS-DOS / PC DOS 2.xx y superior, todas las versiones de DR-DOS desde 5.0, así como PTS-DOS , Embedded DOS , FreeDOS y RxDOS ), el carácter de cambio (a veces abreviado como switchar o switchchar ) que se utilizará se define mediante un valor devuelto por una llamada al sistema ( INT 21h / AX = 3700h). El carácter predeterminado devuelto por esta API es/, pero se puede cambiar a un guión menos en los sistemas mencionados anteriormente, excepto en Datalight ROM-DOS y MS-DOS / PC DOS 5.0 y superior, que siempre regresan /de esta llamada (a menos que uno de los muchos TSR disponibles para volver a habilitar la función SwitChar está cargada). En algunos de estos sistemas (MS-DOS / PC DOS 2.xx, DOS Plus 2.1, DR-DOS 7.02 y superior, PTS-DOS, Embedded DOS, FreeDOS y RxDOS), la configuración también se puede preconfigurar mediante un SWITCHAR. directiva en CONFIG.SYS . El DOS integrado de General Software proporciona un comando SWITCH para el mismo propósito, mientras que 4DOS permite cambiar la configuración a través de SETDOS /W:n. [13] En DR-DOS, si la configuración se ha cambiado de/, el primer separador de directorio \en la pantalla del parámetro PROMPT$G cambiará a una barra inclinada /(que también es un separador de directorio válido en DOS, FlexOS, 4680 OS, 4690 OS, OS / 2 y Windows) sirviendo así como una pista visual para indicar el cambio. [10] Además, la configuración actual también se refleja en las pantallas de ayuda integradas. [10] Algunas versiones de DR-DOS COMMAND.COM también admiten un token PROMPT $/para mostrar la configuración actual. COMMAND.COM desde DR-DOS 7.02 también proporciona una variable de pseudoentorno denominada %/%para permitir la escritura de trabajos por lotes portátiles. [14] [15]Varios comandos DR-DOS externos admiten además una variable de entorno %SWITCHAR% para anular la configuración del sistema.

Sin embargo, muchos programas están programados para usarse /únicamente, en lugar de recuperar la configuración del conmutador antes de analizar los argumentos de la línea de comandos. Un número muy pequeño, principalmente puertos de sistemas similares a Unix, están programados para aceptar "-" incluso si el carácter del conmutador no está configurado (por ejemplo , netstaty ping, suministrado con Microsoft Windows , aceptará la opción /? Para enumerar las opciones disponibles y, sin embargo, la lista especificará la convención "-").

Convenciones de opciones en sistemas similares a Unix [ editar ]

En sistemas similares a Unix, las opciones de inicio de guión menos ASCII ; la nueva (y GNU ) convención es usar dos guiones y luego una palabra (p --create. ej. ) para identificar el uso de la opción, mientras que la convención anterior (y todavía disponible como una opción para las opciones de uso frecuente) es usar un guión y luego una letra (p. ej. , -c); si un guión va seguido de dos o más letras, puede significar que se están especificando dos opciones, o puede significar que la segunda letra y las siguientes son un parámetro (como el nombre de archivo o la fecha) para la primera opción.

Dos caracteres de menos guión sin las letras siguientes ( --) pueden indicar que los argumentos restantes no deben tratarse como opciones, lo cual es útil, por ejemplo, si el nombre de un archivo comienza con un guión, o si los argumentos adicionales están destinados a un comando interno (por ejemplo, , sudo ). A veces también se usan dobles guiones negativos para prefijar "opciones largas" cuando se usan nombres de opciones más descriptivos. Esta es una característica común del software GNU . La función y el programa getopt , y el comando getopts se usan generalmente para analizar las opciones de la línea de comandos.

Los nombres de los comandos, los argumentos y las opciones de Unix distinguen entre mayúsculas y minúsculas (excepto en unos pocos ejemplos, principalmente cuando los comandos populares de otros sistemas operativos se han adaptado a Unix).

Convenciones de opciones en otros sistemas [ editar ]

FlexOS , 4680 OS y 4690 OS uso -.

CP / M normalmente utilizado [.

El sistema de monitorización conversacional (CMS) utiliza un solo paréntesis izquierdo para separar las opciones al final del comando de los otros argumentos. Por ejemplo, en el siguiente comando, las opciones indican que el archivo de destino debe reemplazarse si existe, y la fecha y hora del archivo de origen deben conservarse en la copia:COPY source file a target file b (REPLACE OLDDATE

La CLI de Data General en sus sistemas operativos RDOS , AOS , etc., así como la versión de CLI que vino con su Business Basic , se usa solo /como carácter de cambio, no distingue entre mayúsculas y minúsculas y permite "conmutadores locales" en algunos argumentos para controlar la forma en que se interpretan, como MAC/U LIB/S A B C $LPT/Lla opción global "U" en el comando del ensamblador de macros para agregar símbolos de usuario, pero dos conmutadores locales, uno para especificar LIB deben omitirse en el paso 2 y el otro para la lista directa a la impresora, $ LPT.

Ayuda de uso integrada [ editar ]

Una de las críticas a una CLI es la falta de pistas para el usuario en cuanto a las acciones disponibles. [ cita requerida ] En contraste, las GUI generalmente informan al usuario de las acciones disponibles con menús, íconos u otras señales visuales. [ Cita requerida ] Para superar esta limitación, muchos programas CLI muestran un resumen breve de sus parámetros válidos, por lo general cuando se invoca sin argumentos o uno de ?, -?, -h, -H, /?, /h, /H, /Help, -help, o --help. [10] [16] [17]

Sin embargo, ingresar un nombre de programa sin parámetros con la esperanza de que muestre ayuda de uso puede ser peligroso, ya que los programas y scripts para los cuales los argumentos de la línea de comandos son opcionales se ejecutarán sin previo aviso.

Aunque es deseable al menos para el parámetro de ayuda, es posible que los programas no admitan todas las opciones de caracteres introductorios ejemplificados anteriormente. En DOS, donde el carácter de opción de línea de comandos predeterminado se puede cambiar de /a -, los programas pueden consultar la API de SwitChar para determinar la configuración actual. Por lo tanto, si un programa no está programado para admitirlos a todos, es posible que un usuario necesite conocer la configuración actual incluso para poder solicitar ayuda de manera confiable. Si se ha cambiado el SwitChar a -y, por lo tanto, el /carácter se acepta como delimitador de ruta alternativo también en la línea de comandos de DOS, los programas pueden malinterpretar opciones como /ho /Hcomo rutas en lugar de parámetros de ayuda. [10]Sin embargo, si se proporciona como primer o único parámetro, la mayoría de los programas de DOS, por convención, lo aceptarán como solicitud de ayuda independientemente de la configuración actual de SwitChar. [10] [13]

En algunos casos, se pueden seleccionar diferentes niveles de ayuda para un programa. Algunos programas que apoyan esta permiten dar un nivel de detalle como un argumento opcional a la ayuda de parámetros (como en /H:1, /H:2, etc.) o que dan a poca ayuda en parámetros de ayuda con signo de interrogación y una pantalla de ayuda más para las otras opciones de ayuda. [18]

Dependiendo del programa, a veces hay disponible ayuda adicional o más específica sobre los parámetros aceptados, ya sea proporcionando el parámetro en cuestión como un argumento para el parámetro de ayuda o viceversa (como en /H:Wo en /W:?(asumiendo /Wque sería otro parámetro admitido por el programa)) . [19] [20] [17] [16] [18] [nb 1]

De un modo similar al parámetro de ayuda, pero mucho menos común, algunos programas proporcionan información adicional acerca de sí mismos cuando se invoca con un parámetro "acerca de", como (modo, el estado, la versión, autor, licencia o información de contacto similares) -!, /!, -about, o --about. [dieciséis]

Dado que los caracteres ?y !normalmente también sirven para otros fines en la línea de comandos, es posible que no estén disponibles en todos los escenarios, por lo que no deberían ser las únicas opciones para acceder a la información de ayuda correspondiente.

El final de la salida del comando HELP de RT-11SJ mostrado en un VT100

Si es necesaria una ayuda más detallada que la proporcionada por la ayuda interna incorporada de un programa, muchos sistemas admiten un comando externo " " dedicado (o similar), que acepta un nombre de comando como parámetro de llamada e invocará un sistema de ayuda externo.help command

En la familia DR-DOS, al escribir /?o /Hen el símbolo del sistema COMMAND.COM en lugar de un comando en sí, se mostrará una lista generada dinámicamente de los comandos internos disponibles; [10] 4DOS y NDOS admiten la misma función escribiendo ?en el indicador [13] (que también es aceptado por las versiones más recientes de DR-DOS COMMAND.COM); Los comandos internos pueden desactivarse o reactivarse individualmente a través de SETDOS /I. [13] Además de esto, algunas versiones más recientes de DR-DOS COMMAND.COM también aceptan un ?%comando para mostrar una lista de variables de pseudoambiente integradas disponibles.. Además de su propósito como referencia de ayuda rápida, esto se puede usar en trabajos por lotes para consultar las instalaciones del procesador de línea de comandos subyacente. [10]

Sintaxis de la descripción del comando [ editar ]

La ayuda de uso incorporada y las páginas de manual suelen emplear una pequeña sintaxis para describir la forma de comando válida: [21] [22] [23] [nb 2]

  • corchetes angulares para los parámetros requeridos :ping <hostname>
  • corchetes para parámetros opcionales :mkdir [-p] <dirname>
  • elipses para elementos repetidos :cp <source1> [source2…] <dest>
  • barras verticales para la elección de artículos:netstat {-t|-u}

Tenga en cuenta que estos caracteres tienen significados diferentes que cuando se usan directamente en el shell. Los corchetes angulares pueden omitirse cuando no es probable confundir el nombre del parámetro con una cadena literal.

El carácter del espacio [ editar ]

En muchas áreas de la informática, pero particularmente en la línea de comandos, el carácter de espacio puede causar problemas ya que tiene dos funciones distintas e incompatibles: como parte de un comando o parámetro, o como parámetro o separador de nombre . La ambigüedad se puede prevenir prohibiendo los espacios incrustados en los nombres de archivos y directorios en primer lugar (por ejemplo, sustituyéndolos con guiones bajos _ ), o encerrando un nombre con espacios incrustados entre comillas o usando un carácter de escape antes del espacio, generalmente una barra invertida ( \). Por ejemplo

Long path/Long program name Parameter one Parameter two ...

es ambiguo (¿es el "nombre del programa" parte del nombre del programa o dos parámetros?); sin emabargo

Long_path/Long_program_name Parameter_one Parameter_two …,
LongPath/LongProgramName ParameterOne ParameterTwo …,
"Long path/Long program name" "Parameter one" "Parameter two" ...

y

Long\ path/Long\ program\ name Parameter\ one Parameter\ two ...

no son ambiguos. Los sistemas operativos basados ​​en Unix minimizan el uso de espacios integrados para minimizar la necesidad de comillas. En Microsoft Windows , a menudo se deben usar comillas porque los espacios incrustados (como en los nombres de directorio) son comunes.

Intérprete de línea de comandos [ editar ]

Aunque la mayoría de los usuarios piensan en el shell como un intérprete de comandos interactivo, en realidad es un lenguaje de programación en el que cada instrucción ejecuta un comando. Debido a que debe satisfacer los aspectos interactivos y de programación de la ejecución de comandos, es un lenguaje extraño, moldeado tanto por la historia como por el diseño.

-  Brian W. Kernighan y Rob Pike [24]

El término intérprete de línea de comandos ( CLI ) se aplica a programas de computadora diseñados para interpretar una secuencia de líneas de texto que un usuario puede ingresar, leer de un archivo u otro tipo de flujo de datos . El contexto de interpretación suele ser el de un sistema operativo o lenguaje de programación determinado .

Los intérpretes de línea de comandos permiten a los usuarios emitir varios comandos de una manera muy eficiente (y a menudo concisa). Esto requiere que el usuario conozca los nombres de los comandos y sus parámetros, y la sintaxis del idioma que se interpreta.

El #!mecanismo Unix y el comando EXTPROC de OS / 2 facilitan el paso de archivos por lotes a procesadores externos. Se pueden utilizar estos mecanismos para escribir procesadores de comandos específicos para usos dedicados y procesar archivos de datos externos que residen en archivos por lotes.

Muchas interfaces gráficas, como OS / 2 Presentation Manager y las primeras versiones de Microsoft Windows, utilizan líneas de comandos para llamar a programas auxiliares para abrir documentos y programas. Los comandos se almacenan en el shell gráfico [ aclaración necesaria ] o en archivos como el registro o el archivo OS / 2 OS2USER.INI .

Historia temprana [ editar ]

Un teclado de teleimpresora ASR Teletype Modelo 33 con lector de cinta perforada y perforadora
Terminal DEC VT52

Las primeras computadoras no admitían dispositivos interactivos de entrada / salida, a menudo dependían de interruptores sensoriales y luces para comunicarse con el operador de la computadora . Esto era adecuado para sistemas por lotes que ejecutaban un programa a la vez, a menudo con el programador actuando como operador. Esto también tenía la ventaja de una baja sobrecarga, ya que las luces y los interruptores se podían probar y configurar con una instrucción de máquina. Posteriormente , se agregó una única consola de sistema para permitir que el operador se comunique con el sistema.

Desde la década de 1960 en adelante, la interacción del usuario con las computadoras se realizó principalmente por medio de interfaces de línea de comandos, inicialmente en máquinas como el Teletype Model 33 ASR, pero luego en los primeros terminales de computadora basados ​​en CRT , como el VT52 .

Todos estos dispositivos se basaban puramente en texto, sin capacidad para mostrar gráficos o imágenes. [nb 3] Para los programas de aplicaciones comerciales , se utilizaron menús basados ​​en texto , pero para una interacción más general, la línea de comandos fue la interfaz.

Alrededor de 1964, Louis Pouzin introdujo el concepto y el nombre de shell en Multics , basándose en instalaciones anteriores y más sencillas del Compatible Time-Sharing System (CTSS). [25] [se necesita una mejor fuente ]

Desde principios de la década de 1970, el sistema operativo Unix adaptó el concepto de un poderoso entorno de línea de comandos e introdujo la capacidad de canalizar la salida de un comando como entrada a otro. Unix también tenía la capacidad de guardar y volver a ejecutar cadenas de comandos como " scripts de shell " que actuaban como comandos personalizados.

La línea de comandos también fue la interfaz principal para las primeras computadoras domésticas, como Commodore PET , Apple II y BBC Micro  , casi siempre en forma de intérprete BASIC . Cuando llegaron microcomputadoras más poderosas orientadas a los negocios con CP / M y computadoras DOS posteriores como IBM PC , la línea de comandos comenzó a tomar prestadas algunas de las sintaxis y características de los shells de Unix, como el globbing y la canalización de la salida.

La línea de comandos fue cuestionada seriamente por primera vez por el enfoque de GUI de PARC utilizado en el Apple Lisa de 1983 y el Apple Macintosh de 1984 . Algunos usuarios de computadoras utilizaron GUI como GEOS y Windows 3.1, pero la mayoría de los usuarios de PC de IBM no reemplazaron su shell COMMAND.COM con una GUI hasta que se lanzó Windows 95 en 1995. [26] [27]

Uso moderno como shell del sistema operativo [ editar ]

Si bien la mayoría de los usuarios de computadoras no expertos ahora usan una GUI casi exclusivamente, los usuarios más avanzados tienen acceso a poderosos entornos de línea de comandos:

  • El shell de comandos VAX / VMS predeterminado, que utiliza el lenguaje DCL , se ha portado a sistemas Windows al menos tres veces, incluidos PC-DCL y Acceler8 DCL Lite. Los shells de comandos de Unix se han adaptado a los tipos de sistemas operativos VMS y DOS / Windows 95 y Windows NT. COMMAND.COM y Windows NT cmd.exe se han adaptado a Windows CE y presumiblemente funciona en Microsoft Windows NT Embedded 4.0
  • El kit de recursos de Windows y los servicios de Windows para Unix incluyen los shells Korn y Bourne junto con un intérprete de Perl (Services of Unix contiene Active State ActivePerl en versiones posteriores e Interix para las versiones 1 y 2 y un shell compilado por Microsoft)
  • IBM OS / 2 (y derivados como eComStation y ArcaOS ) tiene el procesador cmd.exe . Esto copia los comandos COMMAND.COM , con extensiones a REXX .
  • cmd.exe y COMMAND.COM son parte del flujo de sistemas operativos de Windows NT.
  • Otro cmd.exe más es un shell reducido para Windows CE 3.0.
  • Un intérprete de tipos de MS-DOS llamado PocketDOS se ha adaptado a máquinas con Windows CE; la versión más reciente es casi idéntica a MS-DOS 6.22 y también puede ejecutar Windows 1, 2 y 3.0, QBasic y otras herramientas de desarrollo, 4NT y 4DOS. La última versión incluye varios shells, a saber, MS-DOS 6.22, PC DOS 7, DR DOS 3.xx y otros.
  • Los usuarios de Windows tienen un entorno CLI llamado Windows Command Prompt , que puede usar la interfaz CScript para programas alternativos. PowerShell proporciona una interfaz de línea de comandos, pero sus subprogramas no están escritos en el script de Shell . Las implementaciones del shell de Unix también están disponibles como parte del subsistema POSIX , [28] Cygwin , MKS Toolkit , UWIN , el shell de Hamilton C y otros paquetes de software. Los shells disponibles para estas herramientas de interoperabilidad incluyen csh , ksh , sh , bash ,rsh , tclsh y menos comúnmente zsh , psh
  • COMMAND.COM (4DOS), Windows NT cmd.exe (4NT, TCC) y OS / 2 cmd.exe (4OS2) y otros basados ​​en ellos son shells mejorados que pueden ser un reemplazo del shell nativo o un medio de mejora. del shell predeterminado.
  • Las implementaciones de PHP tienen un shell para uso interactivo llamado php-cli.
  • Standard Tcl / Tk tiene dos shells interactivos, Tclsh y Wish, siendo esta última la versión GUI.
  • Python , Ruby , Lua , XLNT y otros intérpretes también tienen shells de comandos para uso interactivo.
  • FreeBSD usa tcsh como su shell interactivo predeterminado para el superusuario , y ash como shell de scripting predeterminado.
  • Muchas distribuciones de Linux tienen la implementación Bash del shell de Unix .
  • Apple macOS y algunas distribuciones de Linux usan zsh . Anteriormente, macOS usaba tcsh y Bash .
  • Los dispositivos integrados de Linux (y otros dispositivos integrados similares a Unix ) a menudo usan la implementación de Ash del shell de Unix, como parte de Busybox .
  • Android usa el shell mksh , [29] [30] que reemplaza un shell derivado de ash [31] que se usaba en versiones anteriores de Android, complementado con comandos del binario separado de la caja de herramientas [32] .
  • Los enrutadores con Cisco IOS , [33] Junos [34] y muchos otros se configuran comúnmente desde la línea de comandos.

Secuencias de comandos [ editar ]

La mayoría de los intérpretes de línea de comandos admiten secuencias de comandos , en varios grados. (Después de todo, son intérpretes de un lenguaje de programación interpretado , aunque en muchos casos el lenguaje es exclusivo del intérprete de línea de comandos en particular). Interpretarán los scripts (denominados de forma diversa, scripts de shell o archivos por lotes ) escritos en el lenguaje que utilizan. interpretar. Algunos intérpretes de línea de comandos también incorporan motores de interpretación de otros lenguajes, como REXX , además del propio, permitiendo la ejecución de scripts, en esos idiomas, directamente dentro del propio intérprete de línea de comandos.

Por el contrario, los lenguajes de programación de secuencias de comandos , en particular aquellos con una función de evaluación (como REXX, Perl , Python , Ruby o Jython ), se pueden usar para implementar filtros e intérpretes de línea de comandos. Para algunos sistemas operativos , sobre todo DOS , dicho intérprete de comandos proporciona una interfaz de línea de comandos más flexible que la suministrada. En otros casos, dicho intérprete de comandos puede presentar una interfaz de usuario altamente personalizada que emplea la interfaz de usuario y las facilidades de entrada / salida del idioma.

Otras interfaces de línea de comandos [ editar ]

La línea de comando proporciona una interfaz entre los programas y el usuario. En este sentido, una línea de comando es una alternativa a un cuadro de diálogo . Los editores y las bases de datos presentan una línea de comandos en la que se pueden ejecutar procesadores de comandos alternativos. Por otro lado, uno podría tener opciones en la línea de comando, que abre un cuadro de diálogo. La última versión de 'Take Command' tiene esta función. DBase usó un cuadro de diálogo para construir líneas de comando, que podrían editarse más antes de su uso.

Todos los programas como BASIC, diskpart , Edlin y QBASIC proporcionan interfaces de línea de comandos, algunas de las cuales utilizan el shell del sistema. Basic se basa en la interfaz predeterminada para computadoras Intel de 8 bits. Las calculadoras se pueden ejecutar como interfaces de línea de comandos o de diálogo.

Emacs proporciona una interfaz de línea de comandos en forma de minibúfer. Los comandos y argumentos se pueden ingresar usando el soporte de edición de texto estándar de Emacs, y la salida se muestra en otro búfer.

Hay varios juegos en modo texto, como Adventure o King's Quest 1-3 , que dependían de que el usuario escribiera comandos en la parte inferior de la pantalla. Uno controla el personaje escribiendo comandos como 'obtener anillo' o 'mirar'. El programa devuelve un texto que describe cómo lo ve el personaje o hace que suceda la acción. La aventura de texto The Hitchhiker's Guide to the Galaxy , una obra de ficción interactiva basada en el libro de Douglas Adam del mismo nombre, es un juego de línea de comandos al estilo de un teletipo.

La más notable de estas interfaces es la interfaz de secuencias estándar , que permite que la salida de un comando se pase a la entrada de otro. Los archivos de texto también pueden servir para cualquier propósito. Esto proporciona las interfaces de tuberías, filtros y redirección. En Unix, los dispositivos también son archivos , por lo que el tipo normal de archivo para el shell utilizado para stdin, stdout y stderr es un archivo de dispositivo tty .

Otra interfaz de línea de comandos permite que un programa de shell inicie programas de ayuda, ya sea para iniciar documentos o iniciar un programa. El comando es procesado internamente por el shell y luego se pasa a otro programa para iniciar el documento. La interfaz gráfica de Windows y OS / 2 depende en gran medida de las líneas de comandos que se transmiten a otros programas, de consola o gráficos, que generalmente procesan la línea de comandos sin presentar una consola de usuario.

Los programas como el editor OS / 2 E y algunos otros editores de IBM pueden procesar líneas de comandos normalmente destinadas al shell, y la salida se coloca directamente en la ventana del documento.

El campo de entrada de URL de un navegador web se puede utilizar como línea de comando. Se puede utilizar para "iniciar" aplicaciones web , acceder a la configuración del navegador y realizar una búsqueda. Google , que se ha denominado "la línea de comandos de Internet", realizará una búsqueda específica de dominio cuando detecte parámetros de búsqueda en un formato conocido. [35] Esta funcionalidad está presente si la búsqueda se activa desde un campo del navegador o en el sitio web de Google.

Existen bibliotecas de JavaScript que permiten escribir aplicaciones de línea de comandos en el navegador como aplicaciones web independientes o como parte de una aplicación más grande. [36] Un ejemplo de un sitio web de este tipo es la interfaz CLI de DuckDuckGo . [37] También existen aplicaciones SSH basadas en la Web , que permiten dar acceso a la interfaz de línea de comandos del servidor desde un navegador.

Muchos videojuegos en la PC cuentan con una interfaz de línea de comandos a la que a menudo se hace referencia como consola. Por lo general, los desarrolladores de juegos lo utilizan durante el desarrollo y los desarrolladores de mods con fines de depuración, así como para hacer trampas o saltarse partes del juego.

Ver también [ editar ]

  • Comparación de proyectiles de comando
  • Lista de intérpretes de línea de comandos
  • Procesamiento por lotes
  • Archivo por lotes
  • Aplicación de consola
  • Directiva de intérprete
  • Bucle de lectura-evaluación-impresión
  • Shell (informática)
  • Lenguaje de escritura
  • Script de shell
  • Terminal de computadora
  • Emulador de terminal
  • Ejecutar comando
  • Interfaz gráfica de usuario § Comparación con otras interfaces
  • Al principio ... era la línea de comandos

Notas [ editar ]

  1. ^ Un ejemplo es el completo sistema de ayuda interna delcomando DEBUG de DR-DOS 7.03 , que se puede invocar a travésdel indicador de depuración (en lugar de solo ladescripción generalpredeterminada). Se pueden seleccionar páginas de ayuda específicas a través de(dondeestá el número de la página). Además, se puede mostrar ayuda para comandos específicos especificando el nombre del comando después, feinvocará la ayuda para los diversos comandos de volcado (como,etc.). Algunas de estas características ya eran compatibles con DR DOS 3.41 SID86 y GEMSID .????nn??DD
  2. ^ Convenciones para describir comandos ensistemas operativos similares a DOS . Diferencia notable: la documentación de Windows Server 2003 R2 usa letras en cursiva para "Información que el usuario debe proporcionar", mientras que la documentación de Server 2008 usa corchetes angulares. El comando interno "ayuda" no puede mostrar cursiva mientras no haya ningún problema con los corchetes angulares.
  3. ^ Con la excepción del art . ASCII .

Referencias [ editar ]

  1. ^ "Cáscaras de Unix" . la noción de tener un "shell de comandos" reemplazable en lugar de un "monitor" estrechamente integrado con el kernel del sistema operativo tiende a atribuirse a Multics.
  2. ^ a b "El origen de la concha" . www.multicians.org . Consultado el 12 de abril de 2017 .
  3. Metz, Cade (3 de enero de 2013). "Dile bonjour al tío francés perdido hace mucho tiempo de Internet" . Cableado . Consultado el 31 de julio de 2017 .
  4. ^ Mazières, David (otoño de 2004). "MULTICS - Los primeros siete años" . Sistemas operativos avanzados . Departamento de Ciencias de la Computación de Stanford . Consultado el 1 de agosto de 2017 .
  5. ↑ a b Jones, M. (6 de diciembre de 2011). "Evolución de shells en Linux" . developerWorks . IBM . Consultado el 1 de agosto de 2017 .
  6. ^ "Referencia de GNU BASH" .
  7. ^ "Descripción general de Shell de comandos de Microsoft Windows" .
  8. ^ Guía de usuarios de SID (PDF) . Investigación digital . 1978. 595-2549. Archivado (PDF) desde el original el 20 de octubre de 2019 . Consultado el 6 de febrero de 2020 . (4 + 69 páginas)
  9. ^ Guía del usuario de SID-86 para CP / M-86 (2 ed.). Investigación digital . Agosto de 1982 [marzo de 1982]. SID86UG.WS4. Archivado desde el original el 20 de octubre de 2019 . Consultado el 6 de febrero de 2020 . [1] (NB. Una versión reescrita del manual por Emmanuel Roche con comandos Q, SR y Z agregados).
  10. ↑ a b c d e f g h i j k Paul, Matthias R. (30 de julio de 1997). NWDOS-TIPs - Tips & Tricks rund um Novell DOS 7, mit Blick auf undokumentierte Details, Bugs und Workarounds . MPDOSTIP . Release 157 (en alemán) (3 ed.). Archivado desde el original el 10 de septiembre de 2017 . Consultado el 6 de septiembre de 2014 .(NB. NWDOSTIP.TXT es un trabajo completo sobre Novell DOS 7 y OpenDOS 7.01 , que incluye la descripción de muchas características y funciones internas no documentadas. Es parte de la colección MPDOSTIP.ZIP aún más grande del autor, mantenida hasta 2001 y distribuida en muchos sitios en el tiempo. El enlace proporcionado apunta a una versión anterior convertida en HTML del archivo NWDOSTIP.TXT).
  11. ^ Parker, Steve (2011). "Capítulo 11: Elección y uso de conchas". Shell Scripting: recetas expertas para Linux, Bash y más . Programador a programador. Indianápolis, Estados Unidos: John Wiley & Sons . pag. 262. ISBN 978-111816632-1. El shell tiene cuatro indicaciones de comando diferentes, llamadas PS1, P52, P53 y PS4. PS son las siglas de Prompt String.
  12. ^ Guía del usuario de RISC OS 3 (PDF) . Acorn Computers Limited . 1992-03-01. pag. 125.
  13. ^ a b c d Hermanos, Hardin; Rawson, Tom ; Conn, Rex C .; Paul, Matthias R .; Dye, Charles E .; Georgiev, Luchezar I. (27 de febrero de 2002). Ayuda en línea de 4DOS 8.00 .
  14. Paul, Matthias R. (9 de enero de 1998). DELTREE.BAT R1.01 Eliminación extendida de archivos y directorios . Caldera, Inc. Archivado desde el original el 8 de abril de 2019 . Consultado el 8 de abril de 2019 .
  15. ^ DR-DOS 7.03 WHATSNEW.TXT - Cambios de DR-DOS 7.02 a DR-DOS 7.03 . Caldera, Inc. 24 de diciembre de 1998. Archivado desde el original el 8 de abril de 2019 . Consultado el 8 de abril de 2019 .
  16. ↑ a b c Paul, Matthias R. (13 de mayo de 2002). "[fd-dev] mkeyb" . freedos-dev . Archivado desde el original el 10 de septiembre de 2018 . Consultado el 10 de septiembre de 2018 . […] CPI / H […] CPI [@] [@] [/? | / Ayuda [: tema]] [/! | / Acerca de] […] [? | &] […] / ?, / Ayuda Mostrar esta pantalla de ayuda o ayuda específica para un tema (+) […] / !, / Acerca de Mostrar la pantalla de información 'Acerca de' […] / Cpifile (+) .CPI / .CP nombre de archivo <EGA.CPI>; extensión: <.CPI>; CPI.EXE = StdIn […] / Informe Nombre del archivo del informe <''= StdOut>; extensión: <.RPT> […] / Estilo (+) Exportar <0> -6 = BIN-raw / ROM / RAM / PSF0 / 1 / SH / CHED; 7-12 / 13-18 / 19-24 = ASM-hex / dec / bin / ip / il / p / l / mp / ml […] CPI / H: C […] Descripción general del uso de parámetros de archivo de página de códigos: [ …] CPI / H: S […] Resumen activado / Parámetros de estilo: […]?, & Modo de edición en línea (solicita la entrada de parámetros adicionales) […]
  17. ↑ a b Paul, Matthias R. (9 de enero de 2002). "SID86" . Grupo de noticiascomp.os.cpm . Consultado el 8 de abril de 2018 . […] Dado que DR-DOS 7.03 DEBUG todavía se basa en el antiguo SID86.EXE , sugiero ejecutar DEBUG 1.51 e ingresar al sistema de ayuda extendido con ?? desde el indicador de depuración. Esto le proporcionará ocho pantallas llenas de ayuda de sintaxis y funciones. Algunas de estas funciones también fueron compatibles con problemas anteriores. […]
  18. ^ a b Paul, Matthias R .; Frinke, Axel C. (16 de enero de 2006). FreeKEYB - Controlador de consola y teclado DOS internacional avanzado (Manual del usuario) (v7 edición preliminar).
  19. ^ CCI Multiuser DOS 7.22 GOLD Documentación en línea . Controles concurrentes, Inc. (CCI). 1997-02-10. HELP.HLP.(NB. El depurador de instrucciones simbólicas SID86 proporciona una pantalla de ayuda breve ?y una ayuda completa ??).
  20. Paul, Matthias R. (24 de mayo de 1997) [1991]. DRDOSTIP.TXT - Consejos y trucos para DR DOS 3.41 - 5.0 . MPDOSTIP (en alemán) (47 ed.). Archivado desde el original el 7 de noviembre de 2016 . Consultado el 7 de noviembre de 2016 .
  21. ^ "Las especificaciones de base de Open Group Issue 7, Capítulo 12.1 Sintaxis del argumento de utilidad" . El grupo abierto . 2008 . Consultado el 7 de abril de 2013 .man-pages(7) -  Manual de convenciones y misceláneas de Linux (NB. Convenciones para describir comandos en sistemas operativos similares a Unix).
  22. ^ "Descripción general del shell de comandos" . Ayuda del producto de Windows Server 2003 . Microsoft . 2005-01-21 . Consultado el 7 de abril de 2013 .
  23. ^ "Tecla de sintaxis de la línea de comandos" . Biblioteca TechNet de Windows Server 2008 R2 . Microsoft . 2010-01-25 . Consultado el 7 de abril de 2013 .
  24. ^ Kernighan, Brian W .; Pike, Rob (1984). El entorno de programación UNIX . Acantilados de Englewood: Prentice-Hall . ISBN 0-13-937699-2.
  25. ^ Pouzin, Louis. "El origen de la concha" . Multicians.org . Consultado el 22 de septiembre de 2013 .
  26. ^ "Recordando el lanzamiento de Windows 95 15 años después" .
  27. ^ "Una historia de Windows" . windows.microsoft.com . Archivado desde el original el 1 de marzo de 2015.
  28. ^ "Compatibilidad con shell POSIX de Windows" .
  29. ^ "maestro - plataforma / externo / mksh - Git en Google" . android.googlesource.com . Consultado el 18 de marzo de 2018 .
  30. ^ "Android adb shell - ¿ash o ksh?" . stackoverflow.com . Consultado el 14 de marzo de 2018 .
  31. ^ "Fuente de Android sh" . Archivado desde el original el 17 de diciembre de 2012.
  32. ^ "Fuente de la caja de herramientas de Android" .
  33. ^ "Guía de configuración de los fundamentos de la configuración de Cisco IOS, versión 12.2" . Cisco . 2013-10-30. Usando la interfaz de línea de comandos. La interfaz de línea de comandos (CLI) de Cisco IOS es la interfaz de usuario principal ...
  34. ^ "Descripción general de la interfaz de línea de comandos" . www.juniper.net . Consultado el 14 de marzo de 2018 .
  35. ^ "Google extraña bondad" .
  36. ^ Emulador de terminal jQuery
  37. ^ DuckDuckGo TTY

Enlaces externos [ editar ]

  • The Roots of DOS David Hunter, Softalk para IBM Personal Computer, marzo de 1983. Archivado en Patersontech.com desde 2000 .
  • Referencia de línea de comandos : "Referencia de línea de comandos" de la base de datos de Microsoft TechNet