Emezeta.com

10 trucos para mejorar la terminal de Windows


Probablemente, la mayoría de nosotros coincidiremos en que la potencia y versatilidad de una terminal de GNU/Linux se encuentra a años luz de la de un sistema Microsoft Windows. O al menos, esa es mi impresión. También es muy probable que, si provienes de otra web, en sus comentarios hayan otros usuarios respondiendo al título de este artículo con un predecible «Instalando Linux».

¿Cómo mejorar la terminal de Windows?
¿Cómo mejorar la terminal de Windows?

Pero dejando a un lado estos debates, centrémonos en la terminal de Windows. Es fea, incómoda y poco personalizable (o muy compleja de personalizar en algunos casos). Es cierto que la terminal no es una característica destinada al perfil habitual del usuario de Windows, pero los usuarios avanzados la utilizan frecuentemente porque aumenta mucho la productividad. Sin embargo, acaban sintiéndose muy limitados en este aspecto debido a la carencia de posibilidades. ¿Cómo solucionarlo?

1. Instala un emulador de terminal decente

Como hemos comentado, la terminal de Windows es muy poco flexible y tiene muchas carencias, por lo que el primer paso a realizar es instalar un emulador de terminal más decente. Tenemos muchas opciones a nuestro alcance, pero sin duda, una de las mejores es ConEmu (Console Emulator):

Console Emulator

Este emulador de terminal es sencillamente impresionante, ya que tiene una increíble cantidad de opciones para personalizar su funcionamiento. Entre ellas podemos encontrar características que harían mucha falta en la terminal por defecto de Windows:

ConEmu: Emulador de terminal para Windows
ConEmu: Emulador de terminal para Windows

URL | ConEmu: Console Emulator

Con este emulador tendremos a nuestro alcance un estupendo entorno para trabajar sin las limitaciones de la terminal por defecto de Windows.

cmder

No obstante, si ConEmu no nos gusta o nos parece muy complejo, podemos optar por utilizar cmder, un emulador de terminal basado en ConEmu, pero con ciertos añadidos como una línea de comandos al estilo bash con Clink y sobre todo, un agradable y atractivo aspecto visual para hacerlo más intuitivo y cómodo:

cmder: Emulador portable de consola para Windows
cmder: Emulador portable de consola para Windows

URL | cmder: Portable Console Emulator

Además, entre sus características más llamativas se encuentra la posibilidad de utilizarlo como aplicación portable, de forma que no es necesaria su instalación en el sistema.

Windows PowerShell

No me olvido de la alternativa que propone Microsoft, la utilización de Windows PowerShell, una ampliación de su terminal por defecto, donde puedes utilizar un sistema de scripting para conseguir realizar tareas más específicas y potentes. Incorpora una utilidad llamada PowerShell ISE (Integrated Scripting Environment) donde podemos editar, depurar y ejecutar nuestros propios scripts.

Línea de comandos en PowerShell para instalar Chocolatey
Línea de comandos en PowerShell para instalar Chocolatey

URL | Windows PowerShell

Sin embargo, y a modo de opinión personal, no hay que olvidar que se trata de un lenguaje de scripting, lo que lo hace estupendo para crear tus propias tareas automatizadas o sistemas programados, pero demasiado denso como para utilizarse a modo de herramienta de administración de sistemas.

Existen otros emuladores que también pueden resultarte interesantes, como por ejemplo PowerCMD, Console2 o ConsoleZ.

2. Instala un gestor de paquetes (como apt-get)

Una de las herramientas más maravillosas de GNU/Linux para los administradores de sistemas son los gestores de paquetes como apt-get, yum, pacman o emerge: comandos mediante los cuales puedes instalar aplicaciones (y sus dependencias) sin necesidad de ir a sus respectivas páginas webs a descargarlas, realizando el proceso de descarga e instalación de una forma rápida y sencilla. Y lo mismo con la actualización o desinstalación.

Existe un gestor de tareas para Windows llamado Chocolatey que permite instalar aplicaciones siguiendo la misma filosofía. Basta con escribir en una terminal de PowerShell (con privilegios de administrador) la línea de instalación que encontramos en su propia web Chocolatey. Una vez hecho esto, podremos:

  • Buscar aplicaciones escribiendo choco search [programa]
  • Instalar aplicaciones escribiendo choco install [programa]
  • Desinstalar aplicaciones escribiendo choco remove [programa]
  • Actualizar aplicaciones instaladas choco update
Chocolatey: Gestor de paquetes para Windows
Chocolatey: Gestor de paquetes para Windows

URL | Chocolatey

En este momento, Chocolatey tiene un total de 11.108 paquetes (2.354 paquetes únicos), y la mayoría de las aplicaciones mencionadas en este artículo pueden instalarse desde este gestor de paquetes.

3. Instala Git (incorpora Bash y herramientas relacionadas)

Otra de las herramientas recomendables es Git, uno de los sistemas más populares para realizar control de versiones, o lo que es lo mismo, organizar y catalogar los cambios que realizas sobre cualquier tipo de documento de datos sujeto a modificaciones (código fuente de programas, imágenes SVG, documentos de texto, etc...).

Al margen de los beneficios directos que podría tener utilizar este tipo de gestores de versiones, o hacer git clone para descargar y preparar aplicaciones, con MSysGit puedes instalar Git junto a MSys (Minimal System), una colección de comandos UNIX como find, sort, grep u otros, y convertir así la terminal de Windows en algo más parecido a la de GNU/Linux.

Git con Bash y herramientas UNIX
Git con Bash y herramientas UNIX

URL | MSysGit

Esta colección de comandos pertenecen a MinGW (Minimalist GNU for Windows), un fork de Cygwin (Cygnus Windows). También existen las CoreUtils o UNIX Utils, que a diferencia de las anteriores, son ports nativos del sistema y por lo tanto no dependen de otras librerías.

De esta forma, podríamos disponer, por ejemplo, de comandos como wget para descargar archivos directamente desde una línea de comandos sin depender de interfaces gráficas como WinWGet, en este caso. En 10 comandos interesantes para GNU/Linux puedes ampliar tus conocimientos sobre los comandos tradicionales y encontrar otros muy interesantes.

4. Instala tu lenguaje de programación preferido

Otro consejo interesante es el de utilizar un lenguaje de programación como herramienta de apoyo. Por ejemplo, yo he elegido NodeJS por ser un entorno de programación que está creciendo a un ritmo gigantesco, es potente y dispone de un gestor de paquetes (NPM) muy práctico, pero podría utilizarse cualquier otro lenguaje como PHP, Perl, Ruby, Python u otros.

NPM: Gestor de paquetes de NodeJS
NPM: Gestor de paquetes de NodeJS

URL | NodeJS

Muchas herramientas de la actualidad son desarrolladas en NodeJS, como por ejemplo el compilador LESS (un preprocesador de CSS). Apenas sin conocimientos de programación en NodeJS, podremos utilizar el gestor de paquetes npm (Node Package Manager) para instalar todos sus componentes mediante un npm install less y tener el comando lessc disponible en nuestro sistema listo para ser utilizado:

lessc index.less index.css

5. Instala ADB para abrir terminales en dispositivos Android

Si dispones de dispositivos Android como smartphones o tablets, puedes instalar el SDK de Android (entorno de desarrollo de Android), el cuál incluye un comando denominado adb (Android Debug Bridge) con el cuál puedes comunicarte con el dispositivo Android en cuestión a través de una línea de comandos (siempre y cuando tengas correctamente instalados los drivers, claro).

Android Debug Bridge (Android SDK)
Android Debug Bridge (Android SDK)

URL | Android SDK (incluye ADB)

De esta forma, puedes utilizar adb para instalar aplicaciones .apk, revisar logs del sistema (logcat), desinstalar aplicaciones, abrir una terminal en el dispositivo y si eres root, incluso eliminar aplicaciones preinstaladas en el dispositivo por el operador, por ejemplo.

URL | Aprende a utilizar ADB desde una terminal

6. Utiliza SSH para trabajar de forma remota

Una de las formas más comunes para trabajar en equipos ajenos o remotos es conectando mediante el protocolo SSH. A grandes rasgos, se trata de establecer una comunicación con otro sistema, abriendo una terminal de texto que realizará las acciones escritas en el sistema remoto. En GNU/Linux esto es algo muy habitual que se realiza con frecuencia. En Windows, es más conocido el protocolo telnet.

Cliente SSH

Para conectar a otros equipos mediante SSH, necesitaremos un cliente SSH. La opción más sencilla suele ser utilizar PuTTy.exe o algún otro cliente similar como MTPuTTy (con soporte para pestañas) o KiTTy, un clon de Putty. En el siguiente artículo cuento algunos trucos en su utilización, como por ejemplo utilizar compresión para que la comunicación sea más rápida:

URL | 10 consejos útiles para conexiones SSH con Putty

Servidor SSH

En cambio, si lo que queremos es permitir conectar desde otros equipos a nuestro sistema, necesitaremos un servidor SSH. Para ello, utilizaremos algún programa como WinSSHd, FreeSSHd u OpenSSH. Al conectar vía SSH, es muy común utilizar editores de texto basados en terminal, puedes encontrar una colección de ellos en el siguiente artículo:

Editores de texto basados en terminal
Editores de texto basados en terminal

URL | 15 editores de texto basados en terminal

7. Manipula archivos multimedia desde una terminal

¿Acostumbras a manipular archivos multimedia (imágenes, video, sonido...) a menudo? Por ejemplo, reducir la resolución de una imagen, cambiar de formato un archivo de video o reducir el bitrate de un archivo de sonido. Hay varios programas de terminal muy interesantes para estas tareas:

Gráficos

Una de las navajas suizas de la conversión y tratamiento de imágenes en línea de comandos es ImageMagick. Con su utilidad convert.exe puedes realizar conversiones entre distintos formatos de imágenes, cambiar resoluciones, crear imágenes compuestas y un largo abanico de posibilidades.

NOTA: Cuidado con el comando convert.exe puesto que Microsoft Windows tiene una herramienta para convertir unidades de FAT a NTFS con el mismo nombre.

Captura de convert, el comando principal de ImageMagick
Captura de convert, el comando principal de ImageMagick

URL | ImageMagick

Otro programa muy versátil de este tipo es NConvert, de los autores de XnView. Si en cambio, lo tuyo son los GIF animados, puedes utilizar la herramienta GIFSicle y echarle un vistazo al artículo Cómo crear GIF animados sin morir en el intento para documentarte bien.

Video y sonido

Por otra parte, si lo que necesitamos es manipular archivos de video o sonido, podemos utilizar FFMpeg, una potentísima herramienta de conversión entre formatos de video que soporta prácticamente todos los existentes: MP4, DivX, XviD, Matroska, WebM, MOV, HEVC, OGG y un largo etcétera:

ffmpeg -i video.avi video.mkv

Si quieres un método más cómodo para convertir entre distintos formatos de video, utiliza video-converter-scripts, una colección de scripts para convertir formatos simplemente arrastrando y soltando archivos:

video-converter-scripts (ffmpeg)
video-converter-scripts (ffmpeg)

Si quieres conocer un poco más sobre cada formato de video, saber cual es mejor o que características principales tiene cada uno, aquí tienes una lectura recomendable:

URL | Diferencias entre formatos de video: Todo lo que deberías saber

8. Comprime archivos ejecutables para ahorrar espacio

Si eres desarrollador (o simplemente necesitas que ciertas aplicaciones ocupen poco espacio) es posible que te interese instalar UPX (Ultimate Packer eXecutable), un software que reduce el tamaño de los archivos ejecutables utilizando compresión en tiempo real.

UPX: Ultimate Packer eXecutable
UPX: Ultimate Packer eXecutable

URL | UPX

En el ejemplo superior, se puede ver como se comprime el mencionado ffmpeg.exe y se reduce su tamaño de 28MB a 10MB de forma que el usuario puede ejecutarlo directamente y no percibe ningún cambio (actúa de forma transparente para el usuario).

Aunque UPX es de los mejores de su género, existen algunos programas relacionados como MPress o FreeUPX, este último simplemente un entorno gráfico para utilizar UPX. En Crear portables SFX avanzados explico como crear un archivo portable con 7zip y puedes ver un ejemplo real del uso de UPX. También puedes echar un vistazo al siguiente artículo, donde hablo de formatos tradicionales como ZIP, RAR o 7Z, hasta algunos más desconocidos como KGB, NZ o EGG:

URL | La guía definitiva de formatos de compresión

9. Manipula y edita documentos PDF desde la terminal

En Emezeta hemos hablado varias veces sobre detalles relacionados con el formato PDF, como por ejemplo:

Comprimir documentos PDF desde GNU/Linux
Comprimir documentos PDF desde GNU/Linux

Si acostumbras a crear o manipular documentos PDF y estás buscando un comando de terminal que te permita realizar ciertas tareas, es posible que te interese utilizar grandes herramientas como PDFtk (PDF Toolkit), GhostScript o QPDF. Por ejemplo, la primera de ellas, PDF Toolkit puede realizar tareas como eliminar o añadir páginas concretas de un PDF, separar páginas, rotarlas o incluso reparar documentos PDF dañados.

URL | Tutorial de uso de PDFtk (PDF Toolkit)

10. Mantén tu panel de control de Administrador

Los administradores de sistemas de Windows sin duda conocerán las herramientas Sysinternals (compradas por Microsoft) y Nirsoft. Son una colección de herramientas visuales y comandos de terminal, con las que podemos realizar tareas avanzadas específicas relacionadas con ciertos campos concretos: monitorización de disco, actividad de red, contraseñas guardadas en aplicaciones, escritorios virtuales, etc...

WSCC (Windows System Control Center) es un panel de control orientado a administradores de sistemas que incluye todas las herramientas de estas dos compañías, integrándolas en un panel de control automatizado y portable (podemos tenerlo disponible en una memoria USB) donde es posible actualizarlas y utilizarlas rápidamente, en pocos segundos:

WSCC: Windows System Control Center
WSCC: Windows System Control Center

URL | WSCC

Aquí tienes más información sobre diferentes herramientas para administradores de sistemas Windows, entre las que se encuentran WSCC y otras como ninite, un generador de packs de instaladores silenciosos de varias aplicaciones.

Si te ha gustado el artículo y quieres algo similar pero para entornos GNU/Linux, te recomiendo echarle un vistazo a la gran guía de supervivencia de la terminal de GNU/Linux y a estas 20 curiosidades geeks para terminales GNU/Linux, entre los que se encuentra un clon de DOOM para matar procesos o una forma de reproducir videos en ASCII.

En resumen, esto sólo son 10 puntos interesantes para construir una terminal mejor en un sistema operativo Microsoft Windows, pero estoy seguro que existen muchos más que desconozco. ¿Te animas a dejarnos tus recomendaciones en los comentarios?