Un gran terminal para Windows: ConEmu

23/11/2015 0 Comments

Para muchos profesionales de infraestructura, la línea de comandos es una herramienta básica que nos permite en muchas ocasiones interactuar con el sistema más rápido que como lo haríamos con una interfaz gráfica. Además la línea de comandos suele tener capacidades muy potentes como por ejemplo hacer pipe entre distintos programas o scripts de automatización de tareas. Para hablar de la línea de comandos en el mundo UNIX nos solemos referir al Terminal, mientras que en Windows acostumbra a llamarse Símbolo del sistema o bien PowerShell en función de cuál ejecutemos; o bien Consola de forma genérica en ambos mundos. Sin embargo, esta comparación poco afortunada…

Cuando hablamos de una Consola debemos distinguir entre dos elementos distintos que trabajan de forma conjunta:

  • El emulador de terminal o consola. Es el programa que nos proporciona interacción con el intérprete. La ventana que rodea al área de la linea de comandos, así como los distintos elementos y controles de la misma son parte del emulador de terminal o consola.
    • Ejemplos de emuladores de consola (Windows): conhost.exe, ConEmu, cmder
    • Ejemplos de emuladores de terminal (Mac): Terminal, iTerm
    • Ejemplos de emuladores de terminal (Linux): xterm, gTerm, konsole, rxvt, Eterm
  • Intérprete de línea de comandos. En la consola constituye la shell, y es el componente que nos relaciona con la máquina. De ella depende la sintaxis de los comandos que escribimos y las facilidades que se dan al usuario, como el autocompletado con el tabulador, coloreado, historial de comandos, etc…
    • Ejemplos de intérpretes para Windows: cmd.exe, PowerShell, 4NT, command.com
    • Ejemplos de intérpretes para UNIX: bash, zsh, csh

Un desconocido que usamos todos los días: conhost.exe

Centrándonos en Windows, si símplemente ejecutas una nueva ventana de PowerShell o Símbolo del sistema, el emulador que estás utilizando es –sin duda- conhost.exe.

image

Lamentablemente, conhost.exe sufre de la misma historia que Notepad: desde Windows NT 3.1 el programa no ha cambiado prácticamente nada y nos ofrece la mismas capacidades incluso en Windows 8.1, que he decir que son bastante pobres con respecto a los modernos terminales que encontramos en GNU/Linux. Sin embargo, PowerShell volvió a traer el foco a la consola en los entornos Microsoft y en Windows 10 / Windows Server 2016 se han introducido finalmente mejoras, tal y como se aprecia en la nueva ventana de Propiedades:

image

Entre las novedades más destacadas encontramos:

  • Selección de texto línea a línea, en lugar de por bloques como iba siendo hasta Windows 8.1 / 2012 R2.
  • Filtrado al pegar texto en la consola.
  • Redimensionar la consola provoca un reajuste del texto para evitar el scroll horizontal.
  • Se puede cambiar la opacidad de la ventana.

Microsoft da un listado completo de todas las nuevas características aquí.

ConEmu

ConEmu es un emulador de terminal o consola para Windows de código abierto que me ha sorprendido muy gratamente por su cantidad de características, situándose incluso por encima de los terminales más avanzados de UNIX. Un emulador de terminal de estas características constituye el compañero ideal de PowerShell junto con las utilidades que he ido comentado en el blog bajo la serie PowerShell Utilities Series. Es por ello que se ha convertido en mi primera opción como terminal para plataformas Microsoft. ConEmu tiene el siguiente aspecto:

image

¿Qué nos ofrece ConEmu con respecto a la consola tradicional, conhost.exe? Lo más llamativo es:

  • Redimensionado realizando ajuste de línea en el texto para evitar el scroll horizontal.
  • Tabulaciones para poder tener abiertas múltiples consolas en la misma ventana.
  • Integración con ciertas aplicaciones que no son una consola, como PuTTY (a pesar de lo que pudiéramos pensar, PuTTY no es una aplicación de consola) o Notepad.
  • Integración con las Jumplist de Windows 7 en adelante, permitiéndonos ver en la barra de tareas el progreso de la ejecución de una tarea PowerShell.
  • Búsqueda de texto integrada en el terminal.
  • Barra de estado con multitud de elementos de información del sistema.
  • Modo Quake
  • Macros
  • Cambio de opacidad de la ventana.

Se puede ver un listado completo de las características aquí. A continuación se puede otro ejemplo de ConEmu con PuTTY integrado en una pestaña:

image

Así que ya sabéis, si sois amantes de la consola y usuarios de Windows, ConEmu sea seguramente una visita obligada para darle una buena probada. ¡Espero que os resulte muy útil!

Happy command line!

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *