Cada sistema operativo tiene su tipo de comandos para realizar tareas a nivel administrativo, de soporte o gestión o de uso cotidiano. Algunos de estos comandos pueden ser compatibles entre todos los sistemas, pero la mayoría no lo son. Un caso de esto, es cURL, el cual podemos usar con frecuencia en ambientes macOS, UNIX o Linux mas no en Windows, hablando de las versiones anteriores a la 5 de PowerShell.
cURL es un comando que se usa de forma frecuente a través de líneas de comando o scripts para transferir datos hacia un equipo. Pero aún mas allá de esto, cURL es usado en otros elementos como automóviles, televisores, enrutadores o, impresoras con el fin de ejecutar la transferencia de datos desde Internet.
cURL es un software gratuito y de código abierto y es tan alto su alcance que soporta protocolos y archivos como: DICT, FILE, FTP, FTPS, Gopher, HTTP, HTTPS, IMAP, IMAPS, LDAP, LDAPS, POP3S, RTMP, RTSP, SCP, SFTP, SMB, SMBS, SMTP, SMTPS, Telnet y TFTP, también está en la capacidad de admitir certificados SSL, HTTP POST, HTTP PUT, carga de FTP, carga basada en HTTP, proxies, HTTP / 2, cookies, autenticación de usuario + contraseña (Básica, Normal, Resumen, CRAM-MD5, NTLM, Negociar y Kerberos), archivo de transferencia de currículum, tunelización por proxy y mucho más.
Para poder usar cURL en Windows PowerShell, en este caso sobre Windows 10, debemos validar la versión de PowerShell la cual debe ser mínimo la 5, para comprobar esto ejecutaremos lo siguiente:
$PSVersionTable.PSVersion
Al usar cURL en Windows PowerShell daremos una funcionalidad mas a esta moderna consola de gestión de Microsoft.
1. Cómo usar cURL en Windows PowerShell
Para probar cURL en Windows PowerShell, será posible escribir un comando cURL como uno que descarga un archivo de un repositorio de GitHub.
Para este caso podemos ejecutar lo siguiente:
curl http://raw.githubusercontent.com/Azure/azure-quickstart-templates/master/mongodb-on-ubuntu/azuredeploy.json > azuredeploy3.json}
Podemos ver que se genera este error, pero allí se está usando cURL como un alias. Los alias en Windows PowerShell nos dan la posibilidad de crear accesos directos para comandos más extensos con la finalidad de no ingresar toda la sintaxis completa.
Podemos usar el cmdlet Get-Alias y veremos lo siguiente. Fijémonos que en la línea el comando cURL se encarga de llamar al comando Invoke-WebRequest.
De modo que para que cURL funciones de la forma ideal, basta con editar la sintaxis que hemos ejecutado y solo será necesario ejecutar lo siguiente en este caso:
“https://raw.githubusercontent.com/Azure/azure-quickstart-templates/master/mongodb-on-ubuntu/azuredeploy.json”
Así, de esta forma, podremos usar cURL en Windows PowerShell. Podremos ver que el archivo ha sido descargado en la ruta indicada, en este caso System32 debido a que se ejecutó PowerShell como administrador, peor podremos elegir la ruta deseada:
2. Cómo eliminar un alias Windows
En el caso de que no contemos con un perfil en Windows PowerShell, el primer paso a dar será crear uno ejecutando el siguiente comando:
New-Item $profile -force -itemtype file
Ahora, abriremos este perfil en el editor de texto ejecutando lo siguiente:
notepad $profileEn el archivo desplegado pegaremos lo siguiente. Allí procedemos a guardar los cambios y cerrar el bloc de notas.
remove-item alias:curl
A continuación, debemos ejecutar el siguiente comando para volver a cargar el perfil, o bien, cerrar y volver a abrir Windows Powershell para actualizar los cambios.
3. Alternativas para instalar cURL en Windows
Un método práctico para conseguir que cURL este instalado en nuestro sistema es accediendo al siguiente enlace y allí realizar la descarga:
Otra forma de instalar cURL es usando Chocolatey el cual puede ser analizado en detalle en el siguiente enlace:
Chocolatey es un administrador de paquetes de línea de comandos con apariencia de Linux para sistemas Windows. Vamos a abrir PowerShell como administradores y ejecutaremos el siguiente comando:
iex ((new-object net.webclient).DownloadString('https://chocolatey.org/install.ps1'))
Una vez que hayamos instalado Chocolatey, podremos usarlo para instalar cURL y debemos abrir y cierre PowerShell antes de esto para aplicar los cambios.
Ejecutaremos lo siguiente para instalar cURL. Allí podremos correr o no el script.
choco install curl
Una vez el proceso finalice veremos lo siguiente:
Sintaxis básica:
curl http://url --output “Archivo de salida”Ocultar el indicador de progreso de cURL: El indicador de progreso cURL nos permite ver en detalle el progreso actual de la descarga, si deseamos ocultarlo podemos usar el parámetro -s o –silent así.
curl http://solvetic.com --output Archivo –silent
Así, hemos visto diversas alternativas para instalar y usar cURL en Windows PowerShell y sacar el máximo beneficio de este comando.