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».
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:
- Posibilidad de redimensionar o adjuntar ventanas.
- Soporte de pestañas y divisiones (paneles).
- Integración con DOSBox para juegos y aplicaciones de MS-DOS [ Guía paso a paso de DOSBox ]
- Personalización de fuentes o tipografías TrueType.
- Creación de atajos de teclado o trucos para automatizar tareas (el método geek).
- Integración con FAR Manager, un explorador de archivos alternativo del que ya hablamos en Emezeta.
- Personalización en profundidad de infinidad de aspectos avanzados.
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:
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.
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
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.
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.
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).
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:
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.
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:
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.
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:
- Cómo organizar tus PDF y ebooks con Calibre, por si tienes demasiados documentos PDF o ebooks y quieres tenerlo todo bien organizado y catalogado.
- Cómo firmar PDF con certificado digital, para trámites telemáticos que tienen la misma validez que un documento firmado personalmente.
- Cómo reducir el tamaño de un PDF, ideal para subir documentos a Internet y que se descarguen en poco tiempo.
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:
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?