curl es una potente utilidad de línea de comandos para comunicarse con un servidor web a través de la terminal. A menudo, se confunde con el popular comando wget, ya que ambos pueden cargar y descargar contenido a un servidor y funcionan en varias plataformas. Entonces, para aclarar las cosas, aquí están las diferencias entre wget y curl y algunos comandos populares de curl que debe saber para comenzar.
rizo contra wget
A primera vista, tanto curl como wget pueden verse como una utilidad que puede solicitar y descargar contenido de los servidores web. Sin embargo, si profundizas, hay mucho que desentrañar. curl admite muchos más protocolos que van desde HTTPS, SFTP a IMAP, POP3, etc., mientras que wget solo admite HTTP, HTTPS y FTP.
Otra diferencia importante es que wget admite la descarga recursiva mientras que curl no. Por lo tanto, wget descargará todo, desde la página web hasta las páginas con las que está vinculado, mientras que curl no lo hará. Por otro lado, curl se basa en la biblioteca libcurl que proporciona API. Por lo tanto, se puede usar fácilmente en secuencias de comandos de línea de comandos, así como en aplicaciones basadas en GUI. Puede pensar en curl como un navegador web de línea de comandos simplificado que puede cargar y descargar contenido desde un servidor web.
Instalación de curl en ventanas
curl viene preinstalado en sistemas operativos basados en Unix o similares a Unix y, por lo tanto, se puede usar directamente en macOS. Sin embargo, también se puede usar en sistemas que no sean Unix como Windows con la ayuda de una biblioteca «libcurl».
En Windows, todo lo que tenemos que hacer es descargar el archivo zip libcurl y hacer un par de cambios para que se pueda usar a través del símbolo del sistema. En primer lugar, descargue el archivo zip libcurl para su Windows de 32 o 64 bits según corresponda. Una vez que haya descargado el archivo, extraiga el contenido en una carpeta. Como contexto, la siguiente es una captura de pantalla del contenido extraído de la carpeta libcurl.
Dentro de la carpeta extraída, dirígete a la compartimiento carpeta y copie los siguientes archivos – «curl.exe» y «curl-ca-bundle».
Cree una carpeta llamada «curl» dentro de la unidad «C:» y pegue ambos archivos copiados. Una vez que haya hecho esto, puede usar directamente el comando curl cuando navegue a la carpeta «C: \ curl» dentro del símbolo del sistema.
Alternativamente, si desea ejecutar curl directamente desde el cmd, le recomendaría crear una variable de entorno. Para hacer eso, dirígete al menú Inicio y escribe «Editar las variables de entorno del sistema.” y haga clic en la primera búsqueda.
En la ventana emergente Propiedades del sistema, haga clic en el botón Variables de entorno en la parte inferior.
En la pantalla de variables de entorno, haga clic en el botón Nuevo en la mitad superior para agregar una variable de entorno de usuario.
En la nueva pantalla Variable de usuario, agregue la siguiente entrada. Publique eso, haga clic en Aceptar y luego en Aplicar para guardar los cambios.
Variable name: curl Variable value: C:\curl
Una vez hecho esto, haga clic en Aceptar en el menú de variables de entorno para guardar los cambios. Publique esto, debería poder usar el comando curl directamente en el símbolo del sistema. Para probarlo, ingrese el siguiente comando
curl --version
Alternativamente, también puede habilitar WSL para Windows y usa el shell bash de ubuntu para ejecutar comandos curl desde bash en Windows.
Los mejores comandos de curl y cómo usarlos
Antes de comenzar con los comandos, tenga en cuenta que las comillas simples no funcionan en la línea de comandos de Windows. Tendrías que convertirlos a comillas dobles. Para el shell bash, también funcionaría como de costumbre con las comillas simples.
1. Examinar el código HTML
La utilidad más básica de curl es navegar por el código HTML de una página web. Para hacer eso, agregue el sufijo del comando curl con la URL web de la página web.
curl https://example.com
Este comando mostrará la salida en la terminal. También puede descargar el contenido del archivo especificando el interruptor «-O» antes de la URL. Esto guardará el archivo en su sistema con el mismo nombre de archivo remoto. Por ejemplo, si el nombre del archivo HTML en el servidor es «home.html», también se guardará localmente como «home.html».
curl -O http://example.com/home.html
Como alternativa, puede almacenar los datos con nombres de archivo personalizados. Para eso, agregue el comando con un caso más pequeño «-o» seguido del nombre del archivo.
curl http://example.com/home.html -o sample-file.txt
También puede descargar varios archivos especificando varias URL de archivos remotos.
2. Descarga de archivos con curl
Similar a wget, puede descargar archivos usando curl. Puede usar el modificador -o y especificar el nombre del archivo o, de lo contrario, el archivo se guardará con el nombre del archivo remoto.
curl -O http://example.com/linux.iso
Por ejemplo, el siguiente comando descargará la última versión de Linux mint desde el servidor web.
curl -O http://mirrors.gigenet.com/linuxmint/iso/stable/19.2/linuxmint-19.2-cinnamon-64bit.iso
También puede usar «-#» o «–progress-bar» para mostrar el progreso en forma de hash.
3. Reanudación de descarga fallida
Además, si se interrumpe la descarga, puede reanudarla utilizando el interruptor «-C -«. El comando se verá como sigue.
curl -C http://example.com/linux.iso
Por ejemplo, el siguiente comando reanudará la descarga desde el último punto fallido.
curl -C - -O http://mirrors.gigenet.com/linuxmint/iso/stable/19.2/linuxmint-19.2-cinnamon-64bit.iso
4. Información de PI
Puede usar el siguiente comando curl para obtener toda la información de red sobre una máquina
curl ipinfo.io
Alternativamente, si conoce la dirección IP y desea otros detalles como las coordenadas de ubicación, ciudad, zona horaria, etc., puede usar la siguiente variación del comando.
curl ipinfo.io/14.141.173.170
5. Enviar correos electrónicos
Dado que curl es compatible con el protocolo SMTP, POP3, incluso puede usarlo para enviar correos electrónicos. A continuación se muestra un ejemplo de cómo enviar un correo electrónico a través de Gmail.
Reemplace la dirección de correo electrónico y la contraseña en el siguiente comando según corresponda.
curl --url "smtps://smtp.gmail.com:587" --ssl-reqd --mail-from "sender@gmail.com" --mail-rcpt "receiver@gmail.com" --upload-file "C:\mail.txt" --user "sender@gmail.com:password"
Asegúrese activar el acceso para aplicaciones menos seguras para la cuenta de Google
6. Diccionario
El protocolo dict proporcionado por libcurl se puede usar para encontrar fácilmente el significado de una palabra. La fuente del significado es WordNet. A continuación se muestra el comando para hacer lo mismo.
curl dict://dict.org/d:english-word
7. Comandos POST
Puede enviar solicitudes POST a un servidor web con la ayuda de un comando curl. La sintaxis es la siguiente
curl -X POST -F "name=user-name" -F "password=password" http://www.example.com
Los datos del formulario POST también se pueden enviar en forma de archivo JSON. Use el siguiente comando para hacer eso.
curl -H "Content-Type: application/json" https://www.example.com
8. Convertir archivos
Dado que curl admite datos de formularios de varias partes, puede usarlo para cargar archivos e incluso convertirlos al instante. Por ejemplo, quiero convertir este archivo HTML a PDF. Por lo tanto, usaré el API de Doverter para hacer esto. La API de Docverter admite múltiples formatos de archivo desde HTML, Markdown y puede convertirlos a Docx, PDF, ePub, etc.
Alternativamente, también puede utilizar el Google Drive API v3 para convertir hojas de cálculo de Excel, documentos, etc.
curl "http://c.docverter.com/convert" -F from=html -F to=pdf -F input_files[]=@your-file-name -o "output-file-name.pdf"
Palabras de cierre
curl se usa principalmente en programas para compartir datos, archivos, formularios. Además del comando mencionado anteriormente, hay varias otras API, combinaciones o scripts de shell con los que puede usar curl. Puede obtener más información sobre esto en los repositorios de GitHub o Stack Overflow. Para más problemas o consultas sobre cualquier comando curl, hágamelo saber en los comentarios a continuación.
Lea también: Las 14 mejores aplicaciones para aprender a programar (Android e iOS)