¿Hay una línea de comandos de Windows con autocompletado / historial de comandos inteligente como bash?

21

Recientemente comencé a usar bash, y descubrí algunas características realmente maravillosas (no necesariamente salen de la caja, pero se pueden configurar):

  • Las flechas arriba / abajo admiten la finalización parcial: escriba "git", presione la flecha ARRIBA y podrá navegar a través de los comandos recientes que comienzan con "git" (¡incluso en sesiones anteriores!)
  • Ctrl-R buscará en su historial de comandos (llamado reversed-i-search por alguna razón)
  • Muchos, muchos más, no estoy al tanto, estoy seguro.

¿Existe una buena alternativa de cmd.exe para Windows que admita tales características? He examinado las respuestas principales a esta pregunta , pero no he encontrado si alguna de las alternativas populares lo admite.

ripper234
fuente
2
¿Alguna vez has probado F7 en el símbolo del sistema?
William Hilsum
Yo no he. Y el primer resultado de Google (¡desde 2005, no menos!) Es un Horror de codificación. codinghorror.com/blog/2005/07/stupid-command-prompt-tricks.html Ahora solo responde la otra parte de mi pregunta y estaré aún más emocionado.
ripper234
1
Desafortunadamente, los usuarios de Windows generalmente usan lo que viene con el sistema, y ​​no hay un reemplazo popular de cmd.exe. Cygwin es ampliamente utilizado como un "emulador" de Linux para Windows, puede intentarlo. @William: bueno, eso no lo sabía, pero ¿alguna vez has probado bash ? Bash recuerda los comandos de las sesiones antiguas, no solo la sesión actual. Y también filtra los resultados según los estados de ripper234, por no hablar de convertir enlaces en URL válidas, desplazarse con el mouse en aplicaciones de terminal y una larga lista ... Y por cierto, ¿por qué todavía no puede cambiar el tamaño horizontalmente de la ventana del símbolo del sistema? Esto siempre me
desconcertará
Dos cmdreemplazos populares se analizan a continuación (por paradroidy RedGrittyBrick) y en las respuestas con hipervínculos a los anteriores, y su última pregunta se basa en una premisa observablemente incorrecta. Acabo de usar el mouse para cambiar el tamaño horizontal de una ventana de consola.
JdeBP

Respuestas:

22

Descargue e instale la consola Powershell 2.0 (si está utilizando Windows 7, ya está instalada).

Admite todos los comandos heredados, así como alias, macros y más ...

Aquí hay algunos consejos básicos .

diálogo de shell de energía

get-history: Muestra una lista de comandos ingresados ​​previamente.

invoke-history 35:Ejecuta el comando # 35 en la lista get-history

`: Presione la tecla de apóstrofe hacia atrás para insertar un salto de línea o como un carácter de escape para crear un carácter literal. También puede romper una línea en el carácter de canalización (|).

Alt+ Espacio + E: muestra un menú contextual de edición con las opciones Marcar, Copiar, Pegar, Seleccionar todo, Desplazarse y Buscar . Luego puede presionar Kpara Marcar, YCopiar, PPegar, SSeleccionar todo, Ldesplazarse por el búfer de la pantalla o Fbuscar texto en el búfer de la pantalla. Para copiar el búfer de pantalla al Portapapeles, presione Alt+ Espacio + E+ Sy luego presione Alt+ Espacio + E+ Y.

Alt+ F7: Borra el historial de comandos.

Ctrl+ C: Salir del subprompt o terminar la ejecución.

Ctrl+ End: Eliminar todos los caracteres en la línea después del cursor.

Ctrl+ Left Arrow|| Ctrl+ Right Arrow: Mover hacia la izquierda o hacia la derecha una palabra a la vez.

Ctrl+ S: Pausa || reanuda la visualización de la salida.

Esc Borra la línea actual.

F1Mueve el cursor un carácter a la derecha en la línea de comando. Al final de la línea, inserta un carácter del texto de su último comando.

F2 Crea una nueva línea de comando copiando su última línea de comando al carácter que escriba.

F3 Completa la línea de comando con el contenido de su última línea de comando, comenzando desde la posición actual del cursor hasta el final de la línea.

F4 Elimina caracteres de su línea de comando actual, comenzando desde la posición actual del cursor hasta el carácter que escribe.

F5 Escanea hacia atrás a través de su historial de comandos.

F7: Similar a get-history. Muestra una ventana emergente con su historial de comandos y le permite seleccionar un comando. Use las teclas de flecha para desplazarse por la lista. Presione Enterpara seleccionar un comando para ejecutar o presione Right arrowpara colocar el texto en la línea de comando.

F8 Utiliza el texto que ingresó para escanear hacia atrás a través de su historial de comandos en busca de comandos que coincidan con el texto que ha escrito hasta ahora en la línea de comandos.

F9Ejecuta un comando numerado específico de su historial de comandos. Los números de comando se enumeran cuando presiona F7o get-history.

Page Up/ Page Down: Obtiene el primer / último comando en el historial de comandos.

Haga clic con el botón derecho si QuickEdit está desactivado, muestra un menú de acceso directo de edición con las opciones Marcar, Copiar, Pegar, Seleccionar todo, Desplazarse y Buscar. Para copiar el búfer de pantalla al Portapapeles, haga clic con el botón derecho, seleccione Seleccionar y luego presione Entrar.

Tab/ Shift+ Tab: Presione la tecla Tab o presione Mayús + Tab para acceder a la función de expansión de la pestaña, que incluye la autocompletación de carpetas o nombres de archivo.

surfasb
fuente
¿Es compatible con la búsqueda de historial parcial?
ripper234
1
Sí, escriba la cadena que desea buscar y presione F8.
surfasb
Esa es una descripción muy completa de los controles del teclado PowerShell.
Paradroid
Recortaré una lista de los módulos imprescindibles de Powershell más adelante. . .
surfasb
1
@surfasb: debe incluir PowerTab, ya que es relevante para esta respuesta. Tocar con él es como IntelliSense.
Paradroid
11

¡No necesita reemplazar el símbolo del sistema! Windows tiene muchas de estas características integradas en el símbolo del sistema, como:

  • Historial de comandos: F7yF9

  • Agregue 1 letra a la vez desde el comando anterior: F1

  • Autocompletado de directorios y nombres de archivos: Tab

Hay incluso más trucos, pero tendrá que buscar más en Google, ya que no pude encontrar un sitio web con una lista completa.

Keltari
fuente
11

Clink extiende la línea de comando de Windows y agrega las siguientes características

  • Potente edición de línea similar a Bash de la biblioteca Readline de GNU
  • Superior camino completado (TAB)
  • Pegar desde el portapapeles (Ctrl-V)
  • Soporte para completar ejecutables / comandos y variables de entorno
  • Deshacer / Rehacer (Ctrl-_ o Ctrl-X, Ctrl-U) Historial de línea de comandos mejorado. Persiste en todas las sesiones.
  • Se puede buscar (Ctrl-R y Ctrl-S). Expansión de la historia (por ejemplo, !!,! Y! $). Finalización programable con Lua.
thegreendroid
fuente
Perfecto. Hace cmd.exe mucho más útil.
beta
5

Win-Bash ?

Una fiesta independiente para Windows

win-bash es un puerto de Windows del famoso GNU bash (vea la página de inicio de GNU Bash).

A diferencia de otros puertos bash para Windows (por ejemplo, cygwin bash), win-bash no necesita un entorno especial o DLL. Solo hay un binario y eso es todo.

No estoy seguro de cuán funcional y confiable es esto.


También está el comando take de jpsoftware, pero, vaya, eso se mencionó en la otra Q que mencionaste, por lo que presumiblemente no hace lo que quieres.

RedGrittyBrick
fuente
En realidad, Take Command hace lo que xe quiere. Tiene un historial de comandos global que puede recordarse incluso cuando no se está ejecutando un intérprete de comandos. Tiene historial de filtrado y edición de listas . Mi conjetura es que "las mejores respuestas" no se extienden para responder # 5. ☺
JdeBP
@JdeBP: Take Command es el número 12 en la lista.
ripper234
SuperUser lo enumera como la quinta respuesta cuando se ve aquí.
JdeBP
1
Puede ordenar las respuestas por "activo", "más antiguo" o "votos". Por "votos" es el valor predeterminado y SuperUser parece aleatorizar las respuestas con igual número de votos. Me parece que la actualización de la página cambia el orden ...
RedGrittyBrick
1
@ ripper234: ¿De qué estás hablando? Win-Bash se actualizó en marzo pasado.
Paradroid
3

Take Command ya se ha mencionado, pero TCC / LE (un subconjunto) es unreemplazo gratuito CMD con muchas más funciones, comandos y personalización. Sirve para dar una experiencia de golpe, en cuanto a atajos de teclado, alias y coloración.

Puede hacer las pocas cosas que menciona, incluida la finalización parcial del historial con Up/Downflechas. CTRL-Brepite la ruta del comando anterior. Intenta escribir optionpara ver una gran cantidad de opciones.

TCC/LETambién funciona muy bien dentro de Console2 .

Además, por supuesto, puede usar bash en Windows con Cygwin .

paradroid
fuente
1

La extensión del símbolo del sistema PyCmd de código abierto hace la mayor parte de lo que usted solicita.

Su propósito es emular algunas características de potencia de los shells UNIX (finalización de tabulación decente, historial persistente, etc.).

imagen

harrymc
fuente