LinuxParty
A mediados de la década de 1990, cuando Internet todavía estaba en pañales, un programador sueco llamado Daniel Stenberg comenzó un proyecto que finalmente se convirtió en lo que hoy conocemos como curl .
Inicialmente, su objetivo era desarrollar un bot que descargara periódicamente los tipos de cambio de una página web y proporcionara equivalentes de coronas suecas en dólares estadounidenses a los usuarios de IRC.
En pocas palabras, el proyecto prosperó, agregando varios protocolos y características en el camino, y el resto es historia. ¡Ahora sumerjámonos con los dos pies y aprendamos cómo 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 usar 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 una descarga se interrumpió por algún motivo (por ejemplo, usando Ctrl + c
), puede reanudarla muy fácilmente. El uso de -C
(guión C, guión espacial) le dice a curl que reanude la descarga comenzando donde se quedó.
$ curl -C - -O http://yourdomain.com/yourfile.tar.gz
Descargar archivo con el comando Curl
4. Descarga múltiples archivos
Con el siguiente comando descargará info.html y about.html de http://yoursite.com y http://mysite.com , respectivamente, de una sola vez.
$ curl -O http://yoursite.com/info.html -O http://mysite.com/about.html
5. Descargar URL de 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
Descargar múltiples archivos con Curl
6. Use un Proxy con o sin autenticación
Si está detrás de un servidor proxy que escucha en el puerto 8080 en proxy.yourdomain.com , hágalo.
$ 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. Consultar 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 proporciona al cliente detalles sobre cómo se maneja la solicitud.
Para consultar los encabezados HTTP de un sitio web, haga lo siguiente:
$ curl -I www.linuxparty.es
HTTP/1.1 301 Moved Permanently
Server: nginx
Date: Sun, 07 Jun 2020 19:03:48 GMT
Content-Type: text/html
Content-Length: 162
Connection: keep-alive
Location: https://www.linuxparty.es/
[javier@localhost ~]$
Esta información también está disponible en las herramientas de desarrollador de su navegador.
8. Hacer una solicitud POST con parámetros
El siguiente comando enviará los parámetros firstName y lastName , junto con sus valores correspondientes, a https://yourdomain.com/info.php
$ curl --data "firstName=John&lastName=Doe" https://yourdomain.com/info.php
Puede usar este consejo para simular el comportamiento de un formulario HTML normal.
9. Descargue archivos de un servidor FTP con o sin autenticación
Si un servidor FTP remoto espera conexiones en ftp: // yourftpserver , el siguiente comando descargará yourfile.tar.gz en el directorio de trabajo actual.
$ curl -u usuario:contraseña -O ftp://yourftpserver/yourfile.tar.gz
10. Cargue archivos en un servidor FTP con o sin autenticación
Para cargar un archivo local llamado mylocalfile.tar.gz en ftp: // yourftpserver usando curl, haga:
$ curl -u usuario:contraseña -T mylocalfile.tar.gz ftp://yourftpserver
11. Especifique el 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 usó el cliente para realizar la solicitud. Veamos qué usa nuestra versión actual de curl como predeterminada y cambiemos más adelante a " Soy un nuevo navegador web ":
$ curl -I http://localhost --user-agent "I am a new web browser"
Agente de usuario de Curl Check
12. Cookies del sitio web de la tienda
¿Desea ver qué cookies se descargan en su computadora cuando navega a https://www.cnn.com ? Use 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
Cookies del sitio web de Curl Store
13. Enviar cookies del sitio web
Puede usar las cookies recuperadas en el último consejo en solicitudes posteriores al mismo sitio.
$ curl --cookie cnncookies.txt https://www.cnn.com
14. Modificar resolución de nombre
Si usted es un desarrollador web y desea probar una versión local de yourdomain.com antes de ponerlo en funcionamiento, puede hacer que curl resuelva http://www.yourdomain.com a su host local de la siguiente manera:
$ curl --resolve www.yourdomain.com:80:localhost http://www.yourdomain.com/
Por lo tanto, la consulta a http://www.yourdomain.com le indicará a curl que solicite el sitio de localhost en lugar de usar DNS o el archivo / etc / hosts .
15. Límite de velocidad de descarga
Para evitar que curl riegue 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
Resumen
En este artículo, hemos compartido 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 nos hayamos perdido en este artículo? ¡Siéntete libre de compartirlos con nuestra comunidad en los comentarios! Además, si tiene preguntas, no dude en hacérnoslo saber. ¡Esperamos con interés escuchar de usted!
Compartir es demostrar interés...
-
Internet
- Cómo usar una VPN en Linux y por qué deberías hacerlo
- La muerte lenta del hipervínculo
- Cómo cambiar dirección IP (modo gráfico), por qué querría hacerlo y cuándo no debería hacerlo
- 10 comandos "IP" útiles para configurar interfaces de red
- Cómo configurar conexiones IP de red usando 'nmcli' en Linux
- Configuración de una IP Estática en una Tarjeta de Red en Linux.
- ¿Migrar a la nube? Marque esta lista de verificación
- Nuevo estándar de Internet L4S: el plan silencioso para hacer que Internet se sienta más rápido
- Nextcloud y Roundcube se Fusionan para Impulsar la Descentralización en la Productividad en la Nube
- Los 10 mejores servidores proxy inversos de código abierto para Linux
- Una guía para principiantes para crear conexiones (Bonding) y puentes de red (Bridging) en Linux
- Conectar dos redes Locales alejadas creando de un Puente Transparente
- Crear un puente de red transparente "bridge" para conectar dos redes locales remotas
- Crear un Puente de Red o Bridge
- La propuesta de la ICANN / Verisign permitiría a cualquier gobierno confiscar nombres de dominio