15 consejos sobre cómo usar el comando 'Curl' en Linux


A mediados de la década de 1990, cuando Internet aún estaba en su infancia, un programador sueco llamado Daniel Stenberg comenzó un proyecto que eventualmente se convirtió en lo que hoy conocemos como curl .

Inicialmente, su objetivo era desarrollar un bot que descargaría los tipos de cambio de una página web periódicamente y proporcionaría equivalentes de coronas suecas en dólares estadounidenses a los usuarios de IRC.

En pocas palabras, el proyecto prosperó, agregando varios protocolos y funciones en el camino, y el resto es historia. ¡Ahora comencemos con los dos pies y aprendamos a usar el rizo para transferir datos y más en Linux!

Hemos reunido la siguiente lista de 15 comandos curl para usted.

1. Ver versión Curl

Las opciones -V o --version no solo devolverán la versión, sino también los protocolos y funciones compatibles en su versión actual.

$ curl --version

curl 7.47.0 (x86_64-pc-linux-gnu) libcurl/7.47.0 GnuTLS/3.4.10 zlib/1.2.8 libidn/1.32 librtmp/2.3
Protocols: dict file ftp ftps gopher http https imap imaps ldap ldaps pop3 pop3s rtmp rtsp smb smbs smtp smtps telnet tftp 
Features: AsynchDNS IDN IPv6 Largefile GSS-API Kerberos SPNEGO NTLM NTLM_WB SSL libz TLS-SRP UnixSockets 

2. Descargar un archivo

Si desea descargar un archivo, puede utilizar curl con las opciones -O o -o . El primero guardará el archivo en el directorio de trabajo actual con el mismo nombre que en la ubicación remota, mientras que el segundo le permite especificar un nombre de archivo y/o ubicación diferente.

$ curl -O http://yourdomain.com/yourfile.tar.gz # Save as yourfile.tar.gz
$ curl -o newfile.tar.gz http://yourdomain.com/yourfile.tar.gz # Save as newfile.tar.gz

3. Reanudar una descarga interrumpida

Si se interrumpió una descarga por algún motivo (por ejemplo, utilizando Ctrl + c ), puede reanudarla con mucha facilidad. El uso de -C - (guión C, guión de espacio) le dice a curl que reanude la descarga desde donde la dejó.

$ curl -C - -O http://yourdomain.com/yourfile.tar.gz

4. Descargar archivos múltiples

Con el siguiente comando, descargará info.html y about.html de http://yoursite.com y http://mysite.com , respectivamente, de una vez.

$ curl -O http://yoursite.com/info.html -O http://mysite.com/about.html 

5. Descargar URLs desde un archivo

Si combina curl con xargs, puede descargar archivos de una lista de URL en un archivo.

$ xargs -n 1 curl -O < listurls.txt

6. Usa un Proxy con o sin Autenticación

Si está detrás de un servidor proxy escuchando en el puerto 8080 en proxy.yourdomain.com , haga.

$ curl -x proxy.yourdomain.com:8080 -U user:password -O http://yourdomain.com/yourfile.tar.gz

donde puede omitir -U usuario: contraseña si su proxy no requiere autenticación.

7. Consulta Encabezados HTTP

Los encabezados HTTP permiten que el servidor web remoto envíe información adicional sobre sí mismo junto con la solicitud real. Esto le proporciona al cliente detalles sobre cómo se maneja la solicitud.

Para consultar los encabezados HTTP desde un sitio web, haga:

$ curl -I www.tecmint.com

Esta información también está disponible en las herramientas de desarrollo de su navegador.

8. Hacer una solicitud POST con Parámetros

El siguiente comando enviará los parámetros Nombre de pila y Nombre de pila , junto con sus valores correspondientes, a https://yourdomain.com/info.php .

$ curl --data "firstName=John&lastName=Doe" https://yourdomain.com/info.php

Puede utilizar esta sugerencia para simular el comportamiento de un formulario HTML normal.

9. Descargar archivos desde un servidor FTP con o sin autenticación

Si un servidor FTP remoto está esperando conexiones en ftp:/yourftpserver , el siguiente comando descargará yourfile.tar.gz en el directorio de trabajo actual.

$ curl -u username:password -O ftp://yourftpserver/yourfile.tar.gz 

donde puede omitir -u nombre de usuario: contraseña si el servidor FTP permite inicios de sesión anónimos.

10. Cargar archivos a un servidor FTP con o sin autenticación

Para cargar un archivo local llamado mylocalfile.tar.gz a ftp:/yourftpserver usando curl, haz:

$ curl -u username:password -T mylocalfile.tar.gz ftp://yourftpserver

11. Especificar agente de usuario

El agente de usuario es parte de la información que se envía junto con una solicitud HTTP . Esto indica qué navegador utilizó el cliente para realizar la solicitud. Veamos lo que nuestra versión actual de rizo usa por defecto, y luego la cambiamos a " Soy un nuevo navegador web "

$ curl -I http://localhost --user-agent "I am a new web browser"

12. Tienda de cookies del sitio web

¿Desea ver qué cookies se descargan en su computadora cuando navega a https://www.cnn.com ? Utilice el siguiente comando para guardarlos en cnncookies.txt . Luego puede usar el comando cat para ver el archivo.

$ curl --cookie-jar cnncookies.txt https://www.cnn.com/index.html -O

13. Enviar cookies del sitio web

Puede utilizar las cookies recuperadas en el último consejo en solicitudes posteriores al mismo sitio.

$ curl --cookie cnncookies.txt https://www.cnn.com

14. Modificar la resolución de nombres

Si es un desarrollador web y desea probar una versión local de sudominio.com antes de publicarla, puede hacer que se resuelva el enrollamiento http://www.yourdomain.com a tu localhost como tal:

$ curl --resolve www.yourdomain.com:80:localhost http://www.yourdomain.com/

Por lo tanto, la consulta a http://www.yourdomain.com indicará a curl que solicite el sitio de localhost en lugar de usar DNS o el archivo /etc/hosts .

15. Limitar la tasa de descarga

Para evitar que el enrollamiento administre su ancho de banda, puede limitar la velocidad de descarga a 100 KB/s de la siguiente manera.

$ curl --limit-rate 100K http://yourdomain.com/yourfile.tar.gz -O

En este artículo, compartimos una breve historia de los orígenes del rizo y explicamos cómo usarlo a través de 15 ejemplos prácticos.

¿Conoces algún otro comando curl que podamos haber omitido en este artículo? ¡Siéntase libre de compartirlos con nuestra comunidad en los comentarios! Además, si tiene alguna pregunta no dude en hacérnoslo saber. ¡Esperamos con interés escuchar de usted!