Articulo de referencia

Completar línea de comandos

Ejemplo de finalización de línea de comandos en Bash . Ejemplo de finalización de línea de comandos en PowerShell con Intellisense . El autocompletado de línea de comandos (tamb...

Ejemplo de finalización de línea de comandos en Bash .
Ejemplo de finalización de línea de comandos en PowerShell con Intellisense .

El autocompletado de línea de comandos (también autocompletado de tabulación ) es una característica común de los intérpretes de línea de comandos , en la que el programa completa automáticamente los comandos parcialmente escritos.

Los intérpretes de línea de comandos son programas que permiten al usuario interactuar con el sistema operativo subyacente escribiendo comandos en un símbolo del sistema mediante una interfaz de línea de comandos (CLI), en contraste con apuntar y hacer clic con el mouse en una interfaz gráfica de usuario (GUI). La finalización de línea de comandos permite al usuario escribir los primeros caracteres de un comando, programa o nombre de archivo y presionar una tecla de finalización (normalmente Tab ↹) para completar el resto del elemento. Luego, el usuario presiona o para ejecutar el comando o abrir el archivo. Return↵ Enter

La función de completar en la línea de comandos es útil de varias maneras, como se ilustra en la animación que acompaña a este artículo. Los comandos a los que se accede con frecuencia, especialmente aquellos con nombres largos, requieren menos pulsaciones de teclas para llegar a ellos. Los comandos con nombres de archivo largos o difíciles de deletrear se pueden ingresar escribiendo los primeros caracteres y presionando una tecla de completar, que completa el comando o el nombre de archivo. En el caso de múltiples posibles opciones de completar, algunos intérpretes de línea de comandos, especialmente los shells de Unix, enumerarán todas las opciones de completar comenzando con esos pocos caracteres. El usuario puede escribir más caracteres y presionar nuevamente para ver una lista nueva y acotada si los caracteres escritos aún son ambiguos, o bien completar el comando/nombre de archivo con un espacio final. Una forma alternativa de completar rota a través de todos los resultados coincidentes cuando la entrada es ambigua. Tab ↹

Los elementos completables pueden incluir comandos, argumentos, nombres de archivos y otras entidades, según el intérprete específico y su configuración. La finalización de la línea de comandos generalmente solo funciona en modo interactivo . Es decir, no se puede invocar para completar comandos parcialmente escritos en scripts o archivos por lotes , incluso si la finalización es inequívoca. El nombre de finalización de tabulación proviene del hecho de que la finalización de la línea de comandos a menudo se invoca presionando la tecla de tabulación .

Historia

La función de autocompletar tabulaciones apareció en los inicios de la historia de la informática; uno de los primeros ejemplos apareció en el Berkeley Timesharing System para el SDS 940 , donde si una cadena tipeada era ambigua, el intérprete no hacía nada, pero si la cadena no era ambigua, la completaba automáticamente sin ninguna orden del usuario. Esta característica no funcionaba bien con los errores tipográficos demasiado frecuentes , por lo que era una bendición a medias. Esta característica fue imitada por los desarrolladores de Tenex , que realizaron un cambio importante: Tenex utilizó "reconocimiento de escape", en el que el intérprete no intentaría autocompletar a menos que el usuario presionara la tecla de escape (de ahí el nombre). El dominio también se expandió de solo nombres de programas en el sistema Berkeley a nombres de programas y archivos en Tenex. [1] El descendiente de Tenex, TOPS-20, trasladó la función de autocompletar línea de comandos del intérprete de comandos al sistema operativo a través de la llamada al sistema COMND JSYS, para que estuviera disponible para otras aplicaciones de usuario. [2] De ahí fue tomado prestado por Unix.

Ejemplo

Para abrir el archivo introduction-to-command-line-completion.html con Firefox se debe escribir:

Introducción a la finalización de la línea de comandos en Firefox

Este es un comando largo de escribir. En su lugar, podemos utilizar la función de completar la línea de comandos.

Incitación a la finalización

El siguiente ejemplo muestra cómo funciona la finalización de línea de comandos en Bash . Es posible que otros shells de línea de comandos funcionen de forma ligeramente diferente.

Primero escribimos las tres primeras letras de nuestro comando:

abeto

Luego presionamos y como el único comando en nuestro sistema que comienza con "fir" es "firefox", se completará a: Tab ↹

Firefox

Luego comenzamos a escribir el nombre del archivo:

Firefox yo

Pero esta vez, introduction-to-command-line-completion.html no es el único archivo del directorio actual que comienza con "i". El directorio también contiene los archivos introduction-to-bash.html e introduction-to-firefox.html . El sistema no puede decidir cuál de estos nombres de archivo queremos escribir, pero sí sabe que el archivo debe comenzar con "introduction-to-", por lo que el comando se completará de la siguiente manera:

Introducción a Firefox

Ahora escribimos "c":

Introducción a Firefox C

Luego de presionarlo se completará el nombre completo del archivo: Tab ↹

Introducción a la finalización de la línea de comandos en Firefox

En resumen, escribimos:

abeto yo cTab ↹Tab ↹Tab ↹

Se trata de tan solo ocho pulsaciones de teclas, lo que es considerablemente menos que las 52 pulsaciones de teclas que habríamos necesitado para escribir sin utilizar la función de autocompletar de línea de comandos.

Finalización rotatoria

El siguiente ejemplo muestra cómo funciona la finalización de la línea de comandos con la finalización rotativa, tal como la utiliza CMD de Windows .

Seguimos el mismo procedimiento que para solicitar la finalización hasta que tengamos:

Firefox yo

Presionamos una vez, con el resultado: Tab ↹

Introducción a Bash en Firefox

Presionamos nuevamente, obteniendo: Tab ↹

Introducción a la finalización de la línea de comandos en Firefox

En resumen, escribimos:

Abeto yoTab ↹Tab ↹Tab ↹

Se trata de solo siete pulsaciones de teclas, comparables a la finalización con indicaciones. Esto funciona mejor si sabemos entre qué posibilidades rotará el intérprete.

Finalización en diferentes interfaces de línea de comandos

  • Los shells de Unix , incluidos Bash (el shell predeterminado en la mayoría de las distribuciones de Linux ) y ksh entre muchos otros, tienen una larga tradición de capacidades de finalización avanzadas y personalizables. [3]
    • El completado programable de Bashcomplete y compgenlos comandos [4] han estado disponibles desde la versión beta 2.04 [3] en 2000 [5] y ofrecen al menos el completado de ruta y nombre de archivo.
    • Para los usuarios de KornShell, la finalización del nombre de archivo depende del valor de la variable EDITOR. Si EDITOR está configurado como vi, se escribe parte del nombre y luego , . Si EDITOR está configurado como Emacs , se escribe parte del nombre y luego , .Escape\EscapeEscape
    • El shell Z (zsh) fue pionero en la compatibilidad con la finalización totalmente programable, lo que permite a los usuarios hacer que el shell complete automáticamente los parámetros de varios comandos no relacionados con el shell en sí, lo que se logra preparando el shell con definiciones de todos los parámetros conocidos, así como los tipos de parámetros apropiados. Esto permite al usuario, por ejemplo, escribir y hacer que el shell complete solo archivos comprimidos gzip del sistema de archivos real, omitiendo los archivos que son incompatibles con los parámetros de entrada. Una instalación moderna de zsh viene con definiciones de finalización para más de quinientos comandos.tar xzf Tab ↹
    • Tcsh ofrece la función de completar nombres de archivos, comandos y variables de forma predeterminada, que se activa mediante . El comando integrado 'complete' proporciona una función de completar completamente programable. El código fuente incluye un archivo 'complete.tcsh' que contiene muchos ejemplos de su sintaxis de completar.Tab ↹
  • Windows PowerShell , el shell de comandos extensible de Microsoft, que se basa en la programación orientada a objetos y en el marco Microsoft .NET , proporciona capacidades de finalización potentes y personalizables similares a las de los shells tradicionales de Unix. [6] [7] [ cita requerida ]
  • El procesador de comandos cmd.exe de los sistemas basados ​​en Windows NT admite la finalización básica. Es posible utilizar una combinación de teclas independiente para que coincidan únicamente los nombres de directorio.
  • cmd.exe /F:ONHabilita los caracteres para completar nombres de archivos y directorios (^F y ^D de manera predeterminada). Utilícelo para obtener más información.cmd.exe /?
  • TweakUI se puede utilizar para configurar las teclas utilizadas para completar el nombre del archivo y el nombre del directorio. [8]
  • El procesador de comandos MS-DOS COMMAND.COM no tenía función de completar comandos desde la línea de comandos: al presionar la tecla de tabulación, el cursor se desplazaba hacia adelante . Sin embargo, varios shells mejorados para MS-DOS, como 4DOS , la versión FreeDOS de COMMAND.COM o Enhanced DOSKEY.COM , cuentan con la función de completar comandos desde la línea de comandos al estilo Unix.
  • Far Manager, además de sus funciones de administración de archivos, proporciona un historial de comandos y autocompletado de líneas para Windows.

Véase también

Referencias

  1. ^ "Orígenes y desarrollo del TOPS-20". www.opost.com . Archivado desde el original el 2020-08-01 . Consultado el 2006-09-10 .
  2. ^ Guía del lenguaje ensamblador DECSYSTEM-20
  3. ^ ab "Trabajar de forma más productiva con bash 2.x/3.x". www.caliban.org .
  4. ^ "Manual de referencia de Bash". tiswww.case.edu .
  5. ^ "Índice de /gnu/bash". ftp.swin.edu.au .
  6. ^ "El chico de PowerShell". thepowershellguy.com .
  7. ^ "El chico de PowerShell". thepowershellguy.com .
  8. ^ "Simon Peyton Jones en Microsoft Research". Microsoft .

Conchas de Unix

  • Descripción general de la finalización de Bash: "Cómo trabajar de forma más productiva con bash 2.x/3.x" por Ian Macdonald
  • El sistema de finalización zsh, capítulo del Manual de Z Shell
  • Completar y listar el Manual TCSH

Intérpretes de comandos de Windows

(Asegúrese de revisar la sección "Se aplica a" en cada artículo)

  • Servidor Windows 2003:
    1. Completar el nombre del directorio
    2. Completar nombre de archivo
  • Windows XP
  • Windows 2000/NT 4
Obtenido de "https://es.wikipedia.org/w/index.php?title=Completar_la_línea_de_comandos&oldid=1190525304"